我有一台带有两个磁盘的笔记本电脑。第一张磁盘上安装了 Windows 7,第二张磁盘上安装了 Ubuntu 14.04。Grub 安装在第二张磁盘上。一切都很好,但升级到 Windows 10(这迫使我将第一张磁盘设置为默认启动磁盘)后,grub 无法加载 Windows。现在,当我启动笔记本电脑时,它会自动启动 Windows 10。当我想使用 Ubuntu 时,我必须按 F9 并在第二块驱动器上手动启动。如果我将第二块驱动器设置为默认启动磁盘,grub 会在启动时加载。如果我选择 Ubuntu,它可以正常启动,但如果我选择 Windows,它就无法启动。错误消息说 windows\system32\winload.exe 已被修改或硬件发生了变化。有什么帮助可以让双启动正常工作吗?
答案1
您可以尝试将第二个磁盘设置为默认启动,启动进入 Ubuntu 并执行以下操作:
- 打开终端并运行:
sudo nano /etc/grub.d/40_custom
它将打开一个带有一些代码的文本编辑器。转到文件末尾并添加以下几行:
menuentry Windows 10 (disk 1) {
set root=(hd0,msdos1)
chainloader +1
boot
}
按 Ctrl+O,然后按 ENTER。按 Ctrl+X。现在运行:
sudo update-grub
然后重新启动。确保第二个硬盘具有启动优先级。当 GRUB 出现时,选择“Windows 10(磁盘 1)”并按 ENTER。
答案2
谢谢您的回答。
我尝试了您的建议,但发现缺少 NTLDR。这是我在工作 Windows 条目中找到的代码。希望这对其他人有所帮助。谢谢。
insmod part_msdos
insmod ntfs
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 FEDE89B6DE8967AB
else
search --no-floppy --fs-uuid --set=root FEDE89B6DE8967AB
fi
parttool ${root} hidden-
drivemap -s (hd0) ${root}
chainloader +1