安装软件包
bash
sudo apt-get install dosfstools dump parted kpartx
创建空白img文件
bash
sudo dd if=/dev/zero of=raspberrypi.img bs=1M count=4000
给img文件分区
bash
sudo parted raspberrypi.img --script -- mklabel msdos
sudo parted raspberrypi.img --script -- mkpart primary fat32 2048s 526335s
sudo parted raspberrypi.img --script -- mkpart primary ext4 526336s -1
检测分区
bash
$ fdisk raspberrypi.img
欢迎使用 fdisk (util-linux 2.31.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助): p
Disk raspberrypi.img:4 GiB,4294967296 字节,8388608 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x3b51dc09
设备 启动 起点 末尾 扇区 大小 Id 类型
raspberrypi.img1 2048 526335 524288 256M c W95 FAT32 (LBA)
raspberrypi.img2 526336 8189951 7663616 3.7G 83 Linux
命令(输入 m 获取帮助): q
使用 losetup将磁盘镜像文件虚拟成块设备
bash
sudo losetup -f --show raspberrypi.img
/dev/loop22
/dev/loop22为设备文件路径,下面的命令中相应输入
/dev/loop22
,如果不是 loop22 请做相应调整(以及以后的各个步骤里的loop22都要改变)
挂载虚拟文件系统
bash
sudo kpartx -va /dev/loop22
查看分区文件是否存在
bash
ls /dev/mapper/loop22p*
格式化
bash
sudo mkfs.vfat -n boot /dev/mapper/loop22p1
sudo mkfs.ext4 -L rootfs /dev/mapper/loop22p2
挂载
bash
mkdir boot rootfs
sudo mount -t vfat -o uid=topeet,gid=lat,umask=0000 /dev/mapper/loop22p1 ./boot/
sudo mount -t ext4 /dev/mapper/loop22p2 ./rootfs/
卸载删除
bash
sudo umount boot rootfs
sudo kpartx -d /dev/loop22
sudo losetup -d /dev/loop22
rmdir boot rootfs