Arch-Linux

不同的 EFI 和 Windows 雙引導

  • October 14, 2018

我有一個 4 磁碟設置:

  • 240GB NVMe SSD ( /dev/sdd)
  • 120GB SATA3 固態硬碟 ( /dev/sdc)
  • 2TB硬碟
  • 3TB 硬碟

我安裝/dev/sdd了 240GB NVMe SSD 的 Windows。安裝 Arch 幾次後,我終於讓它工作並啟動,發現我創建了兩個EFI 分區:一個在/dev/sdc1(120GB SSD)上,另一個(Windows 在安裝過程中創建)在/dev/sdd1(NVMe)上。

現在我想將 GRUB 從 Sata SSD 上的 500MiB EFI 移動到 NVMe 驅動器,我成功完成了,但是 Windows 無法辨識並且執行ls /EFI/EFI/Microsoft/boot我得到文件或目錄不正確,可能是因為ls /EFI/EFI報告沒有 Microsoft 文件夾,這可能是由於 Arch 正在 /EFI 中安裝/引導 Sata SSD 中的 EFI 分區引起的,儘管我在啟動時從引導菜單中的 WD240G(NVMe 驅動器)上安裝的 GRUB 引導。

因此,Arch 確實通過 GRUB 工作,Windows 確實可以選擇他自己的引導管理器,但是 GRUB 不引導 Windows,並且 Arch 在他的 EFI 中沒有 Windows 文件夾或文件,現在應該與 Windows EFI 相同,但似乎不是,儘管我表演了:

  1. umount /EFI
  2. mount /dev/sdd1 /EFI
  3. grub-install --target=x86_64-efi --efi-directory=esp --bootloader-id=GRUB
  4. grub-mkconfig -o /boot/grub/grub.cfg
  • 為什麼我仍然無法從 Windows EFI GRUB 引導 Windows?
  • 為什麼 Arch 在其 EFI 中看不到 Windows?
  • 我是否必須格式化/刪除/dev/sdc1在 Arch 安裝期間創建的 EFI 分區,或者我是否必須在我知道如何執行此操作後以正確的設置重新安裝 Arch 最後一次安裝/dev/sdd1而不是/dev/sdc1in /EFI

如果兩個磁碟上都有作業系統,則不要合併 EFI 系統分區,只需將它們分開即可。這也使兩個磁碟都可以獨立啟動。

您想要的是讓 GRUB 檢測其他磁碟上的作業系統。為此,請安裝os-prober軟體包並重新執行grub-mkconfig.

您還可以保留現有的 UEFI 菜單條目,這樣您就可以隨時單獨啟動它們(如果您選擇的話)。

在 Arch 中以 root 身份執行“efibootmgr -v”。輸出描述了儲存在系統 NVRAM 中的引導資訊。請注意,它使用每個 GPT 樣式分區唯一的 UUID 標識每個已安裝的引導載入程序應該載入的分區。

在您更改此資訊之前,UEFI 韌體仍將在/dev/sdc磁碟的 ESP 分區上查找 GRUB。只需將一個 ESP 分區的內容添加到另一個分區不會改變任何內容。

閱讀efibootmgr手冊頁以了解如何更改 NVRAM 引導設置。efibootmgr -v如果您需要更多幫助來確定必要的efibootmgr命令,或者發布輸出。

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