在Linux下制作img文件
1. 执行以下命令安装一些制作img时需要用到的工具
sudo apt-get install util-linux kpartx dosfstools e2fsprogsgddrescue qemu-utils
2. 执行以下指令创建一个新的img文件,大小请根据需求,但请注意img越大,之后烧写的时间会越久,假设img为500MB
Sudo qemu-img create bbb.img 500M
3. 执行以下指令为空的img文件创建两个分区,第一个分区为“W95 FAT16,大小为48MB,第二分区为Linux
sudo sfdisk --in-order --Linux --unit M a.img << EOF
1,48,0xE,*
,,,-
EOF
4. 执行以下指令
sudo kpartx -av bbb.img
系统将输出以下提示信息
add map loop0p1 (252:0): 0 98304 linear /dev/loop0 2048
add map loop0p2 (252:1): 0 923648 linear /dev/loop0100352
可以发现设备被命名为loop0
5. 执行以下指令对a.img的两个分区进行格式化
sudo mkfs.vfat -F 16 /dev/mapper/loop0p1 -n boot
sudo mkfs.ext4 /dev/mapper/loop0p2 -L rootfs
6. 执行以下指将uboot写入img
sudo dd if=u-boot.imx of=/dev/mapper/loop0 bs=512 seek=2 conv=fsync
7. 执行以下指令挂载a.img的两个分区
mkdir -p tmpmnt/boot
mkdir -ptmpmnt/rootfs
sudo mount /dev/mapper/loop0p1 tmpmnt/boot/
sudo mount /dev/mapper/loop0p2 tmpmnt/rootfs/
8. 将zImage、dtb和uEnv.txt文件拷贝至第一个分区
9. 将rootfs放到第二分区
10. 执行以下命令完成a.img的制作
sudo umount tmpmnt/boot/
sudo umounttmpmnt/rootfs/
sudo kpartx -dvbbb.img
网友评论