![Grub 看不到外部磁碟機(Intel mac)](https://rvso.com/image/1416350/Grub%20%E7%9C%8B%E4%B8%8D%E5%88%B0%E5%A4%96%E9%83%A8%E7%A3%81%E7%A2%9F%E6%A9%9F%EF%BC%88Intel%20mac%EF%BC%89.png)
我有一台 Intel Mac (MacMini) 和外接 USB 隨身碟。在內部磁碟機上,我有一個安裝了 OSX 的分割區,還有一個安裝了 Ubuntu+Grub2 的分割區。在外部磁碟機上,我有完整 OSX 分割區的副本和完整 Ubuntu 分割區的副本(兩者的 UUID 均與原始分割區不同)。
我使用 rEFIt 進行雙啟動。內部 OSX 和 Linux 以及外部 OSX 出現在 rEFIt 選單中且是可引導的。我希望能夠啟動的外部 Linux 遺失了。建立 Linux 備份後,我在內部 Linux(它找到了所有 4 個安裝)和外部 Linux(透過 chroot - 它發現了除內部 Linux 之外的所有安裝)上執行了 update-grub。這並沒有解決問題。
當我嘗試使用內部 Grub 引導外部 Linux 時,收到錯誤訊息:
error: no such device: <the UUID of the external Linux partition>
error: no such partition.
error: you need to load the kernel first.
當我輸入ls
內部 Grub 選單時,它列出了內部磁碟機上的所有分割區,但(hd1)
完全遺失了。
我嘗試使用 同步外部磁碟機上的分割區表gptsync
,但它聲稱不存在 GPT。gdisk
然而確實找到了一個,並且與 的輸出進行手動比較fdisk
給我的印像是它們是同步的。 (Linux 分割區包含在兩個表中。)
編輯:
我將 rEFInd 刻錄到 CD 上並進行了實驗。結果:
當我按 C 鍵從 CD 啟動 Mac 時,它很快就會顯示 rEFInd 的灰色背景,但隨後立即從內部安裝啟動 grub。我可以透過從 rEFIt 中選擇 rEFInd 來解決此問題。然而,這讓我對在 OSX 中安裝 rEFInd 缺乏信心。
rEFInd 顯示它應該顯示的所有選項。正如預期的那樣,Grub 仍然無法從外部磁碟啟動 linux。
當我使用 rEFInd 從外部磁碟啟動 Linux 核心時,它確實啟動,但啟動後發現 INternal 分割區掛載為
/
.根據這文章中,複製分區後必須進行的唯一更改是在 grub 中。由於我沒有使用grub,所以我不明白。
答案1
您應該先了解本機 EFI 模式啟動與 BIOS/CSM/legacy 模式啟動之間的差異。基於 Intel 的 Mac 具有 EFI 韌體,且 OS X 以 EFI 模式啟動。此韌體包括一個 BIOS 模擬器(稱為相容性支援模組或 CSM;有時稱為「傳統模式」支援),使它們能夠啟動 BIOS 模式引導程式。 Apple 打算用它來啟動 Windows;但許多人也使用此 BIOS/CSM/legacy 支援來啟動其他作業系統,包括 Linux。不過,Linux 支援 EFI 模式啟動以及 BIOS 模式啟動,因此使用 Mac 的 CSM 通常是不必要的,甚至會變得複雜。 OTOH,在某些型號上,在 BIOS 模式下啟動時硬體在 Linux 中運作得比在 EFI 模式下啟動時更好。
在 Mac 上從外部媒體啟動是一個不確定的提議,尤其是在 BIOS/CSM/legacy 模式下。很可能這就是您遇到的問題。據我所知,在 BIOS 模式下沒有解決該問題的「靈丹妙藥」。最可能有效的解決方案是切換到 EFI 模式啟動。為此,我建議您從廢棄的 rEFIt 切換到我維護的它的分支,rEFInd。除此之外,rEFInd 增加了對使用 EFI 存根載入器直接啟動 Linux 核心的支援(其中包括自 3.3.0 以來大多數發行版提供的核心)。如果您從下載頁面上提供的 USB 隨身碟或 CD-R 映像啟動 rEFInd,它可能會從您的內部和外部磁碟機啟動 Linux(也可以從這兩個位置啟動 OS X)。如果有效,請安裝 rEFInd在 OS X 中並安裝適用於您的 Linux 核心的任何檔案系統(通常是 ext4fs)的驅動程式。結果應該是能夠繞過 GRUB 直接啟動任一作業系統。
如果這一切都有效,我建議刪除醜陋和危險的混合膜生物反應器,Apple 的 EFI 使用它作為啟動其 CSM 的觸發器。 (該gptsync
實用程式可建立或修改混合 MBR。)請閱讀該連結以了解混合 MBR 是什麼以及為什麼會出現這樣的問題。
編輯:
事實上,當您使用「C」直接啟動時,rEFInd CD-R 無法正常工作,但從rEFIt 啟動時卻可以正常工作,這一事實並不能說明rEFInd 安裝在硬碟或USB 隨身碟上時正確工作的可能性。不幸的是,在 EFI 中從光學媒體啟動相當複雜,蘋果似乎也陷入了困境。因此,以這種方式啟動可能有點冒險,特別是因為我(rEFInd 的開發人員)只有一台老式 Mac 來測試。從硬碟(或 USB 隨身碟)啟動的可能性更大。
根據您的描述,我懷疑您未能更新/etc/fstab
複製的檔案系統上的檔案。/etc/fstab
當按照程序進行更新時,需要更新以引用分割區的新 UUID。如果您碰巧有一個/boot/refind_linux.conf
文件,那麼它也必須更新。 (您可能沒有該文件,但如果您稍微超出了我的指示,或者您過去玩過 rEFInd,您可能沒有該文件。)