TL;博士
我自定义的 Ubuntu Live Installer USB 记忆棒在旧笔记本电脑上显示了 Legacy BIOS 模式下的自定义菜单选项,但在我的新笔记本电脑上却没有显示 UEFI BIOS 模式下的自定义菜单选项。
为什么,我该如何解决这个问题?
问题和背景
我采用了原始的 Ubuntu 18.04 桌面 iso 并对其进行了修改,以包含一些脚本、不同的背景图像、我的预置文件和一个稍微修改过的 python 脚本。我怀疑我的问题与这些有关,但这就是上下文,如果您想了解更多信息,请在此处查看我的文章。
重要的一点是:我进行了修改isolinux/isolinux.cfg
,以便当我从 USB 记忆棒启动时看到的第一个屏幕显示了一个默认选择的附加安装选项,并且有一些附加的启动参数。
它在带有 Legacy BIOS 的旧笔记本电脑上运行良好,但在带有 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
把它放到另一个 U 盘上:
sudo umount /dev/sdb1
sudo dd bs=4M if=/path/to/tmp.iso of=/dev/sdb
现在,在将新笔记本电脑的 BIOS 设置为 UEFI Only Mode 后,它可以正常启动到 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
选项的引导参数时,它(大部分)完成了我的预期。大部分是我所期望的,但不完全是:我添加了一个脚本,将实时安装程序(不是目标系统)的原始橙色仿生海狸背景替换为蓝色版本,用于测试目的。这在我的旧笔记本电脑和新笔记本电脑的 Legacy BIOS 上都可以正常工作,但在以 UEFI 模式运行的新笔记本电脑上,它显示为单色蓝色背景。
据我所知,当手动添加引导参数运行时,我所做的任何其他预置都按预期工作。安全启动当前已禁用
像这样写出这个问题使建议的“类似问题”突然有了很大帮助。
对于任何有同样问题的人:
编辑
boot/grub/grub.cfg
以包含与您相同的条目,isolinux/isolinux.cfg
但使用不同的语法:set gfxpayload=keep
意味着它不会修改文本与视频图形的选择。将任何其他引导参数放在以 . 开头的行上
linux
。我将自定义条目放在顶部,设置超时的行的正下方。它现在已自动成为默认选项。