Windows 安装在第二个分区,如何将其添加到启动菜单?

Windows 安装在第二个分区,如何将其添加到启动菜单?

我目前正在使用 Debian 6.0.6 Squeeze,我是在 Windows XP 上安装它的。

它只是一个硬盘,我先在上面安装了 Windows XP,然后用一些 Windows 工具创建了分区,后来又在上面安装了 Debian

现在,我可以轻松启动 Debian,但没有 Windows 的迹象。我尝试了网上推荐的几种方法,但仍然无法正常工作

我试过os-prober,试过编辑grub.cfg(我设法将 Windows XP 添加到菜单,但这只是空链接,当我输入时什么都没有发生(空白屏幕),它应该链接到哪里?)


fdisk -l 之后也是如此:

Disk /dev/sda: 40.0 GB, 40020664320 bytes
255 heads, 63 sectors/track, 4865 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c0014

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               2        4663    37447484+   f  W95 Ext'd (LBA)
/dev/sda2            4664        4864     1614532+  82  Linux swap / Solaris
/dev/sda5               2        2032    16313976    7  HPFS/NTFS
/dev/sda6            2033        4663    21133476   83  Linux

更新 grub

Generating grub.cfg ...
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Found linux image: /boot/vmlinuz-2.6.32-5-686
Found initrd image: /boot/initrd.img-2.6.32-5-686
done

答案1

从我收集到的上一个答案来看,您可能正在使用 grub2。手动添加菜单项的正确方法是通过目录/etc/grub.d/

创建一个文件01_windows_xp(根据您想要的顺序更改数字,linux 得到了10_)并向其中添加以下内容:

echo "Adding Windows XP to the Menu..."
cat << EOF
menuentry "Windows XP"
        set root=(hd0,5)
        chainloader +1
}
EOF

然后重新运行update-grub。之后您可以查看生成的文件/boot/grub/grub.cfg。这样,新的菜单项将在内核更新后继续存在,其中 update-grub 将自动运行。

答案2

假设您没有覆盖 Windows 安装(您说您“覆盖”了 Windows XP?),以下命令应该足够了。如果没有,请使用它们的输出更新您的问题:

sudo update-grub
Sudo grub-install /dev/sda

答案3

使用您喜欢的文本编辑器和 sudo 编辑您的 /boot/grub/menu.lst。添加以下行:

title Microsoft Windows XP
root (hd0,5)
chainloader +1

跑步:

sudo update-grub
sudo grub-install /dev/sda

重启并完成

如果使用 grub2:

配置文件位于此处:

/boot/grub/grub.cfg

添加的行应该是:

menuentry "Microsoft Windows XP" {
set root=(hd0,5)
chainloader +1
}

跑步:

sudo update-grub
sudo grub-install /dev/sda

相关内容