如何在 GPT 上設定 GRUB2 chainloader 到其他 Grub(Fedora、Debian)

如何在 GPT 上設定 GRUB2 chainloader 到其他 Grub(Fedora、Debian)

我正在嘗試設定一個專用的 GRUB2,它在具有 GPT 分割區表的磁碟上(鍊式)載入另一個 GRUB。

相關分區:

  • /dev/sda1 BIOS_BOOT
  • /dev/sda2 啟動 (ext2)
  • /dev/sda3 費多拉 (ext4)
  • /dev/sda6 DEBIAN (ext4)

我先安裝了 Fedora,使用 /dev/sda2 作為啟動分割區。然後我安裝了Debian。 Debian 安裝程式識別了 Fedora 安裝並將其新增為啟動項,然後將其 GRUB 安裝到 MBR 中。雖然目前這可行,但它非常混亂,因為每個 Debian 更新都可能會更改啟動配置,刪除 Fedora 條目(嘗試過),反之亦然。這就是為什麼我希望兩個系統都有自己的引導程式和一個主引導程式(可以駐留在 /dev/sda2 上),該主引導程式載入其中之一。

這是我嘗試過的:

  • 將所有內容從 /dev/sda2 移至 /dev/sda3/boot
  • 刪除了 Fedora 中的 /boot 掛載點(因此 /dev/sda2 不再使用)
  • 從即時 Linux,將 GRUB2 安裝到 MBR (grub-install --boot-directory=sda2 /dev/sda)
  • 寫了一個menu.lst:
    • 標題軟呢帽
    • 根 (hd0,2)
    • 鍊式裝載機+1
    • (同樣,對於 Debian)
  • 將其轉換為 grub.cfg 腳本(grub-menu2cfg 或類似的東西)
  • 啟動時,實際上出現了帶有“Fedora”(和“Debian”)的 GRUB2 選單
  • 選擇其中任何一項時:
    • 錯誤:簽名無效
  • 從各種即時 Linux 系統發出“grub-install /dev/sda6”(和 ...sda3),所有這些都失敗並顯示另一個錯誤訊息(對於 Debian 安裝程序,根本沒有解釋)
  • 將 --force 新增至 chainloader 行,現在它顯示“正在載入”,然後重新啟動
  • 找到了幾十個指南,但似乎都不適合我

編輯
忘記了這個(相當廣泛的)問題。

AFAIR 我從另一個 Fedora 安裝中找到並複製了一些檔案以使引導程式正常工作。此外,我還創建了一個指向當前 Linux 映像的符號鏈接,並將其放入第一個/主 GRUB 配置中,因此它將始終啟動這個特定的核心。

我認為這個問題對於有類似問題的人來說沒有任何價值,所以它可能會被刪除。

答案1

我的外接 SSD 也有類似的問題。它只能從內部磁碟啟動。如果未連接外部磁碟,系統將無法啟動。

我剛剛找到了 bootinfoscript 並獲得了一些有趣的輸出(與此處發布無關) - 但至少它給出了一個線索,表明我的想法和 grub2 的想法完全不同。

也許該工具對您有幫助。

http://sourceforge.net/projects/bootinfoscript/

相關內容