我试图在我的机器上安装 ElementaryOS,但我不小心清除了我的引导分区。
我已经成功安装了 Elementary OS(0.6 Odin,尽管没关系)。现在,我的 grub 只显示 Elementary,我无法进入我的 Windows。
我已经尝试了以下过程(os-prober
没有做任何有用的事情):
运行parted -l
产生以下结果:
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 473MB 472MB ntfs Basic data partition hidden, diag
3 577MB 593MB 16.8MB Microsoft reserved partition msftres
4 593MB 157GB 157GB ntfs Basic data partition msftdata
5 157GB 158GB 541MB ntfs hidden, diag
2 158GB 158GB 294MB fat32 NO NAME boot, esp
6 158GB 250GB 91.9GB ext4 elementary OS
我知道这sda2
是我创建的新引导分区。sda4
是Windows 10的分区,sda5
是恢复分区?(我真的不确定)。
我试图通过将以下行添加到以下行来添加sda5
和添加到我的 GRUB :sda4
/etc/grub.d/40_custom
#!/bin/sh
exec tail -n +3 $0
menuentry "Windows 10 Recovery" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos4)'
search --no-floppy --fs-uuid --set=root EE92464E92461C09
chainloader +1
}
menuentry "Windows 10" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos4)'
search --no-floppy --fs-uuid --set=root 28981AAB981A7790
chainloader +1
}
使用后:
> sudo blkid /dev/sda4
/dev/sda4: UUID="28981AAB981A7790" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="09b51487-4e98-458a-9a50-0a4470e4f844"
> sudo blkid /dev/sda5
/dev/sda5: UUID="EE92464E92461C09" TYPE="ntfs" PARTUUID="6805dc0a-c750-4ef6-a06d-f41ad4ab3f2a"
当然,我跑了sudo update-grub
。
但是,尝试从这些新条目引导时出现错误:“无效的 EFI 文件路径” 。
此外,挂载新的引导分区并运行会ls
产生:
EFI
-> BOOT
-> ubuntu
意思是,我没有 Windows(和 Windows 恢复)启动项。
我真的不想再次重新安装我的 Windows 和 Elementary。但是,我不知道如何解决这个问题。
+1
要求“chainloader”命令加载分区的第一个扇区。但是您的计算机使用 EFI 固件——它不使用引导扇区,因此“+1”将毫无用处。相反,“chainloader”命令的参数必须是*.efi
包含引导加载程序的可执行文件的路径。Windows 始终将其引导加载程序安装在
\EFI\Microsoft\Boot\bootmgfw.efi
(相对于 EFI 系统分区的根目录,而不是主 Windows 分区,因此您也不应该使用“设置根目录”)。(“part_msdos”位也不正确,因为您的磁盘有一个 GPT 分区表。基本上整个自定义菜单项特定于 BIOS 系统,不适用于您的 EFI 机器。)
由于您已经删除了旧分区——从 Windows 安装 CD(或 USB 记忆棒)启动,按 Shift+F10 打开控制台窗口,然后使用
bcdboot c:\windows
命令重新安装 Windows 引导加载程序——它将复制所有必要的文件,重建“BCD”配置文件,并添加一个 EFI 启动项。(如果使用 Rufus 创建 Windows USB 记忆棒,请确保选择 UEFI 模式,因为它只会选择其中一种。)