multi-boot mess: have I destroyed Windows 7 ?

Charles Blair's picture

Forums: 

****** THE MESS *****

I recently tried to set up a multi-boot with windows 7
and squeeze on a laptop. When started, grub displays

/dev/sda1 Windows 7
/dev/sda2 also Windows 7
/dev/sda3 Windows 7 recovery
/dev/sda4 Debian
/dev/sda5 Debian recovery

I am relieved that Debian works, but the other choices
give me "failed to start" error messages. I give fdisk
and grub configuration information below

***** HOW I CREATED THE MESS ****

The installer initially reported three partitions allocated
to windows. I re-sized the largest one (I think this was the
second one) and then put debian into the free space.

***** FDISK INFORMATION *****

Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xbb0c5abb

Device Boot Start End Blocks Id System
/dev/sda1 1 192 1536000 27 Unknown
/dev/sda2 192 12349 97656250 7 HPFS/NTFS
/dev/sda3 37264 38914 13248512 17 Hidden HPFS/NTFS
/dev/sda4 12350 37264 200128513 5 Extended
/dev/sda5 * 12350 12392 340992 83 Linux
/dev/sda6 12392 13486 8787968 83 Linux
/dev/sda7 13486 13851 2928640 83 Linux
/dev/sda8 13851 14826 7827456 82 Linux swap / Solaris
/dev/sda9 14826 14874 389120 83 Linux
/dev/sda10 14874 37264 179849216 83 Linux

Partition table entries are not in disk order

****** THE "WINDOWS" PART OF THE GRUB.CONF FILE ******

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by 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 load_video {
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
}

insmod part_msdos
insmod ext2
set root='(hd0,msdos6)'
search --no-floppy --fs-uuid --set a5ae78d6-949a-4462-bc98-6c53a846c401
if loadfont /share/grub/unicode.pf2 ; then
set gfxmode=640x480
load_video
insmod gfxterm
fi
terminal_output gfxterm
insmod part_msdos
insmod ext2
set root='(hd0,msdos5)'
search --no-floppy --fs-uuid --set d487742e-ad50-4347-8d9a-b8d0f1908c13
set locale_dir=($root)/boot/grub/locale
set lang=en
insmod gettext
set timeout=5
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
insmod part_msdos
insmod ext2
set root='(hd0,msdos6)'
search --no-floppy --fs-uuid --set a5ae78d6-949a-4462-bc98-6c53a846c401
insmod png
if background_image /share/images/desktop-base/spacefun-grub.png; then
set color_normal=light-gray/black
set color_highlight=white/black
else
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
fi
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-amd64' --class debian --class gnu-linux --class gnu --class os {
insmod part_msdos
insmod ext2
set root='(hd0,msdos5)'
search --no-floppy --fs-uuid --set d487742e-ad50-4347-8d9a-b8d0f1908c13
echo 'Loading Linux 2.6.32-5-amd64 ...'
linux /boot/vmlinuz-2.6.32-5-amd64 root=UUID=d487742e-ad50-4347-8d9a-b8d0f1908c13 ro quiet
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.32-5-amd64
}
menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
insmod part_msdos
insmod ext2
set root='(hd0,msdos5)'
search --no-floppy --fs-uuid --set d487742e-ad50-4347-8d9a-b8d0f1908c13
echo 'Loading Linux 2.6.32-5-amd64 ...'
linux /boot/vmlinuz-2.6.32-5-amd64 root=UUID=d487742e-ad50-4347-8d9a-b8d0f1908c13 ro single
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.32-5-amd64
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7 (loader) (on /dev/sda1)" {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set 6eb0817ab0814a13
chainloader +1
}
menuentry "Windows 7 (loader) (on /dev/sda2)" {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos2)'
search --no-floppy --fs-uuid --set b8f4a8c3f4a884ea
chainloader +1
}
menuentry "Windows Recovery Environment (loader) (on /dev/sda3)" {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos3)'
search --no-floppy --fs-uuid --set 7816d0b116d0721c
drivemap -s (hd0) ${root}
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 ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

multi-boot mess: have I destroyed Windows 7 ?

Freeman's picture

On Sat, May 28, 2011 at 05:10:40PM -0500, Charles Blair wrote:
> ****** THE MESS *****
>
> I recently tried to set up a multi-boot with windows 7
> and squeeze on a laptop. When started, grub displays
>
> /dev/sda1 Windows 7
> /dev/sda2 also Windows 7
> /dev/sda3 Windows 7 recovery
> /dev/sda4 Debian
> /dev/sda5 Debian recovery
>
> I am relieved that Debian works, but the other choices
> give me "failed to start" error messages. I give fdisk
> and grub configuration information below
>
> ***** HOW I CREATED THE MESS ****
>
> The installer initially reported three partitions allocated
> to windows. I re-sized the largest one (I think this was the
> second one) and then put debian into the free space.
>
> ***** FDISK INFORMATION *****
>
> Disk /dev/sda: 320.1 GB, 320072933376 bytes
> 255 heads, 63 sectors/track, 38913 cylinders
> Units = cylinders of 16065 * 512 = 8225280 bytes
> Sector size (logical/physical): 512 bytes / 512 bytes
> I/O size (minimum/optimal): 512 bytes / 512 bytes
> Disk identifier: 0xbb0c5abb
>
> Device Boot Start End Blocks Id System
> /dev/sda1 1 192 1536000 27 Unknown
> /dev/sda2 192 12349 97656250 7 HPFS/NTFS
^
This looks like a partition big enough, albeit cramped, to house Windows.
And it has a Windows-like arrangement: the small Unknown in front and the
smallish Hidden behind. And your menuentry points to it.

