我的系统上安装了 Windows 7,然后安装了 Debian 测试版,并使用 grub2 作为其启动管理器。最初,我在 grub 中根本看不到 windows 条目,因此我运行了:
aptitude install os-prober kcpuload
update-grub
现在我可以看到条目了,但是当我选择它时,我只得到了 Win7 系统还原,而不是真正的系统还原。有什么想法可以让它工作吗?
编辑:我尝试了建议的方法,将一个新文件添加到 /etc/grub.d,这会在 grub.cfg 中生成一个条目,但是它没有在启动时出现在 grub 菜单中 :(
我有这个:
grzes:/home/ga# cat /etc/grub.d/11_Windows
#! /bin/sh -e
echo Adding Windows >&2
cat << EOF
menuentry “Windows 7″ {
set root=(hd0,2)
chainloader +1
}
我有以下 grub.cfg 文件:
grzes:/home/ga# cat /boot/grub/grub.cfg
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
load_env
fi
set default="0"
if [ ${prev_saved_entry} ]; then
set saved_entry=${prev_saved_entry}
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z ${boot_once} ]; then
saved_entry=${chosen}
save_env saved_entry
fi
}
insmod ext2
set root=(hd0,3)
search --no-floppy --fs-uuid --set 6ce3ff31-0ef7-41df-a6f5-b6b886db3a94
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=640x480
insmod gfxterm
insmod vbe
if terminal_output gfxterm ; then true ; else
# For backward compatibility with versions of terminal.mod that don't
# understand terminal_output
terminal gfxterm
fi
fi
set locale_dir=/boot/grub/locale
set lang=en
insmod gettext
set timeout=5
### END /etc/grub.d/00_header ###
答案1
首先,您需要检查配置。它在 theee... thee... /etc/grub.d/
? /etc/grub/
?.. 某处。配置文件名如下所示:00xy、10linux、20other ... 这些只是示例,但实际内容几乎相同。检查它们,Windows 版本在哪里。备份它(将其复制到某处)。您需要将类似以下内容放入文件中:
menuentry "Windows" {
set root=(hd0,3)
chainloader +1
}
如果您没有这样的配置文件,只需创建一个。Grub2 的配置读取很容易理解。它是逐步进行的。例如:00*、10*、20* 等。因此,如果您希望新文件成为最后一个条目,则应将其命名为 95-windowsfix;如果您希望新文件成为第一个条目,则应为其指定一个比 Linux 配置中更小的数字(使其成为第一个条目)。)
在“其他”配置文件中。当然要修改设置的根值。通过键入以下内容确定硬盘:sudo fdisk -l
。例如,/dev/sda1
如果(hd0,0)
它在第二个硬盘上HDD: /dev/sdb1 >> (hd1,0)
,则为 ..等等。我想您可以从中理解语法。进行修改后,执行一个update-grub
,然后您可以尝试启动它。
我知道这看起来乱糟糟的。抱歉。我身边没有安装 Grub2 的 Ubuntu 机器,所以我写了这么多“我猜”。如果你无法让它工作,请直接询问。
答案2
尝试这个:
grub-mkconfig -o /boot/grub/grub.cfg