我弄乱了 EFI 分区,现在当我启动计算机时,它会打开 BIOS 界面而没有任何启动选项,就好像我的磁盘已被擦除一样。但是,使用实时 USB(正确识别和启动)和 grub 命令行,我能够启动我的主要操作系统(Ubuntu)。但是我不知道如何解决这个问题。我尝试运行 grub-install /dev/sda,但它没有改变任何东西。
EFI 分区看起来完全没问题:它有正确的标志(esp,boot)并且里面有所有正确的文件。
tree /boot/efi/
└── EFI
├── Boot
│ └── bootx64.efi
├── Microsoft
│ ├── Boot
│ .....
└── ubuntu
├── fbx64.efi
├── fw
├── fwupx64.efi
├── grub.cfg
├── grubx64.efi
├── mmx64.efi
└── shimx64.efi
我应该检查什么?我遗漏了什么?
这是我的分区表:
parted /dev/sda print
Model: ATA Crucial_CT525MX3 (scsi)
Disk /dev/sda: 525GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 1612MB 1611MB fat32 EFI System Partition boot, esp
2 1612MB 87.9GB 86.3GB ext4 Ubuntu
3 87.9GB 281GB 193GB ext4 Home
5 290GB 290GB 16.8MB Microsoft reserved partition msftres
6 290GB 405GB 115GB ntfs Basic data partition msftdata
8 405GB 500GB 94.4GB ntfs Data msftdata
9 500GB 525GB 25.3GB ext4 Backup OS
如您所见,EFI 分区已正确设置:
~# efibootmgr
BootCurrent: 0006
Timeout: 2 seconds
BootOrder: 0006,0002,0003,0001,0000,0005
Boot0000* ubuntu
Boot0001* Windows Boot Manager
Boot0002* grub
Boot0003* Windows Boot Manager
Boot0005* GRUB
Boot0006* UEFI: SA04G PMAP
答案1
查看分区号似乎首先安装了 Ubuntu,占据了前几个分区(包括 ESP),然后安装了 Windows(MS 保留的是分区 5)。
如果您有 Windows 安装/恢复 USB/DVD,请尝试使用以下方法修复启动:
bcdboot N:\windows /s M: /f UEFI
其中 N:是 Windows 分区,M:是 ESP(使用 diskpart.exe 根据需要分配驱动器号) - 示例中的驱动器号仅用于示例,执行命令时使用您映射的驱动器号。
如果命令成功完成,Windows 将默认启动。最终会出现一条错误消息,告诉您 ESP 出了什么问题。