我如何链接从grub引导到syslinux?

我正在扩大我的救援USB闪存盘。 USB的分区是可引导的,我已经安装了GRUB到跳转驱动器的MBR。 它工作的很好 – 我可以启动Freedos并运行一些实用程序,我可以启动PING 。

我想添加Ubuntu 9.10 LiveCD到这个救援的USB驱动器。 我有一个工作跳转,所以我可以很容易地复制的文件。 我可以searchGRUB所需的menu.lst条目,但Ubuntu LiveUSB使用相当复杂的syslinuxconfiguration。 另外,我想保留当前LiveCD / LiveUSB的外观,而不必将syslinuxconfiguration移植到GRUB。

在〜庸医的build议我尝试了一个menu.lst条目:

  title Ubuntu 9.10 LiveCD root=(hd0,0) kernel /ubuntu-9.10/syslinux/isolinux.bin 

但GRUB回应Error 13: Invalid or unsupported executable format 。 然后在GRUB命令行中尝试:

  grub> root=(hd0,0) grub> kernel /syslinux/isolinux.bin 

因为我在该位置有第二个isolinux.bin文件,但是GRUB响应同样的错误。 我也试过:

  grub> chainloader /syslinux/isolinux.bin 

并再次收到错误13.最后,我尝试在GRUB命令行:

  grub> root=(hd0,0) grub> kernel /ubuntu-9.10/install/mt86plus grub> boot 

那工作

我真正想要的是一种让GRUB调用syslinux / isolinux bootloader的方法。 然后,syslinux可以加载自己的菜单和什么。

有人知道怎么做吗?

更新:根据您的input,我发现文章“Grub chainloads syslinux and back” ,基本上说“patch grub”:

  • 从GRUB链接加载syslinux似乎不可能没有补丁 。 我不知道GRUB2。 这对于多启动(基于syslinux的)分区可能很有用。

  • 从GRUB4dos链接加载syslinux(在不同的分区上)是可能的。 我通过映射pipe理它, 在这里再次解释。 它解决了多引导USB设备中的一些问题 。

补丁页面提到一个类似的补丁被发布到grub-devel for Grub v2; 这个post可能是那个补丁。 或者这个消息指向这个漏洞报告 (date为2009年11月,所以这是最近的) Grub v2补丁 。

要使用其中一个补丁程序,您需要下载您首选的Grub版本的Grub源代码,检查是否已经包含该补丁程序,尝试应用该补丁程序,然后重新编译并重新安装新的Grub。


原始答案:

我会尝试先testing一个简单的Grub条目。 这是Debian系统上Memtest86 +实用程序的标准Grub条目:

 title Debian, memtest86+ root (hd0,0) kernel /boot/memtest86+.bin 

只要尝试调整你的值(根据需要更改根分区或内核path):

 title Ubuntu LiveUSB SysLinux boot root (hd0,0) kernel /syslinux/isolinux.bin 

我不认为你需要chainloader+命令来完成这个任务。

标题UBUNTU 9.1 ISO引导

find–set-root /ubuntu9.1.iso

地图/ubuntu9.1.iso(hd32)

地图 – 挂钩

根(hd32)

chainloader(hd32)

将其添加到我们的menu.lst,并将ubuntu9.1.iso复制到menu.lst所在的驱动器上。

在Windows系统上使用YUMI似乎是最简单的方法。

http://www.pendrivelinux.com/yumi-multiboot-usb-creator