我有一台運行 Linux Mint 的筆記型電腦,並決定嘗試 Ubuntu 17.10。我想絕對安全,所以卸下了我的 HDD(實際上是 SSD,但應該無關緊要)並用備用硬碟(我不再使用的舊硬碟)替換它。我在備用驅動器上安裝了 Ubuntu 17.10,它運作良好,但我想稍後遷移到它,因為這是一個較長的過程。
所以暫時我想回到我的舊 Linux Mint,這應該很容易,因為原始磁碟完好無損。然而,在換回磁碟後,我非常驚訝地發現它無法啟動。 BIOS 為我提供了一個啟動設備選擇器選單,其中包含四個條目:
- [我的硬碟型號]
- 德班
- 烏班圖
- Linux薄荷
這些都不起作用(沒有錯誤訊息,只是返回到同一個清單)。從 USB 磁碟啟動 Live CD 映像我可以確認我的原始磁碟工作正常。我無法理解當我的系統磁碟在安裝過程中從筆記型電腦上實體移除時,安裝 Ubuntu 會導致我的原始系統無法啟動。我也沒有修改任何 BIOS 設定。
我唯一的猜測是它與 EFI/UEFI 有關,我一直認為這是黑魔法,但並不真正理解。我相信 BIOS 開機裝置選擇器中的作業系統名稱來自 UEFI,並且它列出了 Ubuntu 的事實表明安裝 Ubuntu 可能對某些 BIOS 狀態產生了一些影響...?
有人可以向我解釋這個謎團以及我該如何解決它嗎?謝謝!
答案1
經過大量調查,我終於弄清楚了。本文描述了 UEFI 使用 NVRAM 來儲存某些狀態,正如我所懷疑的那樣。我還發現可以使用 efibootmgr 命令與此狀態互動。
使用該命令,efibootmgr -v
我可以看到名為 ubuntu 的條目指向 Ubuntu 17.10 EFI 磁碟,而名為 linuxmint 的條目指向一個不存在的磁碟。從本文我了解到「Linux Mint 使用名為 ubuntu 的 EFI 啟動目錄,這顯然與 Ubuntu 本身使用的目錄衝突」。因此,名為linuxmint 的條目是一個紅色鯡魚,Ubuntu 和Linux Mint 都使用名為ubuntu 的條目,並且由於該列表存儲在計算機本身中,因此Ubuntu 覆蓋了Linux Mint 的條目,即使Linux Mint 開機驅動器正在運行過程中被刪除了。
解決方案是使用引用正確 EFI 分割區的 efibootmgr 將新條目新增至清單。
UEFI 的這種行為是瘋狂的。 HDD 應該能夠完全封裝可啟動作業系統。 UEFI 不再是這種情況,您還必須在電腦的 UEFI NVRAM 中進行一些調整。您不能再在電腦之間自由交換啟動磁碟。