我正在尝试创建自定义的 Ubuntu Server ISO(使用此处的说明) 用于 Hyper-V VM。我想修改boot/grub/grub.cfg
以添加autoinstall
到内核命令行参数以启用自动服务器安装。
menuentry "Install Ubuntu Server" {
set gfxpayload=keep
linux /casper/vmlinuz autoinstall quiet ---
initrd /casper/initrd
}
如果我在 Hyper-V 中创建新的 VM,并让其从未修改的 Ubuntu Server ISO 启动,然后手动修改 grub 中的启动选项,则自动安装可以顺利运行。但是 Hyper-V 永远不会从我的自定义 ISO 启动,而是直接跳到 PXE 启动。自定义 ISO 确实在 KVM 中启动,所以我一定遗漏了 Hyper-V 所需的某些东西。
修改后,我运行的创建新 ISO 的具体命令grub.cfg
来自上面链接的有关自定义安装 CD 的指南:
mkisofs -r -V "Custom Ubuntu Install CD" \
-cache-inodes \
-J -l -b isolinux/isolinux.bin \
-c isolinux/boot.cat -no-emul-boot \
-boot-load-size 4 -boot-info-table \
-o custom.iso /path/to/iso/root
我正在修改的基本 Ubuntu Server ISO 是 20.04.3。我的主机是 Windows 10。
有没有办法修改mkisofs
命令以包含 Hyper-V 所需的任何内容,或者有没有办法从标准 ISO 复制精确的设置,因为它已经适用于 Hyper-V?
答案1
我为 Ubuntu 20.04 找到了答案。您需要创建带有启动映像的 ISO。它位于 iso 本身上,名为 efi.img。
遗憾的是,这不再适用于 Ubuntu 22.04/10,因为 efi.img 不再存在于 iso 中。我还没有找到创建自定义 iso 的方法,以便它可以在 hyper v 中启动