我正在扩展我的救援usb闪存盘。USB的分区是可引导的,我已经在跳转驱动器的MBR上安装了GRUB。它运行得很好--我可以引导费多斯并运行一些实用程序,也可以引导PING。
我想添加Ubuntu9.10 LiveCD到这个拯救的usb驱动器。我有一个工作的jumpdrive,所以我可以很容易地复制文件。我可以找到GRUB所需的menu.lst条目,但是Ubuntu LiveUSB使用相当复杂的syslinux配置。此外,我希望保持现有的LiveCD/LiveUSB外观-n-感觉,而不将syslinux配置移植到GRUB。
在~quack的建议下,我尝试了一个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最后,我尝试使用GRUB命令行:
grub> root=(hd0,0)
grub> kernel /ubuntu-9.10/install/mt86plus
grub> boot这起作用了
我真正想要的是一种让GRUB调用syslinux/isolinux引导加载器的方法。然后syslinux可以加载它自己的菜单什么的。
有人知道怎么做吗?
发布于 2010-01-03 08:47:57
更新:基于您的条目,我找到了一篇文章Grub链装载syslinux和back,主要内容是“修补程序grub":
补丁页面提到了一个类似的补丁发布到粗食中,用于Grub v2;这个职位可能就是该修补程序。或者这条信息,它指的是这个错误报告 (日期为2009年11月,所以是最近的) Grub v2补丁。
要使用其中一个补丁程序,您需要下载Grub源代码,检查它是否已经包含了修补程序,尝试应用补丁,重新编译和重新安装新的Grub。
我试着先测试一个简单的Grub条目。这是Debian系统上Memtest86+实用程序的标准Grub条目:
title Debian, memtest86+
root (hd0,0)
kernel /boot/memtest86+.bin只需尝试使用您的值来调整这些值(根据需要更改根分区或内核路径):
title Ubuntu LiveUSB SysLinux boot
root (hd0,0)
kernel /syslinux/isolinux.bin我不认为这个任务需要chainloader+命令。
发布于 2010-01-06 06:07:16
标题Ubuntu9.1 ISO Boot
查找-集-根/ubuntu9.1.iso
map /ubuntu9.1.iso (hd32)
地图钩
根(hd32)
链式装载机(hd32)
将其添加到您的menu.lst中,并将ubuntu9.1.iso复制到menu.lst存在的驱动器中。
发布于 2019-01-28 03:09:08
您可以轻松地从grub2链接syslinux。最简单和最普遍的方法是:
点击grub菜单中的“c”命令行。
set root='hd1,msdos1'
chainloader +1
boot其中'hd1,msdos1‘是一个常见的值引导,但是您可以使用ls搜索大多数文件系统,例如,ls (hd1,msdos1)会告诉您这个部分,然后ls (hd1,msdos1)/会给您显示文件。如果它是grub normal无法识别的文件系统,那么您可能必须安装一个带有insmod的fs模块。您可以使用grub的search命令来找到它。search --no-floppy --set=root
但是,您可能不需要链接syslinux (或其他任何东西)。grub很灵活。例如,在我的高山USB手柄上,我经常这样做:
set root='hd2,msdos1'
configfile /boot/grub/grub.cfg就在菜单上。当然,上面有个稀饭的cfg。您还可以从磁盘上的grub / on或grub手动设置引导。
set root='hd2,msdos1' # or search...
linux /boot/vmlinuz
initrd /boot/initramfs对我来说,我甚至可以在我的Xen‘s’d‘s阿尔卑斯USB手柄上做这样的事情
multiboot2 /boot/xen.gz
module2 /boot/vmlinuz-vanilla modules=loop,squashfs,sd-mod,usb-storage
module2 /boot/initramfs-vanilla但是,这基本上就是现在阿尔卑斯山所带来的/boot/grub.cfg。关键是它可以做不同的和变化的操作系统,initramfs和内核。我认为您也可以使用chainloader $path_to_bin直接加载syslinux二进制文件,而且我的grub实际上有一个syslinux_configfile和syslinux_source命令,所以这似乎也有效:
syslinux_source /boot/syslinux.bin
syslinux_configfile /boot/syslinux/syslinux.cfg希望其中之一对你有用。在grub中学习我的方法是一种拯救生命的方法。我已经从美国阿姆斯特丹的一台远程机器上保存了一个带有损坏配置的linux安装或移动/更改的HDD,方法是从现有的HDD上点击grub- have >并加载模块,并引导到旧的分区/OS中,以便修复/重新配置它。
https://serverfault.com/questions/98950
复制相似问题