内核启动命令行在 uefi 模式下改变

内核启动命令行在 uefi 模式下改变

我想为 Ubuntu 20.04 服务器准备自定义安装 ISO,它将使用自动安装功能自动安装系统。为了实现这一点,我必须将其添加到启动命令中:

autoinstall ds=nocloud;s=/cdrom/preseed/

最后 grub.cfg 中的整行如下所示:

linux   /casper/vmlinuz boot=casper quiet  autoinstall ds=nocloud;s=/cdrom/preseed/ ---

当我设置 bios 传统启动模式时,一切都正常。此命令被考虑在内,我的方案运行良好。但是,当设置 uefi 模式时,系统以手动模式安装,好像我的更改不存在。开始调试后,我可以看到启动命令实际上已更改,并且在 /var/log/kern.log 中我可以看到该字符串:

Command line: BOOT_IMAGE=/casper/vmlinuz boot=casper quiet autoinstall ds=nocloud

所以缺少这部分:;s=/cdrom/preseed/

我该如何解决这个问题,以便我的设置在 uefi 模式下也能正常运行?

答案1

看起来数据源参数可以转义。单引号可以解决这个问题:

ds='nocloud;s=/cdrom/preseed/'

这样,即使使用 uefi 模式,自动安装配置文件的路径也会被正确选择。遗憾的是,任何文档中都没有提到这一点,因为“;”后面的部分是一个令人困惑的问题。

相关内容