我刚刚在磁盘的第一个分区上安装了 Windows 11,其分区如下:
# fdisk /dev/sdb -l
Disk /dev/sdb: 465.76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: Samsung SSD 860
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x1967ba67
Device Boot Start End Sectors Size Id Type
/dev/sdb1 * 2048 273092607 273090560 130.2G 7 HPFS/NTFS/exFAT
/dev/sdb2 273092608 274454527 1361920 665M 27 Hidden NTFS WinRE
/dev/sdb3 274456576 276553727 2097152 1G 82 Linux swap / Solaris
/dev/sdb4 276553728 976772477 700218750 333.9G 83 Linux
可以看到,Ubuntu 18.04 已经安装在/dev/sdb3
和 上/dev/sdb4
。
之前安装的是 Windows 10,而不是 Windows 11。
问题是安装grub2
在磁盘上的Windows 11 安装中断了/dev/sdb
,现在我想重新安装它。我试过这样做:
# sudo grub-install --recheck --no-floppy --root-directory=/ /dev/sdb
但它给出了这个错误:
Installing for x86_64-efi platform.
grub-install: error: cannot find EFI directory.
我认为这是一个错误,因为它检测到 EFI 分区,但实际上并不存在。磁盘已使用 MBR 格式化,并且是 DOS 样式,我已使用 RUFUS 以 MBR 方法安装了 Windows 11。甚至 /dev/sda 也不是 EFI 样式:
# fdisk /dev/sda -l
Disk /dev/sda: 465.76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: CT500MX500SSD4
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xa6e39599
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 976767672 976765625 465.8G 83 Linux
重新安装的正确步骤是什么grub2
?
答案1
我已在“试用”模式下使用了 ubuntu 21.04,并安装了 Boot-Repair。我已选择在 /dev/sdb 上重新安装 grub2,并且它正确执行了所有必要的步骤。重新启动后,我能够启动安装在 /dev/sdb4 上的 ubuntu 18.04
答案2
使用 --target=i386-pc 标志。
来源:https://wiki.archlinux.org/title/GRUB#Master_Boot_Record_(MBR)_specific_instructions