Uefi
刪除了 Windows EFI 分區,怎麼辦?
我在雙引導系統中安裝了 Pop-Os。
以前,我的 efi 分區大約是 250mb。Pop Installer 告訴我它太小了。因此,我沒有調整大小和移動(由於數據失去和 Windows 無法啟動的可能性),而是刪除了舊的 efi 分區並創建了一個新的 efi 分區進行安裝。
輸出
efibootmgr
:BootCurrent: 0006 Timeout: 1 seconds BootOrder: 0006,0007,0002 Boot0002* Windows Boot Manager Boot0006* Pop!_OS 20.04 LTS Boot0007* UEFI OS
輸出
bootctl
:System: Firmware: UEFI 2.70 (American Megatrends 5.13) Secure Boot: disabled Setup Mode: user Current Boot Loader: Product: systemd-boot 245.4-4ubuntu3.6pop0~1617377648~20.04~eafddeb Features: ✓ Boot counting ✓ Menu timeout control ✓ One-shot menu timeout control ✓ Default entry control ✓ One-shot entry control ✓ Support for XBOOTLDR partition ✓ Support for passing random seed to OS ✓ Boot loader sets ESP partition information ESP: /dev/disk/by-partuuid/06919b6c-bed1-461e-9b6d-04dc9597fd38 File: └─/EFI/SYSTEMD/SYSTEMD-BOOTX64.EFI Random Seed: Passed to OS: yes System Token: set Exists: yes Available Boot Loaders on ESP: ESP: /boot/efi (/dev/disk/by-partuuid/06919b6c-bed1-461e-9b6d-04dc9597fd38) File: └─/EFI/systemd/systemd-bootx64.efi (systemd-boot 245.4-4ubuntu3.6pop0~1617377648~20.04~eafddeb) File: └─/EFI/BOOT/BOOTX64.EFI (systemd-boot 245.4-4ubuntu3.6pop0~1617377648~20.04~eafddeb) Boot Loaders Listed in EFI Variables: Title: Pop!_OS 20.04 LTS ID: 0x0006 Status: active, boot-order Partition: /dev/disk/by-partuuid/06919b6c-bed1-461e-9b6d-04dc9597fd38 File: └─/EFI/SYSTEMD/SYSTEMD-BOOTX64.EFI Title: UEFI OS ID: 0x0007 Status: active, boot-order Partition: /dev/disk/by-partuuid/06919b6c-bed1-461e-9b6d-04dc9597fd38 File: └─/EFI/BOOT/BOOTX64.EFI Boot Loader Entries: $BOOT: /boot/efi (/dev/disk/by-partuuid/06919b6c-bed1-461e-9b6d-04dc9597fd38) Default Boot Loader Entry: title: Pop!_OS id: Pop_OS-current.conf source: /boot/efi/loader/entries/Pop_OS-current.conf linux: /EFI/Pop_OS-39f0e06d-54c4-4fd3-af74-605fcd37bc55/vmlinuz.efi initrd: /EFI/Pop_OS-39f0e06d-54c4-4fd3-af74-605fcd37bc55/initrd.img options: root=UUID=39f0e06d-54c4-4fd3-af74-605fcd37bc55 ro quiet loglevel=0 systemd.show_status=false splash
EFI 變數中沒有 Windows。我將 systemd-boot 的超時時間增加到 5 秒,現在我看到Pop Os和Boot to System Firmware。
這個答案需要我刪除的 Windows EFI 分區。有沒有辦法在 systemd-boot 中獲取 Windows 條目?
Gparted(如果重要):
從askUbuntu 上的這個答案中,我使用TestDisk來恢復已刪除的 EFI 分區中的數據。
我從已刪除的 EFI 分區中複製了 Microsoft 文件夾,
/boot/efi/EFI
並將其複製到相同的目的地,但在新的 efi 分區中。瞧!Windows Boot Manger 出現在 systemd-boot 菜單中。
我最近遇到了一些類似的問題。如果您的 EFI 分區數據不可恢復,您可以引導至 Windows 安裝媒體、Windows 10 光碟或快閃記憶體驅動器,其中已閃爍Win 10 映像。啟動到安裝媒體後:
- 按
Shift
+F10
打開命令提示符,然後執行以下命令:diskpart
list disk
sel disk #
(將 # 替換為包含新 ESP/EFI 分區的磁碟號)list part
sel part #
(將 # 替換為 fat32 EFI 分區號)assign letter=s
list vol
記下已分配 Windows 作業系統的驅動器號。exit
bcdboot X:\windows /s s:
(用windows安裝對應的字母替換X)現在,您可以手動將 Windows 條目添加到**/boot/efi/loader/loader.conf**並添加超時以延遲啟動到預設作業系統並讓自己有時間在啟動期間進行選擇。
- 啟動到 Pop!_OS
- 打開終端
- 跑
sudo nano /boot/efi/loader/entries/windows.conf
- 將以下內容粘貼到文件中:
title Windows 10 efi /EFI/Microsoft/Boot/bootmgfw.efi #you may need to search for your bootmgfw.efi if it's not here
- 保存並退出
- 跑
sudo nano /boot/efi/loader/loader.conf
- 添加此行
timeout 20
(以秒為單位輸入任何值)- 添加此行以防止 Windows 的重複條目
auto-windows 0
- (可選)通過添加另一行並使用其標題
default "Windows 10"
或default "Pop!_OS"
- 保存並退出
完畢!