Windows 7 无法从 GRUB 启动

Windows 7 无法从 GRUB 启动

我正在尝试设置一台双启动 Windows 7 和 Ubuntu 的机器。首先安装了 Windows 7,一切似乎都很好。安装了 Ubuntu 10.04(以避免默认安装 unity,很多人跟我提到这很烦人)。

现在,当从 grub 菜单中选择 Windows 7 时,它只是空白屏幕并返回到 grub 菜单。

以下是启动信息脚本的结果。尝试运行 testdisk,并让其检查 Windows 启动扇区;它表示启动扇区和备份启动扇区均正常且相互匹配。

但是如果 Windows 启动扇区没有问题,为什么通常的“chainloader +1”方法不起作用呢?

也尝试过在论坛上查找类似的问题,但他们似乎大多是那些不小心将 grub 安装到 windows 分区而不是 MBR 的人——根据 bootinfo 脚本结果,我们在这里没有犯这个特定的错误。

                  Boot Info Script 0.60    from 17 May 2011


============================= Boot Info Summary: ===============================

 => Grub2 (v1.97-1.98) is installed in the MBR of /dev/sda and looks at sector 
    1 of the same hard drive for core.img. core.img is at this location and 
    looks in partition 2 for /boot/grub.
 => No boot loader is installed in the MBR of /dev/sdb.

sda1: __________________________________________________________________________

    File system:       Extended Partition
    Boot sector type:  Windows Vista/7
    Boot sector info:  

sda5: __________________________________________________________________________

    File system:       vfat
    Boot sector type:  FAT32
    Boot sector info:   According to the info in the boot sector, sda5 starts 
                       at sector 0. But according to the info from fdisk, 
                       sda5 starts at sector 126.
    Operating System:  
    Boot files:        

sda2: __________________________________________________________________________

    File system:       ext2
    Boot sector type:  -
    Boot sector info:  
    Operating System:  Ubuntu 10.04.3 LTS
    Boot files:        /boot/grub/grub.cfg /etc/fstab /boot/grub/core.img

sda3: __________________________________________________________________________

    File system:       ntfs
    Boot sector type:  Windows Vista/7
    Boot sector info:   No errors found in the Boot Parameter Block.
    Operating System:  Windows 7
    Boot files:        /bootmgr /Boot/BCD /Windows/System32/winload.exe

sdb1: __________________________________________________________________________

    File system:       vfat
    Boot sector type:  FAT32
    Boot sector info:   According to the info in the boot sector, sdb1 starts 
                       at sector 0. But according to the info from fdisk, 
                       sdb1 starts at sector 63.
    Operating System:  
    Boot files:        

============================ Drive/Partition Info: =============================

Drive: sda _____________________________________________________________________

Disk /dev/sda: 300.1 GB, 300069052416 bytes
255 heads, 63 sectors/track, 36481 cylinders, total 586072368 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes

Partition  Boot  Start Sector    End Sector  # of Sectors  Id System

/dev/sda1                  63   217,439,774   217,439,712   5 Extended
/dev/sda5                 126   217,439,774   217,439,649   b W95 FAT32
/dev/sda2         217,439,775   401,753,519   184,313,745  83 Linux
/dev/sda3    *    401,753,520   586,067,264   184,313,745   7 NTFS / exFAT / HPFS


Drive: sdb _____________________________________________________________________

Disk /dev/sdb: 41.2 GB, 41174138880 bytes
255 heads, 63 sectors/track, 5005 cylinders, total 80418240 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes

Partition  Boot  Start Sector    End Sector  # of Sectors  Id System

/dev/sdb1                  63    80,405,324    80,405,262   b W95 FAT32


"blkid" output: ________________________________________________________________

Device           UUID                                   TYPE       LABEL

/dev/sda2        626bd315-3ecc-4724-96a4-39f00b5f6331   ext2       L
/dev/sda3        457351F40CFFDE49                       ntfs       C
/dev/sda5        7ED4-1FA1                              vfat       Data
/dev/sdb1        001A-9858                              vfat       Internal 40

================================ Mount points: =================================

Device           Mount_Point              Type       Options

/dev/sda2        /                        ext2       (rw,errors=remount-ro)


=========================== sda2/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
}

