如何在 UEFI 電腦上的外部磁碟機 (GPT) 上製作可攜式 Kubuntu?

如何在 UEFI 電腦上的外部磁碟機 (GPT) 上製作可攜式 Kubuntu?

問題:在外部 SSD 上安裝 Kubuntu 後(創見 ESD400 512Gb)在 UEFI 計算機上我無法在另一台計算機上使用它。我做了一些嘗試,但都沒有成功。

我的電腦:UEFI、Core i7 - 4 核心、Windows 7 Ultimate 64 位元、2 個帶有 GPT 的內部磁碟機、帶有 GPT 的外部 SSD。

Kubuntu 發行版:LiveUSB,使用 Universal USB Installer 1.9.5.4、Kubuntu 14.04 LTS 創建

外部 SSD 使用 GParted 進行分割區,分割區已對齊。

每次安裝後,SSD 都會被格式化並重新分割區。檢查了 GRUB:版本 2.02,EFI(不是 grub-pc)。


嘗試 1:插入內部驅動器。

我從 LiveUSB 啟動。執行常規安裝。我的分區表:

512Mb - EFI - fat32
30Gb - / - ext4
100Gb - /home - ext4
50Gb - /usr - ext4
50Gb - /opt - ext4

引導程式安裝在外部 SSD (/dev/sdc) 上。重新啟動後,我ubuntu在 UEFI 中發現了 2 個啟動項目。如果我的外部 SSD 已插入並且我選擇這 2 個條目中的每一個 - 一切正常:Kubuntu 啟動並工作。如果外部 SSD 關閉 - 會出現黑色畫面Minimal BASH-like line editing is supported。如果我選擇UEFI TS512...(帶有外部 SSD 標籤的引導條目),則下一個條目似乎可以工作(Windows Boot Manager)。

嘗試 2:拔下內部驅動器。

安裝過程是相同的。重新啟動後系統啟動並工作。但是,插入內部驅動器後,從外部(ubuntuUEFI TS512...條目)啟動時,會出現帶有閃爍文字遊標的黑屏,並且沒有任何內容想要啟動。如果我選擇Windows Boot ManagerWindows 啟動良好。

嘗試3:嘗試修改efi檔。

grubx64.efi從複製/dev/sda1dev/sdc1並重新命名為bootx64.efi。沒有什麼新內容 - 它會沿著條目列表向下移動,直到Windows Boot Manager

嘗試4:嘗試修改grub.cfgfstab

/boot/grub/grub.cfg全部替換hd2hd0.並且fstab我更改了EFI分割區的UUID:之前它指向/dev/sda1,現在它指向/dev/sdc1


那麼我如何在外部 SSD 上製作一個便攜式系統,可以在每台 UEFI 電腦上啟動,但不僅在我的電腦上啟動?

答案1

您的問題是EFI 開機程序將資料儲存在NVRAM 中引導程式的位置,因此當您在一台電腦上安裝然後將磁碟移至另一台電腦時,第二台電腦不知道在哪裡尋找開機載入程式.解決此問題的常用方法是EFI/BOOT/bootx64.efi在 EFI 系統分割區(ESP;即 FAT32 分割區)上使用預設/後備開機載入程式檔案名稱。韌體在可移動磁碟上尋找該檔案名稱。需要注意的是,您可能需要使用韌體的內建啟動管理器來選擇該磁碟,並且如何存取該啟動管理器的詳細資訊因電腦而異。

您可以手動將引導程式複製到該位置。在正常運作的 Ubuntu 安裝中,最有可能的工作方式是:

cd /boot/efi/EFI
sudo mkdir -p BOOT
sudo cp ubuntu/shimx64.efi BOOT/bootx64.efi
sudo cp ubuntu/grubx64.efi BOOT/grubx64.efi

請注意,這些命令將覆蓋任何現有的EFI/BOOT/bootx64.efi引導程式。您的外部磁碟上現在可能沒有,但您可能需要仔細檢查這一點。另外,這假設 ESP 上外部的磁碟安裝在/boot/efidf在繼續之前,您絕對應該仔細檢查一下。您不想覆蓋您的引導程式內部的意外盤!

如果您確定將在停用安全啟動的情況下啟動,則可以複製EFI/ubuntu/grubx64.efiEFI/BOOT/bootx64.efi,但如果目標電腦啟用了安全啟動,則該方法將無法運作。

相關內容