Dual-Boot

UEFI 的雙啟動問題

  • May 26, 2020

我敢肯定這個問題在這裡被問了很多,但我似乎找不到對我有用的答案/解決方案。

我在三星 850 SSD 上安裝了 Windows 10,在三星 750 SSD 上安裝了 Linux mint 19.3。正如一些解決方案所說,我已將 BIOS 中的 SATA 配置設置為 AHCI。

當我將 BIOS 設置為“僅 UEFI”或“UEFI 和舊版”時,無論啟動優先級如何,它都會啟動到 Windows。如果我將 BIOS 設置為“僅限傳統”,那麼無論啟動優先級如何,它都會啟動到 Linux,甚至無法辨識 grub 中任何位置的 Windows 驅動器。

在這個新主機板(Asus TUF GAMING X570-PLUS)之前,我曾經使用 EasyBCD 來管理對我有用的雙啟動。如果我出於我的目的使用它或 grub,我不會大驚小怪。我想要的只是 Windows 在它啟動時成為預設選項,顯然 linux 作為一個選項。

在過去的一天裡,我一直在嘗試尋找與我相似的所有可能情況。

解決方案

我會放棄 Ubuntu 的傳統引導。EFI 設計為並排有多個引導載入程序。您可以做的最簡單的事情是將 grub 安裝到 Windows 驅動器上的 EFI 分區中,然後啟動“僅 UEFI”。

去做這個:

  1. 啟動到 Linux
  2. 找到您的 EFI 分區。你可以用它sudo blkid來找到合適的。我的是/dev/sdb2
  3. 將您的 EFI 目錄掛載到/boot/efi,如有必要,請創建該目錄
sudo mkdir /boot/efi
# replace /dev/sdb2 with your EFI partition
sudo mount /dev/sdb2 /boot/efi   
  1. 安裝 grub-efi。我假設這是一個標準的 64 位 Intel CPU
sudo apt-get install grub-efi-amd64
  1. 將 grub 安裝到您的 EFI 分區。
sudo grub-install /dev/sdb2
  1. *可選:*您可能需要準確地告訴您的 BIOS 在哪裡查找 EFI 文件。您可能需要進入 BIOS 設置以手動添加它。根據記憶,mint 使用與 ubuntu 相同的設置,因此 Grub 應該將其寫入EFI/ubuntu/grubx64.efi. 但是您可能想通過以下方式進行檢查:
sudo ls -lh /boot/efi/EFI/ubuntu/
  1. 一旦你用 UEFI 整齊地設置了所有東西,你應該會發現它update-grub可以檢測到 Windows 引導載入程序。這應該為您提供啟動 Windows 的菜單選項。所以重新啟動到 Linux 並呼叫:
sudo update-grub 

討論

BIOS 行為非常棘手,因為有很多不同的 BIOS 具有完全不同的啟動邏輯實現。

您說您的舊磁碟在 UEFI + Legacy 中不顯示,但僅在 Legacy 中顯示。我相信對於您的 BIOSUEFI + Legacy可能會被解釋為“UEFILegacy”而不是“UEFILegacy”。

像這樣的多磁碟設置出現問題並不少見。與ron 的回答相反,與單個磁碟相比,我遇到的多磁碟引導問題更多。在“僅限傳統”時代,多磁碟是一個很大的優勢。但是由於 UEFI,它可能會導致問題。例如,當您有多個 EFI 分區分佈在多個磁碟上時,某些 BIOS 無法辨識它……他們找到第一個 EFI 分區並停止查找。

UEFI 旨在讓您可以並排擁有多個引導載入程序。由於您已經擁有適用於 Windows 的 EFI,因此將 Grub 安裝在旁邊是有意義的。

引用自:https://unix.stackexchange.com/questions/589083