![内核启动命令行在 uefi 模式下改变](https://linux22.com/image/934766/%E5%86%85%E6%A0%B8%E5%90%AF%E5%8A%A8%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%9C%A8%20uefi%20%E6%A8%A1%E5%BC%8F%E4%B8%8B%E6%94%B9%E5%8F%98.png)
我想为 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 模式,自动安装配置文件的路径也会被正确选择。遗憾的是,任何文档中都没有提到这一点,因为“;”后面的部分是一个令人困惑的问题。