股票软件破解版-xp自动关机命令

iso镜像文件下载
2023年3月31日发(作者:microsoft office 2003下载)

树莓派linuxiso镜像下载,树莓派(RaspberryPi)修改系统镜像

(img)

树莓派修改系统镜像

讨论如何使⽤通过loop设备映射⽂件,挂载树莓派img中的分区,然后像普通的⽂件系统那样修改镜像分区中的⽂件。

有2个关键点

如何确认分区的起始位置,以及分区的范围。

不同版本的losetup⽀持的参数不⼀样,如果⽀持-P参数特性,则可以直接加载分区,⽆需再⼿动计算偏移量,可以像挂载普通硬盘⼀样直

接⽣成分区块设备

准备⼯作

需要⼀个⽀持linux设备,已经root了的termux,或者,⼀个普通的linux发⾏版均可。

需要⽤到的关键命令losetup,fdisk,tun2fs,mount,请检查是否都有。

⼤部分操作均需要root权限。

去源内下载⼀份镜像⽂件。

第⼀步:下载镜像

⾸先,下载⼀个可以⽤于写⼊树莓派的img镜像,国内可以在清华的镜像站中下载。

我下载的是,解压后得到,img⽂件可以直接烧录到内存卡,它

实际上是个包含了mbr分区表的磁盘映像。

第⼆步:使⽤losetup命令把img⽂件映射成块设备

⾸先我们先确认losetup⽀持的选项,有没有-P选项:

#这是我⼿机版本的losetup

$losetup--help

usage:losetup[-cdrs][-oOFFSET][-SSIZE]{-dDEVICE...|-jFILE|-af|{DEVICEFILE}}

Associatealoopbackdevicewithafile,orshowcurrentfile(ifany)

associatedwithaloopdevice.

Insteadofadevice:

-aIteratethroughallloopbackdevices

-fFindfirstunusedloopdevice(maycreateone)

-jIteratethroughallloopbackdevicesassociatedwithFILE

existing:

-cCheckcapacity(filesizechanged)

-dDetachloopbackdevice

new:

-sShowdevicename(alias--show)

-oStartassocationatOFFSETintoFILE

-rReadonly

-SLimitSIZEofloopbackassociation(alias--sizelimit)

看帮助信息,它不⽀持-P参数,直接加载⼀个多分区的img⽂件,它不会⽣成/dev/loop0p1这样的分区块设备。

如果losetup⽀持-P参数,那么,可以这样让他/dev⽣成分区的块设备loop0p1

#losetup-f-P./

再查看/dev下loop有没有⽣成对应分区的块设备,如果额外⽣成/dev/loop0p2这样的⽂件,则直接挂载这个设备。如果没有,继续以下步

骤,⼿动计算分区的起始位置和⼤⼩。

注意,linux发⾏版的losetup如果没有-S参数,请看看是否是--sizelimit参数,没有-o的话,则看看--offset,先通过losetup--help查看

第三步:确认分区数量和分区的位置

上⾯的losetup有两个很重要的参数

-SLimitSIZEofloopbackassociation

指定映射的⽂件部分内容(可以⽤来设定分区的⼤⼩)

-oStartassocationatOFFSETintoFILE

跳过多少个字节(⽤这个参数可以指定分区的起始位置)

不同版本的可能losetup相关的参数有细微的不同,要以实际为准。

那么需要确定分区的起始和结束位置。先尝试把整个img映射,注意,这需要root权限

加载当前⽂件夹的

#losetup-f./

映射后通过losetup命令(不带参数)得知,⽂件映射到了/dev/loop0这个设备

因为img包含了mbr分区表信息,我可以使⽤fdisk来读取分区表,获取分区信息。

#fdisk-l/dev/loop0

Disk/dev/loop0:3.5GiB,3787456512字节,7397376个扇区

单元:扇区/1*512=512字节

扇区⼤⼩(逻辑/物理):512字节/512字节

I/O⼤⼩(最⼩/最佳):512字节/512字节

磁盘标签类型:dos

磁盘标识符:0xea7d04d6

设备启动起点末尾扇区⼤⼩Id类型

/dev/loop0p524288256McW95FAT32(LBA)

/dev/loop0p2532488963.3G83Linux

通过分区表,我获得了⼀些信息。

这个是个3.5G的映像。

这个img有2个分区,⼀个是fat32分区(/dev/loop0p1),⼀个是linux的ext分区。(/dev/loop0p2)

分区的具体物理位置(起点、末尾),分区⼤⼩(扇区)

这个磁盘镜像每个扇区是512字节

他虽然写了/dev/loop0p2这样的设备,但是实际上,可能/dev下根本没有loop0p1loop0p2这两个块设备⽂件。