I am unfamiliar with HPFS/NTFS. I am also unfamiliar with Windows 7.

It is still worth trying a fix of your MBR and reinstalling GRUB2.

Do you have a 7 install disk?

http://www.ehow.com/how_4836283_repair-mbr-windows.html

Otherwise you might download bootrec.exe from microsoft or somewhere on line.

Then a reinstall of GRUB2 is required.

SuperGrubDisk evidently can't handle GRUB2 any longer. There is a
replacement called Rescatux. At 0.25, it is not even close to version 1.
But is says it has something like it bootrec.exe, and it says it can fix
GRUB2.

You will have to download an iso and unpack-burn to a CD.

Or, use the rescue section of the Debian installer:

http://wiki.debian.org/GrubRecover

> /dev/sda3 37264 38914 13248512 17 Hidden HPFS/NTFS
> /dev/sda4 12350 37264 200128513 5 Extended
> /dev/sda5 * 12350 12392 340992 83 Linux
> /dev/sda6 12392 13486 8787968 83 Linux
> /dev/sda7 13486 13851 2928640 83 Linux
> /dev/sda8 13851 14826 7827456 82 Linux swap / Solaris
> /dev/sda9 14826 14874 389120 83 Linux
> /dev/sda10 14874 37264 179849216 83 Linux
>
> Partition table entries are not in disk order
>
> ****** THE "WINDOWS" PART OF THE GRUB.CONF FILE ******
>
> #
> # DO NOT EDIT THIS FILE
> #
> # It is automatically generated by 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 load_video {
> insmod vbe
> insmod vga
> insmod video_bochs
> insmod video_cirrus
> }
>
> insmod part_msdos
> insmod ext2
> set root='(hd0,msdos6)'
> search --no-floppy --fs-uuid --set a5ae78d6-949a-4462-bc98-6c53a846c401
> if loadfont /share/grub/unicode.pf2 ; then
> set gfxmode=640x480
> load_video
> insmod gfxterm
> fi
> terminal_output gfxterm
> insmod part_msdos
> insmod ext2
> set root='(hd0,msdos5)'
> search --no-floppy --fs-uuid --set d487742e-ad50-4347-8d9a-b8d0f1908c13
> set locale_dir=($root)/boot/grub/locale
> set lang=en
> insmod gettext
> set timeout=5
> ### END /etc/grub.d/00_header ###
>
> ### BEGIN /etc/grub.d/05_debian_theme ###
> insmod part_msdos
> insmod ext2
> set root='(hd0,msdos6)'
> search --no-floppy --fs-uuid --set a5ae78d6-949a-4462-bc98-6c53a846c401
> insmod png
> if background_image /share/images/desktop-base/spacefun-grub.png; then
> set color_normal=light-gray/black
> set color_highlight=white/black
> else
> set menu_color_normal=cyan/blue
> set menu_color_highlight=white/blue
> fi
> ### END /etc/grub.d/05_debian_theme ###
>
> ### BEGIN /etc/grub.d/10_linux ###
> menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-amd64' --class debian --class gnu-linux --class gnu --class os {
> insmod part_msdos
> insmod ext2
> set root='(hd0,msdos5)'
> search --no-floppy --fs-uuid --set d487742e-ad50-4347-8d9a-b8d0f1908c13
> echo 'Loading Linux 2.6.32-5-amd64 ...'
> linux /boot/vmlinuz-2.6.32-5-amd64 root=UUID=d487742e-ad50-4347-8d9a-b8d0f1908c13 ro quiet
> echo 'Loading initial ramdisk ...'
> initrd /boot/initrd.img-2.6.32-5-amd64
> }
> menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
> insmod part_msdos
> insmod ext2
> set root='(hd0,msdos5)'
> search --no-floppy --fs-uuid --set d487742e-ad50-4347-8d9a-b8d0f1908c13
> echo 'Loading Linux 2.6.32-5-amd64 ...'
> linux /boot/vmlinuz-2.6.32-5-amd64 root=UUID=d487742e-ad50-4347-8d9a-b8d0f1908c13 ro single
> echo 'Loading initial ramdisk ...'
> initrd /boot/initrd.img-2.6.32-5-amd64
> }

. . .