function recordfail {
  set recordfail=1
  if [ -n ${have_grubenv} ]; then if [ -z ${boot_once} ]; then save_env recordfail; fi; fi
}
insmod ext2
set root='(hd0,2)'
search --no-floppy --fs-uuid --set 626bd315-3ecc-4724-96a4-39f00b5f6331
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
insmod ext2
set root='(hd0,2)'
search --no-floppy --fs-uuid --set 626bd315-3ecc-4724-96a4-39f00b5f6331
set locale_dir=($root)/boot/grub/locale
set lang=en
insmod gettext
if [ ${recordfail} = 1 ]; then
  set timeout=-1
else
  set timeout=10
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Ubuntu, with Linux 2.6.32-38-generic-pae' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod ext2
    set root='(hd0,2)'
    search --no-floppy --fs-uuid --set 626bd315-3ecc-4724-96a4-39f00b5f6331
    linux   /boot/vmlinuz-2.6.32-38-generic-pae root=UUID=626bd315-3ecc-4724-96a4-39f00b5f6331 ro   quiet splash
    initrd  /boot/initrd.img-2.6.32-38-generic-pae
}
menuentry 'Ubuntu, with Linux 2.6.32-38-generic-pae (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod ext2
    set root='(hd0,2)'
    search --no-floppy --fs-uuid --set 626bd315-3ecc-4724-96a4-39f00b5f6331
    echo    'Loading Linux 2.6.32-38-generic-pae ...'
    linux   /boot/vmlinuz-2.6.32-38-generic-pae root=UUID=626bd315-3ecc-4724-96a4-39f00b5f6331 ro single 
    echo    'Loading initial ramdisk ...'
    initrd  /boot/initrd.img-2.6.32-38-generic-pae
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
    insmod ext2
    set root='(hd0,2)'
    search --no-floppy --fs-uuid --set 626bd315-3ecc-4724-96a4-39f00b5f6331
    linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
    insmod ext2
    set root='(hd0,2)'
    search --no-floppy --fs-uuid --set 626bd315-3ecc-4724-96a4-39f00b5f6331
    linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7 (loader) (on /dev/sda3)" {
    insmod ntfs
    set root='(hd0,3)'
    search --no-floppy --fs-uuid --set 457351F40CFFDE49
    chainloader +1
}
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
--------------------------------------------------------------------------------

=============================== sda2/etc/fstab: ================================

--------------------------------------------------------------------------------
# /etc/fstab: static file system information.
#
# Use 'blkid -o value -s UUID' to print the universally unique identifier
# for a device; this may be used with UUID= as a more robust way to name
# devices that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    nodev,noexec,nosuid 0       0
# / was on /dev/sda2 during installation
UUID=626bd315-3ecc-4724-96a4-39f00b5f6331 /               ext2    errors=remount-ro 0       1
--------------------------------------------------------------------------------

=================== sda2: Location of files loaded by Grub: ====================

           GiB - GB             File                                 Fragment(s)

 125.679679394 = 134.947528192  boot/grub/core.img                             2
 125.573421001 = 134.833434112  boot/grub/grub.cfg                             1
 125.532954693 = 134.789983744  boot/initrd.img-2.6.32-38-generic-pae          3
 125.523200512 = 134.779510272  boot/vmlinuz-2.6.32-38-generic-pae             2
 125.532954693 = 134.789983744  initrd.img                                     3
 125.523200512 = 134.779510272  vmlinuz                                        2

答案1

如果 Windows 出现任何问题,例如休眠或需要 chkdsk,它通常将无法从 grub 启动。

如果您从 Ubuntu 安装程序调整大小,Windows 引导扇区需要修复,chkdsk 可以完成此操作。但您只能从 Windows 或 Windows 修复 CD 运行 chkdsk。

少数人能够使用 grub 启动中的 f8,但速度太快,通常不起作用。如果您没有 Windows 修复 CD,还有第三方 Windows 工具可以运行 chkdsk。您应该有适用于您安装的每个系统的当前版本的修复工具 CD 或闪存驱动器。

免费版本中还提供 chkdsk 和一些其他 Windows 修复功能:

http://www.partitionwizard.com/features.html

可能能够从 Hiren 的启动 CD 运行 chkdsk。(mini xp。)Hiren 的启动 CD,然后在 XP 上执行 chkdsk

易我分区大师

http://www.partition-tool.com/personal.htm

答案2

插入您的 Windows 7 磁盘并选择Repair your computerstartup repair
安装 Windows 7 启动菜单,然后将您的 ubuntu 添加easyBCD到 Windows 7 启动加载程序。

答案3

尝试更改/Boot/BCD/boot/BCD“我认为案例很重要”。

相关内容