如何让 grub2 启动进入 Windows 7?

如何让 grub2 启动进入 Windows 7?

我的系统上安装了 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

相关内容