4 linux command-line partitioning gpt
在问这里之前,我尝试在 SU/SE 和 Google 上搜索但没有成功。这是我得到的最接近的东西。
基本上,我正在尝试执行以下操作:
- 创建一个大约 128MB 的磁盘映像;
- 创建一个 GPT;
- 在前 32MB 中创建一个 FAT32 分区(我称之为 UEFI);
- 在剩余字节中创建一个 FAT32 分区(我称之为系统);
- 在 UEFI 分区中创建以下子目录:/EFI/BOOT/;
- 复制子目录中的文件;
- 复制 SYSTEM 分区中的另一个文件。
这是我迄今为止所做的:
dd if=/dev/zero of=disk.img bs=1M count=128
parted disk.img
(parted) mktable gpt
(parted) mkpart primary fat32 2048s 65535s
(parted) mkpart primary fat32 65536s 100%
(parted) align-check optimization 1 (parted) align-check optimization
2
(parted) name 1 UEFI
(parted) ) 名称 2 系统
这是我的输出:
磁盘disk.img:134MB 扇区大小(逻辑/物理):512B/512B 分区表:gpt 磁盘标志: 编号开始结束大小文件系统名称标志 1 1049kB 33,6MB 32,5MB UEFI msftdata 2 33,6MB 134MB 101MB 系统 msftdata
另一种方法是创建两个不同的分区,然后合并它们:
dd if=/dev/zero of=uefi.img bs=1M count=32 mformat -i uefi.img -v UEFI -f 1440 -c 1 :: mmd -i uefi.img ::/EFI mmd -i uefi.img ::/EFI/BOOT mcopy -i uefi.img BOOTX64.EFI ::/EFI/BOOT
dd if=/dev/zero of=system.img bs=1M count=100 mformat -i system.img -v UEFI -f 1440 -c 1 :: mcopy -i system.img myawesomeOS ::
在前一种方式中,我无法弄清楚为什么“文件系统”列是空的(应该说是fat32)以及如何创建子目录和复制文件。
在后一种方式中,我无法为这两个图像创建合适的 FAT32 文件系统,如果我将 -F 附加到 mformat 我得到
这种脂肪尺寸的簇太少了。请在您的 /etc/mtools.conf 或 .mtoolsrc 文件中选择一个 16 位的 fat
如果我设法做到了,我仍然不知道如何设置 GPT 并将两个图像合并到一个文件中。
我怎样才能做到这一点?任何帮助或提示表示赞赏。
小智 5
经过几个小时的挣扎,我自己解决了。我会在这里发布解决方案,以防万一:
# 创建一个 256MB 的空磁盘镜像,创建它的 GPT,然后制作 # 两个分区:第一个大约60MB,第二个填满 # 剩余的字节。两个分区对齐。 dd if=/dev/zero of=disk.img bs=1M count=256 分开的磁盘.img mktable gpt mkpart 初级 fat32 2048s 131071s mkpart 初级 fat32 131072s 100% 对齐检查最优 1 对齐检查最优 2 名称 1 UEFI 名称 2 系统 退出 # 创建一个 33MB 的空磁盘映像。 dd if=/dev/zero of=uefi.img bs=1M count=33 # 将磁盘映像格式化为 FAT32 mkfs.vfat uefi.img -F 32 # 创建请求的子目录。 mmd -i uefi.img ::/EFI mmd -i uefi.img ::/EFI/BOOT # 复制启动文件。 mcopy -i uefi.img BOOTX64.EFI ::/EFI/BOOT # 创建一个 100MB 的空磁盘映像。 dd if=/dev/zero of=system.img bs=1M count=100 # 将磁盘映像格式化为 FAT32 mkfs.vfat system.img -F 32 # 复制操作系统文件。 mcopy -i system.img SYSTEM.EFI :: # 启用 kpartx 请求的内核模块,以防万一。 须藤 modprobe dm-mod # 将disk.img 中的两个分区映射并挂载到/dev/mapper/loop0p1 和 # /dev/mapper/loop0p2 须藤 kpartx -av disk.img # 将 UEFI 分区复制到磁盘映像中。 sudo dd if=uefi.img of=/dev/mapper/loop0p1 bs=1M # 将 SYSTEM 分区复制到磁盘映像中。 sudo dd if=system.img of=/dev/mapper/loop0p2 bs=1M # 卸载两个分区 须藤 kpartx -dv disk.img
| 归档时间: |
|
| 查看次数: |
2994 次 |
| 最近记录: |