zynq平台sd卡启动用的多分区img文件的制作

该博客详细介绍了如何为SD卡创建四个分区,包括BOOT启动分区、rootfs分区、用户目录分区以及交换分区(swap)。通过使用loop设备、fdisk、kpartx和各种文件系统格式化工具,如vfat、ext4和mkswap,来实现分区和格式化。此外,还阐述了如何挂载和复制文件,并最终使用USBImageTool将映像写入SD卡。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目中设计的sd卡分四个分区
一、放置BOOT.bin(fsbl、uboot)、uImage、FPGA.bit等
vfat格式,cpu里的固件会到此分区里找BOOT.bin。所以,分区格式、分区号和内容要固定。
二、放置rootfs。ext4格式
三、家目录/home/root/。ext4格式
四、swap分区。嵌入式设备通常没有这个分区。

步骤:
1、利用用loop设备给img文件挂载分区、格式化
2、向分区导入其中的文件
3、用USB Image Tool向sd卡导img

命令过程:
创建一个空img文件,大小小于sd卡大小即可,不必相等
dd bs=4096 if=/dev/zero of=sd.img count=1310720

把img文件关联一个loop分区
losetup /dev/loop0 sd.img

给分区创建四个子分区,注意:前3个分区是主分区,最后一个要用t命令将id变成82(swap分区的要求)
fdisk /dev/loop0

把多分区img文件和loop关联
sudo kpartx -av sd.img

此时可以这样找到分区的loop节点
rpdzkj@ubuntu:~/code/tmp$ ls /dev/mapper/
control loop0p1 loop0p2 loop0p3 loop0p4

格式化四个分区
mkfs.vfat /dev/mapper/loop1p1
mkfs.ext4 /dev/mapper/loop1p2
mkfs.ext4 /dev/mapper/loop1p3
mkswap /dev/mapper/loop1p4

挂载前三个
sudo mount /dev/mapper/loop0p1 dir1
sudo mount /dev/mapper/loop0p2 dir2
sudo mount /dev/mapper/loop0p3 dir3

复制文件。重点:一定要带上avx,因为复制的文件要保持原来的属性
cp -avxr from dirx

sd.img制作完成,用USB Image Tool向sd卡导

参考:
http://blog.sina.com.cn/s/blog_9ac48e3c0102ybep.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值