在我的计算机上,我有两个 ubuntu 分区和一个 windows 分区。一切都很好,直到我不得不增加其中一个 ubuntu 安装的 / 分区的大小。我基本上将 / 从 /dev/sda8 移动到 /dev/sda10(ubuntu wiki 上有关于如何执行此操作的指南)。
一切都很顺利,只是我失去了在 Windows 上启动的能力。grub 中仍然有 Windows 条目,但每当我单击它时,我都会被送回 grub 窗口。有什么帮助吗?
这是“bootinfoscript”的输出(不幸的是,我不太理解它)->http://pastebin.com/WNwvsXn5
提前感谢你的帮助!:)
答案1
这样做sudo update-grub
,如果不起作用,请从sudo nano /boot/grub/grub.cfg
终端手动编辑 grub.cfg。最后一个选项需要一些知识。
我建议你读一下本基本指南在进行任何改变之前。
总是记住每次更改后都要使用 update-grub,这非常重要。祝
您有美好的一天。
根据评论进行编辑:您应该在文件中找到“BEGIN /etc/grub.d/30_os-prober”字符串。应该有 Windows 条目。
验证那里的数据是否正确:(除了最后一行,它应该是这样的)
### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows NT/2000/XP (su /dev/sda2)' --class windows --class os $menuentry_id_option 'osprober-chain-C2F0E263F0E25D63' {
insmod part_msdos
insmod ntfs
set root='hd0,msdos2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2 C2F0E263F0E25D63
else
search --no-floppy --fs-uuid --set=root C2F0E263F0E25D63
fi
drivemap -s (hd0) ${root}
chainloader +1
}
### END /etc/grub.d/30_os-prober ###
不,你的数据似乎不正确(来自 pastebin):
menuentry 'Windows 7 (loader) (on /dev/sda2)' --class windows --class os $menuentry_id_option 'osprober-chain-909C7C3E9C7C20C0' {
insmod part_msdos
insmod ntfs
set root='hd0,msdos2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2 909C7C3E9C7C20C0
else
search --no-floppy --fs-uuid --set=root 909C7C3E9C7C20C0
fi
chainloader +1
}
...因为 Windows 应该在 sda3 上,而不是在 sda2 上!(请参阅 bootifoscript.txt 上的 sda3)
尝试使用这个特定的软件解决您的问题,在这种特定情况下,这应该是手动编辑 grub.cfg 的更好选择。
如果您仍未解决问题,请随时写下来。