此时需要换⼀种⽅式,根据分区在⽂件内的位置,直接映射分区到loop设备,然后再挂载。

第3.5步:计算分区位置及⼤⼩

因为img⽂件包含⼀个mbr分区表,可以通过查看分区表确认分区数量和位置,通过以上fdisk读取的分区表信息可以得知,该img有2个分

区。

fat32类型那个分区应该存放内核,之类的分区,也就是我们烧录后看到内存卡只有256m的原因。

linux类型分区是树莓派的根分区,也就是进系统后,挂载在/的根分区

此时我需要计算根分区的起始位置,如果我需要改动,则计算fat32分区的位置,以下以计算根分区为例。

逻辑扇区⼤⼩为512字节,分区⼤⼩为扇区数量的512倍字节,需要乘以扇区⼤⼩(下⾯换算分区⼤⼩同理),根分区的起始位置则换算为

512*532480=272629760

它偏离⽂件起始的272629760字节,即⽤-o参数指定偏移的值。

分区的⼤⼩为

512*6864896=3514826752

使⽤-S参数限制映像⽂件的内容范围,记录下来以上信息后,卸载loop设备(此处为/dev/loop0),然后再重新进⾏映射。

卸载设备

#losetup-d/dev/loop0

再次映射

#losetup-f-o272629760-S3514826752./

此时,我们再次losetup看看映射的loop设备

#losetup

NAMESIZELIMITOFFSETAUTOCLEARROBACK-FILEDIOLOG-SEC

/dev/loop7262976000/home/xxx/raspbian/05120512

可以看到sizelimit字段和offset字段都有了具体的值,和我们设置的⼀致。/dev/loop0映射到了映像⽂件的根分区范围内

这是⼀个ext分区,我们可以通过tun2fs来读取⽂件系统的超级块

#tun2fs-l/dev/loop0

可以看到以下内容

tune2fs1.44.5(15-Dec-2018)

Filesystemvolumename:rootfs

Lastmountedon:/mnt/raspbian

FilesystemUUID:80571af6-21c9-48a0-9df5-cffb60cf79af

Filesystemmagicnumber:0xEF53

Filesystemrevision#:1(dynamic)

Filesystemfeatures:has_journalext_attrresize_inodedir_indexfiletypeextentflex_bgsparse_superlarge_filedir_nlink

extra_isize

Filesystemflags:unsigned_directory_hash

Defaultmountoptions:user_xattracl

Filesystemstate:clean

Errorsbehavior:Continue

FilesystemOStype:Linux

Inodecount:214704

Blockcount:858112

Reservedblockcount:42905

Freeblocks:133541

Freeinodes:108390

Firstblock:0

Blocksize:4096

Fragmentsize:4096

ReservedGDTblocks:209

Blockspergroup:32768

Fragmentspergroup:32768

Inodespergroup:7952

Inodeblockspergroup:497

Flexblockgroupsize:16

Filesystemcreated:FriFeb1400:15:482020

Lastmounttime:SatAug1504:54:282020

Lastwritetime:SatAug1505:22:082020

Mountcount:3

Maximummountcount:-1

Lastchecked:FriFeb1400:15:482020

Checkinterval:0()

Lifetimewrites:3052MB

Reservedblocksuid:0(userroot)

Reservedblocksgid:0(grouproot)

Firstinode:11

Inodesize:256

Requiredextraisize:32

Desiredextraisize:32

Journalinode:8

Defaultdirectoryhash:half_md4

DirectoryHashSeed:6006b686-6f27-4ca7-b7ea-d1d803c3da46

Journalbackup:inodeblocks

说明正确读出了该分区下⽂件系统的超级快。可以挂载。

第4步:挂载⽂件系统

在当前⽂件夹下新建⼀个root⽂件夹作为分区的挂载点。

#mkdirroot

挂载

#mount-text4-orw/dev/loop0root

挂载成功后,通过当前⽬录下root挂载点访问img中根分区的内容。需要修改什么内容就尽情修改吧!

修改完成后使⽤sync命令同步写⼊磁盘。

#sync

#sync

#sync

退出root⽂件夹后,卸载当前⽬录下root挂载点

#umountroot

取消映射关系,分离

#losetup-d/dev/loop0

插⼊tf卡后,⽤dd指令把img⽂件写⼊,假设内存卡设备为/dev/sdc

ddif=./=/dev/sdc

镜像⽐较⼤,⽽且tf卡性能较差的情况下,写⼊的速度⽐较慢,需要耐⼼等待。

写⼊成功后,sync同步,即可取出tf卡。树莓派系统刷写完毕。

更多推荐

iso镜像文件下载