我想创建一个包含两个分区的映像文件:
- 100MB FAT 启动分区,包含我的内核 zImage 和 dtb(设备树 blob)文件。
- 900MB EXT4 Rootfs 分区,包含我的根文件系统。
然后我希望能够将该映像文件刷新到任何 SD 卡以启动 Linux 板。
我该如何做到这一点以及我需要什么工具? (我更喜欢基于 cli 的工具而不是 GUI)
笔记:我已经有了内核 zImage、DTB 和 rootfs,我需要制作所有这些的 sdcard 可启动映像,以便轻松地将其刻录到任何 sdcard 上。但目前我没有SD卡。稍后我会买我的sd卡。首先,我想准备好图像,当我购买它们时,我会迅速在所有它们上闪现图像。
答案1
这是一个简单的任务!只需遵循以下 15 个步骤即可。
脚步:
- 分配文件空间
fallocate -l 500M sd.img
。 - 使用磁盘驱动器(dos 分区表)或g磁盘(gpt(引导分区表)) 创建分区表
sudo fdisk sd.img
。 - 打开 fdisk 后,按 创建分区
n
,然后p
按 创建主分区,然后按 Enter 保留所有默认设置,除了“最后一个扇区”选项。输入+100M
创建一个 100MB 的分区。 - 重做第三步创建第二个分区。
- 输入
w
保存并退出。 - 使用创建图像的循环设备
sudo kpartx -av sd.img
。 - 格式化分区
sudo mkfs.fat /dev/mapper/loop0p1
和sudo mkfs.ext4 /dev/mapper/loop0p2
. - 创建安装点
sudo mkdir /mnt/temp_part1/
&sudo mkdir /mnt/temp_part2/
。 - 安装分区
sudo mount /dev/mapper/loop0p1 /mnt/temp_part1/
和sudo mount /dev/mapper/loop0p2 /mnt/temp_part2/
。 - 将您的内容复制到安装点。
- 同步
sudo sync
。 - 卸载它们
sudo umount /dev/mapper/loop0p1 /mnt/temp_part1/
并sudo umount /dev/mapper/loop0p2 /mnt/temp_part2/
- 删除循环设备
sudo kpartx -d sd.img
- 在任何操作系统上使用任何闪存软件将图像闪存到 SD 卡上。我用巴莱纳蚀刻机。
- 尽情享受您的 SD 卡吧!