Windows 7 が GRUB から起動しない

Windows 7 が GRUB から起動しない

Windows 7 と Ubuntu をデュアルブートするようにマシンをセットアップしようとしています。最初に Windows 7 をインストールしましたが、すべて問題ないようです。Ubuntu 10.04 をインストールしました (デフォルトで Unity がインストールされるのを避けるためです。多くの人から面倒だと言われたので)。

現在、grub メニューから Windows 7 を選択すると、画面が空白になり、grub メニューに戻ります。

以下はブート情報スクリプトの結果です。testdisk を実行して、Windows ブート セクターをチェックしてみましたが、ブート セクターとバックアップ ブート セクターの両方が正常で、互いに一致していると表示されます。

しかし、Windows のブート セクターに問題がない場合、通常の「チェーンローダー +1」アプローチが機能しないのはなぜでしょうか?

同様の問題がないかフォーラムをチェックしてみましたが、ほとんどは誤って MBR ではなく Windows パーティションに GRUB をインストールした人のようです。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 で実行できます。ただし、chkdsk は Windows または Windows 修復 CD からのみ実行できます。

GRUB ブートから f8 を使用できる人も少数いますが、非常に高速であるため、通常は機能しません。Windows 修復 CD がない場合でも、chkdsk を実行できるサードパーティの Windows ツールもあります。インストールしたすべてのシステムの現在のバージョン用の修復ツール CD またはフラッシュ ドライブを用意する必要があります。

無料版には chkdsk やその他の Windows 修復機能も含まれています:

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

Hiren のブート CD から chkdsk を実行できる可能性があります。(ミニ XP) Hiren のブート CD から、XP で chkdsk を実行します。

EASEUS パーティションマスター

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

答え2

Windows 7 ディスクを挿入し、Repair your computerを選択しますstartup repair。Windows
7 ブートメニューがインストールされ、Ubuntu がeasyBCDWindows 7 ブートローダーに追加されます。

答え3

「ケースが重要だと考える」/Boot/BCDに変更してみてください。/boot/BCD

関連情報