总结
我的自定义 Ubuntu Live Installer USB 棒在旧笔记本电脑的 Legacy BIOS 模式下显示自定义菜单选项,但在新笔记本电脑的 UEFI BIOS 模式下不显示。
为什么?我该如何解决这个问题?
问题和背景
我已获取原始的 Ubuntu 18.04 Desktop iso,并对其进行了修改,使其包含一些脚本、不同的背景图像、我的预置文件以及略微修改的 Python 脚本。我怀疑我的问题与这些无关,但这就是背景,如果您想了解更多信息,请参阅我的写作在这里。
重要的一点是:我已经进行了修改isolinux/isolinux.cfg
,以便从 USB 棒启动时看到的第一个屏幕显示了默认选择的附加安装选项,并且具有一些附加启动参数。
它在我的旧笔记本电脑上运行良好,但在我的新笔记本电脑上无法识别为可启动的 UEFI BIOS。由于使用 Legacy BIOS 模式可能会导致已安装的操作系统出现问题,因此我重新创建了我的 iso,以便它可以使用 xorriso 在两种模式下运行,如概述所示这里:
sudo apt-get -y install isolinux xorriso
sudo xorriso -as mkisofs \
-isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin \
-c isolinux/boot.cat \
-b isolinux/isolinux.bin \
-no-emul-boot \
-boot-load-size 4 \
-boot-info-table \
-eltorito-alt-boot \
-e boot/grub/efi.img \
-no-emul-boot \
-isohybrid-gpt-basdat \
-o /path/to/tmp.iso \
/path/to/tmp
我已经在干净的 Ubuntu 18.04 桌面棒的实时系统上运行了该程序。然后dd
将其复制到另一个 USB 棒上:
sudo umount /dev/sdb1
sudo dd bs=4M if=/path/to/tmp.iso of=/dev/sdb
现在,将新笔记本电脑的 BIOS 设置为仅 UEFI 模式后,它可以正常启动到 grub,尽管与旧版 BIOS 笔记本电脑相比,它看起来有很大不同。最重要的是:我的自定义选项缺失。
我知道这些图片很模糊,但差异很明显:
当我按下e
并编辑Install Ubuntu
选项的启动参数时,它(大部分)都符合我的预期。以下是 中指定的那些参数isolinux.cfg
。
# D-I config version 2.0
# search path for the c32 support libraries (libcom32, libutil etc.)
path
include menu.cfg
#default vesamenu.c32
default install
prompt 1
timeout 50
ui gfxboot bootlogo
label install
menu label ^LucidBrot 18.04 v72 (prod)
kernel /casper/vmlinuz
append auto=true file=/cdrom/preseed/my.seed boot=casper debug-ubiquity automatic-ubiquity initrd=/casper/initrd DEBCONF_DEBUG=5 debian-installer/locale=de_CH.UTF-8 keyboard-configuration/layoutcode=ch languagechooser/language-name=English countrychooser/shortlist=CH localechooser/supported-locales=en_US.UTF-8 ---
如何使我的自定义选项出现在 UEFI 模式启动选择屏幕上?
补充笔记
我已经将上述情况稍微简化了。在我将内容从一台机器复制到另一台机器时,创建 iso 之前文件中的某些权限可能被弄乱了。我提到这一点是因为它可能是罪魁祸首。
当我按下
e
并编辑该Install Ubuntu
选项的启动参数时,它(大部分)按照我的预期执行。大部分符合我的预期,但并非完全符合:我添加了一个脚本,将实时安装程序(不是目标系统)的原始橙色仿生海狸背景替换为蓝色版本,以进行测试。这在我的旧笔记本电脑和新笔记本电脑的旧版 BIOS 上都可以正常工作,但在以 UEFI 模式运行的新笔记本电脑上,它反而显示为单色蓝色背景。
据我所知,我所做的任何其他预置在手动添加启动参数的情况下运行时都能按预期工作。安全启动目前已禁用
答案1
这样写出这个问题使得建议“类似问题s” 突然帮了大忙。
对于任何有同样问题的人:
编辑boot/grub/grub.cfg
以包含与您相同的条目,isolinux/isolinux.cfg
但使用不同的语法:
menuentry "Custom Install yey" {
set gfxpayload=keep
linux /install/vmlinuz auto=true file=/cdrom/preseed/my.seed --
initrd /install/initrd
}
set gfxpayload=keep
意味着它不会修改文本与视频图形的选择。
将任何其他启动参数放在以 开头的行上linux
。
我已将自定义条目放在顶部,就在设置超时的行下方。它现在已自动成为默认选项。