%20%E4%B8%8A%E8%A3%BD%E4%BD%9C%E5%8F%AF%E6%94%9C%E5%BC%8F%20Kubuntu%EF%BC%9F.png)
問題:在外部 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:拔下內部驅動器。
安裝過程是相同的。重新啟動後系統啟動並工作。但是,插入內部驅動器後,從外部(ubuntu
和UEFI TS512...
條目)啟動時,會出現帶有閃爍文字遊標的黑屏,並且沒有任何內容想要啟動。如果我選擇Windows Boot Manager
Windows 啟動良好。
嘗試3:嘗試修改efi檔。
grubx64.efi
從複製/dev/sda1
到dev/sdc1
並重新命名為bootx64.efi
。沒有什麼新內容 - 它會沿著條目列表向下移動,直到Windows Boot Manager
。
嘗試4:嘗試修改grub.cfg
和fstab
。
/boot/grub/grub.cfg
全部替換hd2
為hd0
.並且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/efi
。df
在繼續之前,您絕對應該仔細檢查一下。您不想覆蓋您的引導程式內部的意外盤!
如果您確定將在停用安全啟動的情況下啟動,則可以複製EFI/ubuntu/grubx64.efi
到EFI/BOOT/bootx64.efi
,但如果目標電腦啟用了安全啟動,則該方法將無法運作。