树莓派修改系统镜像
讨论如何使用通过loop设备映射文件,挂载树莓派img中的分区,然后像普通的文件系统那样修改镜像分区中的文件。
有2个关键点
如何确认分区的起始位置,以及分区的范围。
不同版本的losetup支持的参数不一样,如果支持-P参数特性,则可以直接加载分区,无需再手动计算偏移量,可以像挂载普通硬盘一样直接生成分区块设备
准备工作
需要一个支持linux设备,已经root了的termux,或者,一个普通的linux发行版均可。
需要用到的关键命令losetup,fdisk,tun2fs,mount,请检查是否都有。
大部分操作均需要root权限。
去源内下载一份镜像文件。
第一步:下载镜像
首先,下载一个可以用于写入树莓派的img镜像,国内可以在清华的镜像站中下载。
我下载的是2020-02-13-raspbian-buster.zip,解压后得到2020-02-13-raspbian-buster.img,img文件可以直接烧录到内存卡,它实际上是个包含了mbr分区表的磁盘映像。
第二步:使用losetup命令把img文件映射成块设备
首先我们先确认losetup支持的选项,有没有-P选项:
#这是我手机版本的losetup
$losetup --help
usage: losetup [-cdrs] [-o OFFSET] [-S SIZE] {-d DEVICE...|-j FILE|-af|{DEVICE FILE}}
Associate a loopback device with a file, or show current file (if any)
associated with a loop device.
Instead of a device:
-a Iterate through all loopback devices
-f Find first unused loop device (may create one)
-j Iterate through all loopback devices associated with FILE
existing:
-c Check capacity (file size changed)
-d Detach loopback device
new:
-s Show device name (alias --show)