我确实重新制作了用于在我的计算机上安装 ubuntu 的图像,以获得自定义预种子。但是在 20.10 中,我以前使用的进程和命令不起作用
这是我在 20.04 中使用的命令:
xorriso -as mkisofs -r -V "$disk_title" -J -joliet-long -cache-inodes -l -isohybrid-mbr "$MBR_FILE" -c isolinux/boot.cat -b isolinux/isolinux.bin -boot-load-size 4 -iso-level 3 -boot-info-table -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot -isohybrid-gpt-basdat -o Image.iso unpackedImageDirectory
但是 20.10 似乎根本没有使用 isolinux(syslinux),因为我无法找到该目录。目录中的文件boot
也发生了变化。
新的正确流程是什么?
Ubuntu 的 ISO 发生了很大变化:
BIOS 引导映像和 MBR 现在来自 GRUB。
EFI 系统分区不再是 ISO 中的文件。
分区表现在是 GPT。但是 ISO 通过一个类型为 00 且大小为 1 的附加 MBR 分区来保持其旧的jackalope 风格。这个几乎不存在的分区保存了一些旧 BIOS 机器的引导标志,这些机器只有在某些 MBR 分区条目中存在此标志时才会启动。EE 类型的保护 MBR 分区不允许带有此标志。
您可以从原始 ISO 中提取 MBR 和 EFI 分区映像。
现在您可以打包新的 ISO:
我从运行中获得了启动准备选项
遗憾的是 xorriso <= 1.5.2 在此命令的输出中有一个错误,使用 --mbr-force-bootable 的 ISO,还报告 -as mkisofs 选项
这会破坏从新联想笔记本电脑启动的 ISO。最新的 GNU xorriso-1.5.3 tarball 修复了这个错误。
祝你今天过得愉快 :)
托马斯
根据要求编辑:
关于新的引导设备。
引导诱饵集与旧 ISO 一样拥挤:El Torito 用于 BIOS 和来自光学介质的 EFI,MBR x86 代码用于 U 盘中的 BIOS,带有 EFI 分区的分区表,用于 U 盘中的 EFI。
放弃 SYSLINUX/ISOLINUX 的原因可能是其糟糕的维护状态,以及无论如何都需要 GRUB 来通过 EFI 从光学介质引导这一事实。ISOLINUX 和 GRUB 的旧分区布局组合不适用于某些现代 EFI 笔记本电脑上的 GRUB+GRUB。我怀疑他们仅在存在 ISOLINUX MBR 时才容忍 MBR 分区表。如果从 UEFI 规范来看,那个旧布局是相当可恶的。
所以Ubuntu去附加分区和GPT作为分区表。一些旧的 HP 笔记本电脑被救出,不得不被 MBR 分区表中的引导标志拖入。
这种改变是费力的,部分是痛苦的。 https://bugs.launchpad.net/ubuntu-cdimage/+bug/1886148 https://bugs.launchpad.net/ubuntu-cdimage/+bug/1899308