如何從 grub 連結引導到 syslinux?
我正在擴展我的救援 USB 快閃記憶體盤。USB 的分區是可引導的,我已經將 GRUB 安裝到了跳轉驅動器的 MBR。它工作得很好——我可以啟動Freedos並執行一些實用程序,我可以啟動PING。
我想將 Ubuntu 9.10 LiveCD 添加到這個救援 USB 驅動器。我有一個可以工作的 jumpdrive,所以我可以很容易地複製文件。我可以
menu.lst
找到 GRUB 所需的條目,但 Ubuntu LiveUSB 使用相當複雜的 syslinux 配置。此外,我想保留盡可能多的目前 LiveCD/LiveUSB 外觀而不將 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
並再次收到錯誤 13。最後,我嘗試了 GRUB 命令行:
grub> root=(hd0,0) grub> kernel /ubuntu-9.10/install/mt86plus grub> boot
那行得通
我真正想要的是一種讓 GRUB 呼叫 syslinux/isolinux 引導載入程序的方法。然後 syslinux 可以載入它自己的菜單等等。
有人知道怎麼做嗎?
**更新:**根據您的條目,我找到了文章“Grub chainloads syslinux and back”,它基本上說的是“patch grub”:
- 如果沒有更新檔,從 GRUB 鍊式載入 syslinux 似乎是不可能的。我不知道GRUB2。這對於多重引導(基於 syslinux)的分區很有用。
- 可以從 GRUB4dos(在不同的分區上)鍊式載入 syslinux。我通過映射管理它,在這裡(再次)解釋。它解決了多啟動 USB 設備中的一些問題。
更新檔頁面提到了一個類似的更新檔已發佈到grub-devel for Grub v2;這個文章可能就是那個更新檔。或者這條消息,它指向Grub v2 更新檔的這個錯誤報告(日期為 2009 年 11 月,所以它是最新的)。
要使用其中一個更新檔,您需要下載首選 Grub 版本的 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+
此任務的命令。