-
生成200M的img文件,50M为boot目录,150M为rootfs,每个block大小为512B:
~/stp/build $ dd if=/dev/zero of=./imx6ull.img bs=512 count=409600
-
安装分区工具(选择):
~/stp/build $ sudo apt-get install dosfstools dump parted kpartx
-
在imx6ull.img文件上创建一个msdos分区表:
~/stp/build $ sudo parted imx6ull.img --script -- mklabel msdos
-
其中uboot.imx文件大小是400384,可以使用前(782+2)个block,那么偏移800个block就可以,考虑到文件系统对齐,选择偏移2048个block,第一个分区50M = 102400个block,分区:
在imx6ull.img
磁盘映像上创建了一个从第 2048 个扇区开始到第 104447 个扇区结束的主分区,并将其文件系统类型设置为 FAT32。这个分区可以用于存储数据:~/stp/build $ parted imx6ull.img --script -- mkpart primary fat32 2048s 104447s
在imx6ull.img
磁盘映像上创建了一个从第 104448 个扇区开始直到磁盘结束的主分区,并将其文件系统类型设置为 ext4,这个分区可以用于存储数据:~/stp/build $ parted imx6ull.img --script -- mkpart primary ext4 104448s -1
-
挂载:
~/stp/build $ sudo losetup -f --show imx6ull.img
-
通过lsblk查看系统分区:
~/stp/build $ sudo kpartx -va /dev/loop0
-
格式分区所有数据将被删除,并且该分区将被格式化为 FAT32 文件系统,使其可以用于存储文件:
~/stp/build $ sudo mkfs.vfat /dev/mapper/loop0p1
所有数据将被删除,并且该分区将被格式化为 ext4 文件系统,使其可以用于存储文件:~/stp/build $ sudo mkfs.ext4 /dev/mapper/loop0p2
-
挂载至系统设备:
文件系统将被挂载到./sd/boot/
目录~/stp/build $ sudo mount /dev/mapper/loop0p1 ./sd/boot/
设备/dev/mapper/loop0p2
中的文件系统将被挂载到./sd/root/
目录下:~/stp/build $ sudo mount /dev/mapper/loop0p2 ./sd/root/
-
复制需要的文件:
~/stp/build/sd/boot $ sudo cp ~/out/zImage ./
-
将文件
u-boot-dtb.imx
写入到设备/dev/loop0
的指定位置:sudo dd if=/home/stp/out/u-boot-dtb.imx of=/dev/loop0 bs=512 seek=2 conv=fsync
注意:使用绝对路径 -
卸载已经挂载:
~/stp/build $sudo umount ./sd/boot/ ./sd/root/
-
注销:
~/stp/build $sudo kpartx -d /dev/loop0
~/stp/build $sudo losetup -d /dev/loop0
-
烧写SD卡,读卡器可以直接插在树莓派上面速度还是快(一分钟不到就烧写完了):
sudo dd iflag=dsync oflag=dsync if=./imx6ull.img of=/dev/sda of=/dev/sda bs=512 count=8192
-
修改 rootfs/ 文件权限为775
制作镜像文件——树莓派5
于 2024-07-08 18:35:48 首次发布