Debian grub2 更新删除了 Windows 启动选项

Debian grub2 更新删除了 Windows 启动选项

自从我将 grub 更新到 grub 2 后,我就不再有启动 Windows 的选项了(不幸的是,这对于我工作时需要使用的专有 MSIE 浏览器插件有时是必要的)。

相关/boot/grub/menu.lst部分:

### END DEBIAN AUTOMAGIC KERNELS LIST

# This is a divider, added to separate the menu items below from the Debian
# ones.
title           Other operating systems:
root


# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/hda1
title           Windows NT/2000/XP
root            (hd0,0)
savedefault
makeactive
chainloader     +1

然而,这种情况不再出现。我确实有一些条目,/boot/grub/grub.cfg如:

menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-amd64' --class debian --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod ext2
        set root='(hd1,msdos1)'
        search --no-floppy --fs-uuid --set e638c434-4884-412f-a141-2c194f881fae
        echo    'Loading Linux 2.6.32-5-amd64 ...'
        linux   /boot/vmlinuz-2.6.32-5-amd64 root=UUID=e638c434-4884-412f-a141-2c194f881fae ro  quiet
        echo    'Loading initial ramdisk ...'
        initrd  /boot/initrd.img-2.6.32-5-amd64
}

我是否必须更改该文件?如果是,Windows 启动的正确语法是什么?如果不是,可能是什么问题?

答案1

这是基于 Ubuntu 的,但它也适用于 Debian 的 grub2 包:

/boot/grub/grub.cfg每次运行时/usr/sbin/update-grub2或在内核更新后调用时都会被覆盖。 grub2 应该已经自动检测到 windows 安装/etc/grub.d/30_os-prober并通过它添加到启动菜单中。但是应该在/etc/grub.d/40_custom

更新:

您可以尝试通过添加以下内容手动添加 Windows Loader /etc/grub.d/40_custom

menuentry "Windows on /dev/hda1" {
insmod ntfs
set root='(hd0,1)'
search --no-floppy --fs-uuid --set YOURUUID
chainloader +1
}

“YOURUID”是唯一唯一标识符您的 Windows 分区。您可以通过执行 来获取它ls -l /dev/disk/by-uuid/ | grep hda1。编辑文件后,执行“sudo update-grub2”以生成新的 grub.cfg。

这取决于os-prober,可能未安装,在这种情况下请执行以下操作:

sudo apt-get install os-prober

...然后再次运行sudo update-grub2

答案2

Wrikken 的解决方案对我也很有用。我正在以易于遵循的指示重复它。

步骤1

sudo apt-get install os-prober

可以使用以下方法测试:

sudo os-prober

对我来说,其输出如下:

/dev/sda1:Microsoft Windows XP Professional:Windows:chain

第2步

sudo update-grub2

相关内容