从 GRUB2 链加载 syslinux - 显示 syslinux.cfg 菜单

从 GRUB2 链加载 syslinux - 显示 syslinux.cfg 菜单

我正在使用 Clonezilla live USB 磁盘来重新映像系统。根据中的解释http://clonezilla.org/fine-print-live-doc.php?path=clonezilla-live/doc/99_Misc/00_live-boot-parameters.doc我的磁盘会提示我包含所有系统的菜单syslinux.cfg,但最新的 UEFI 机器(并且 BIOS 配置为首先从 UEFI 设备启动)除外,系统会提示我菜单grub.cfg

鉴于我大量定制了syslinux.cfg菜单,我想修改该grub.cfg文件以仅自动链接加载到 syslinux,以便syslinux.cfg在所有情况下显示菜单。

这有可能吗?如何?

磁盘上有 GRUB2,我的理解(通过在互联网上查找)应该是可能的,但我还不明白如何实现。任何帮助表示赞赏。

编辑:
我想澄清的是,系统使用 grub 启动时不会出现选择grub.cfgConezilla 下载提供的默认菜单中的任何选项的问题,但我想做的是显示 syslinux 的菜单(在syslinux.cfg)而不是默认菜单在grub.cfg

第二次编辑,我是如何做到的:
最后,建议的解决方案对我不起作用,所以我只是将“EFI\boot”文件夹设置为“不可用”(重命名);这样,UEFI 启动失败,系统从 syslinux 启动,就像在旧系统上一样:没有修改 BIOS,没有新菜单,没有链加载...

答案1

4年后...:)

尝试这个:

menuentry 'menuentry' {
    set root=(hd0,1)
    syslinux_source /path/isolinux/isolinux.bin
    syslinux_configfile /path/isolinux/isolinux.cfg
}

答案2

这表明这是一些与此相关的错误以及一些补丁,因此很难确定:https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/469568

首先,如果您的操作系统更新 grub,它将重新生成 grub.cfg 并清除您的配置,因此不要手动修改 /boot/grub.cfg,而是修改 /etc/grub.d 中的文件(名为 40_custom 或类似名称的文件)并致电grub-mkconfig -o /boot/grub/grub.cfg.

你可以尝试这样简单的事情:

menuentry "Syslinux 根驱动器" {

设置根=(hd1,3)

链式装载机+1

}

(hd1,3)是sdb3磁盘分区,grub支持uuid识别,因此可以创建让所有PC都检测到您的分区的设置。然而,根据我的经验,有时这还不够。

你也可以尝试类似的东西chainloader (hd1,3)/path/to/syslinux/isofile.bin

如果一切都失败了,可以从包含 syslinux 的 iso 启动,但在你的情况下这似乎不是一个选择。

答案3

您必须进行目录安装而不是引导扇区安装。如果您进行引导扇区安装,则将分区的前 512 字节添加到文件中并链式加载到该文件。为我工作。

相关内容