嘗試將 Ubuntu 15.10 安裝到 USB 上仍然會將 EFI 寫入主 HDD

嘗試將 Ubuntu 15.10 安裝到 USB 上仍然會將 EFI 寫入主 HDD

我有一台 Windows 10 PC,但我正在嘗試教我的孩子 C 編程,並嘗試將 Linux 安裝到可移動 USB 驅動器。

PC 設定:我有一台 i3,配備千兆位元組 z97x games 3 主機板。我的 SSD 上有 Windows 10,並且我將其設定為僅在 BIOS 中啟動 UEFI(安全啟動已關閉)。

我透過從BIOS(明確表示UEFI)中選擇它,在UEFI模式下完美地啟動了安裝程式USB,並在我的Linux筆記型電腦上的ubuntu發行版上使用dd創建了ubuntu安裝iso,在UEFI模式( F12啟動選單)中。那啟動沒問題。為了將其安裝在另一個 USB 上,我在安裝驅動器上運行了 install ubuntu 選單功能。然後在安裝者 USB 上設定我自己的分割區。我製作了一個 512mb efi 分區(主分區)、一個 27gb ext4 部分(主分區)和一個 4gb 交換部分(也是主分區)。

我選擇將引導程式安裝到/dev/sdc。它安裝得很好並重新啟動。

好吧……現在事情變得有點奇怪了。我不明白我在這裡做錯了什麼。

當我在 F12 引導選擇器中查看引導選項時,列出了 4 個選項。 Windows 啟動管理器、ubuntu、ubuntu(是的,其中 2 個)和 Samsung 32gb UEFI 啟動(USB 驅動器是三星的)。如果我選擇 Windows,它將啟動到 Windows。如果我選擇 Samsung 32GB UEFI,它仍然可以啟動到 Windows?但如果我選擇 ubuntu...它會啟動到 32GB USB 驅動器上的 ubuntu。

更令人沮喪的是,如果我拔出 USB 驅動器,三星 UEFI 啟動選項就會消失,但 ubuntu 選項仍然存在。當您在沒有 USB 驅動器的情況下單擊它們時,它會進入 grub 選單並且不會啟動。在BIOS中,這兩個ubuntu選項列在SSD驅動器下,這意味著即使我明確告訴它不要安裝在那裡,它仍然在上面安裝了grub?

幸運的是,如果選擇了 Windows 啟動管理器,Windows 仍會啟動,但這非常令人沮喪。為什麼它搞砸了?我去 Windows Repair 並使用 bootrec 並執行了 /FixMbr 和 /FixBoot,但 ubuntu 選項仍然存在。 Grub 似乎塞到了某個地方,但我不知道在哪裡! USB 隨身碟也無法在我的筆記型電腦上啟動(儘管安裝程式可以在 UEFI 模式下啟動)。

我不確定我做錯了什麼。我確保安裝時處於 UEFI 模式而不是 BIOS 模式,並且我從未選擇任何會觸及開機程式中的 /dev/sda 的內容,以免擾亂我的硬碟。

當安裝到 USB 隨身碟時,Fedora 23 可以正常安裝並以 UEFI 模式啟動。

非常感謝一些幫助!謝謝!

答案1

在 EFI 下安裝時,「用於引導程式安裝的裝置」選項(或任何名稱;我沒有檢查該詳細資料)將被忽略。我還沒有驗證它是否確實有效,但是還有另一種方法可以指定引導程式的位置:它是哪個分割區被標記為“EFI開機分割區”或“EFI系統分割區”(該術語因Ubuntu版本而異)在「其他」分區清單中。理論上,如果您在 USB 隨身碟上標記 ESP,並在硬碟上取消標記 ESP,則安裝程式應將 GRUB 2 放在 USB 隨身碟上。我還沒有測試過這是否真的有效,但它應該工作。

也就是說,您也遇到了另一個問題:您描述的用於從 USB 驅動器啟動的 EFI 啟動管理器條目確實不是啟動該EFI/ubuntu/shimx64.efi文件,這是 Ubuntu 儲存其第一個引導程式的位置。相反,該選項會啟動「後備」EFI 引導程式檔案EFI/BOOT/bootx64.efi.該檔案名稱用作可移動媒體的「通用」引導程式檔案名稱。這個想法是,作業系統安裝程式或其他外部媒體不可能有有效的 NVRAM 條目,因此需要一個標準化的引導程式位置來引導作業系統安裝程式、緊急磁碟等。任何基於x86-64 EFI 的電腦上啟動,您必須複製EFI/ubuntu並重EFI/BOOT命名EFI/BOOT/shimx64.efiEFI/BOOT/bootx64.efi. IIRC,您也必須留EFI/ubuntu在原處,因為一個或多個二進位檔案中有硬編碼路徑,因此兩個目錄都是需要的。

另一點:如果您打算僅在一台電腦上使用 USB 驅動器,則可以不將 GRUB 複製到EFI/BOOT;但是,如果某些 EFI 啟動並注意到某個條目無法訪問,則會清理其 NVRAM 條目。因此,如果您移除 USB 隨身碟並在​​未插入 USB 隨身碟的情況下啟動,您可能會遺失該ubuntu條目。僅出於這個原因,就需要將 GRUB 複製到備份檔名。

grub>當您嘗試在拔下 USB 驅動器的情況下啟動該選項時看到提示的原因ubuntu是 Ubuntu 的 GRUB 配置依賴於 ESP(在您的內部磁碟上)上的 GRUB 二進位檔案以及 Ubuntu/boot分割區(在 USB 磁碟機上)中的設定檔。因此,當拔掉 USB 隨身碟時,GRUB 會啟動,但無法讀取其設定文件,因此會嚴重失敗。

答案2

您在 grub 中遇到了一個已知錯誤 1173457,該錯誤始終安裝到主 EFI 而不是您指定的位置。然而,您也會對新的 UEFI 開機機制感到困惑——Ubuntu 開機載入程式(shim、grub)被放入 EFI 檔案系統的自己的目錄 /EFI/ubuntu 中,而不是覆寫任何 Windows 內容。簡單的解決方案是將主磁碟的 EFI 檔案系統複製到 USB,並選擇它作為第一個啟動裝置。另一個問題是 Ubuntu 的 grub 仍然無法在啟用安全啟動的情況下啟動 Windows,您需要使用 EFI 啟動功能表(開機時的某些功能鍵來選擇裝置/作業系統),或停用安全啟動。


請務必將自己添加到1173457 上的錯誤“列表”中(“這個錯誤是否影響我問題”)。 ”,所以也許這就是為什麼它從未被修復。

關於更新的好問題,但即使它們使用了錯誤的 ESP,舊版本仍然可以工作,所以你可能永遠不知道。

相關內容