markjs
November 2nd, 2011, 05:09 PM
This is the second request for help; the first was probably in a wrong forum but can be found here (http://ubuntuforums.org/showthread.php?p=11416640#post11416640) for further clarification of the problem.
Basically I have a separate hard disk for both Ubuntu 11.10 x64 and Windows 7 x64, and I want the Windows drive left intact, as it was installed first and I like the luxury of not have boot issues with more than one OS should problems arise. I want Grub2 local on the Ubuntu disk, and Windows drive to boot (if you make it primary in BIOS) as if Ubuntu didn't exist on the machine. Windows worked that way before I installed Ubuntu, and it still does post Ubuntu install.
The problem is, no matter what I do, when booting from the Ubuntu hard disk if I choose the Windows menu entry I just get a black screen and a blinking cursor, and it won't respond to anything but a hard reboot with the power button. I think it's a Grub2 issue, but I am not 100% on that.
I am foggy on all the bit about where Windows puts it's boot info, but I think for some reason it didn't do the usual thing where it reserves a small "system reserved" partition for it's boot files. As far as I can tell , it's all on one partition, and the drive itself just has the one partition on it.
The Ubuntu drive has a small partition for Ubuntu a swap partition and an NTFS partition. I have another drive but it seems to be of no consequence to the problem. Attached is a screenshot of MiniTool's partition info.
This is my /boot/grub/grub.cfg 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
set have_grubenv=true
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
}
function load_video {
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
}
insmod part_gpt
insmod ext2
set root='(hd1,gpt1)'
search --no-floppy --fs-uuid --set=root 8d7c4b6f-371a-48b1-a9e9-8792e8dc9986
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=auto
load_video
insmod gfxterm
insmod part_gpt
insmod ext2
set root='(hd1,gpt1)'
search --no-floppy --fs-uuid --set=root 8d7c4b6f-371a-48b1-a9e9-8792e8dc9986
set locale_dir=($root)/boot/grub/locale
set lang=en_US
insmod gettext
fi
terminal_output gfxterm
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
if background_color 44,0,30; then
clear
fi
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_linux ###
if [ ${recordfail} != 1 ]; then
if [ -e ${prefix}/gfxblacklist.txt ]; then
if hwmatch ${prefix}/gfxblacklist.txt 3; then
if [ ${match} = 0 ]; then
set linux_gfx_mode=keep
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=keep
fi
else
set linux_gfx_mode=text
fi
export linux_gfx_mode
if [ "$linux_gfx_mode" != "text" ]; then load_video; fi
menuentry 'Ubuntu, with Linux 3.0.0-12-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
set gfxpayload=$linux_gfx_mode
insmod gzio
insmod part_gpt
insmod ext2
set root='(hd1,gpt1)'
search --no-floppy --fs-uuid --set=root 8d7c4b6f-371a-48b1-a9e9-8792e8dc9986
linux /boot/vmlinuz-3.0.0-12-generic root=UUID=8d7c4b6f-371a-48b1-a9e9-8792e8dc9986 ro quiet splash vt.handoff=7
initrd /boot/initrd.img-3.0.0-12-generic
}
menuentry 'Ubuntu, with Linux 3.0.0-12-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod gzio
insmod part_gpt
insmod ext2
set root='(hd1,gpt1)'
search --no-floppy --fs-uuid --set=root 8d7c4b6f-371a-48b1-a9e9-8792e8dc9986
echo 'Loading Linux 3.0.0-12-generic ...'
linux /boot/vmlinuz-3.0.0-12-generic root=UUID=8d7c4b6f-371a-48b1-a9e9-8792e8dc9986 ro recovery nomodeset
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-3.0.0-12-generic
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
insmod part_gpt
insmod ext2
set root='(hd1,gpt1)'
search --no-floppy --fs-uuid --set=root 8d7c4b6f-371a-48b1-a9e9-8792e8dc9986
linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
insmod part_gpt
insmod ext2
set root='(hd1,gpt1)'
search --no-floppy --fs-uuid --set=root 8d7c4b6f-371a-48b1-a9e9-8792e8dc9986
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/sda1)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 96161BAD161B8D7D
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 ###
I am sure this is a simple problem, probably with a simple fix, but the few folks who've been kind enough to help thus far, and I myself have overlooked something, or I've not given clear and complete info or a combination of these factors. Any help, helpful or not is appreciated, and I apologize for being a bit testy in the last thread, it's just sometimes hard to make one's self clear enough for the casual reader to understand.
Basically I have a separate hard disk for both Ubuntu 11.10 x64 and Windows 7 x64, and I want the Windows drive left intact, as it was installed first and I like the luxury of not have boot issues with more than one OS should problems arise. I want Grub2 local on the Ubuntu disk, and Windows drive to boot (if you make it primary in BIOS) as if Ubuntu didn't exist on the machine. Windows worked that way before I installed Ubuntu, and it still does post Ubuntu install.
The problem is, no matter what I do, when booting from the Ubuntu hard disk if I choose the Windows menu entry I just get a black screen and a blinking cursor, and it won't respond to anything but a hard reboot with the power button. I think it's a Grub2 issue, but I am not 100% on that.
I am foggy on all the bit about where Windows puts it's boot info, but I think for some reason it didn't do the usual thing where it reserves a small "system reserved" partition for it's boot files. As far as I can tell , it's all on one partition, and the drive itself just has the one partition on it.
The Ubuntu drive has a small partition for Ubuntu a swap partition and an NTFS partition. I have another drive but it seems to be of no consequence to the problem. Attached is a screenshot of MiniTool's partition info.
This is my /boot/grub/grub.cfg 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
set have_grubenv=true
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
}
function load_video {
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
}
insmod part_gpt
insmod ext2
set root='(hd1,gpt1)'
search --no-floppy --fs-uuid --set=root 8d7c4b6f-371a-48b1-a9e9-8792e8dc9986
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=auto
load_video
insmod gfxterm
insmod part_gpt
insmod ext2
set root='(hd1,gpt1)'
search --no-floppy --fs-uuid --set=root 8d7c4b6f-371a-48b1-a9e9-8792e8dc9986
set locale_dir=($root)/boot/grub/locale
set lang=en_US
insmod gettext
fi
terminal_output gfxterm
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
if background_color 44,0,30; then
clear
fi
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_linux ###
if [ ${recordfail} != 1 ]; then
if [ -e ${prefix}/gfxblacklist.txt ]; then
if hwmatch ${prefix}/gfxblacklist.txt 3; then
if [ ${match} = 0 ]; then
set linux_gfx_mode=keep
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=keep
fi
else
set linux_gfx_mode=text
fi
export linux_gfx_mode
if [ "$linux_gfx_mode" != "text" ]; then load_video; fi
menuentry 'Ubuntu, with Linux 3.0.0-12-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
set gfxpayload=$linux_gfx_mode
insmod gzio
insmod part_gpt
insmod ext2
set root='(hd1,gpt1)'
search --no-floppy --fs-uuid --set=root 8d7c4b6f-371a-48b1-a9e9-8792e8dc9986
linux /boot/vmlinuz-3.0.0-12-generic root=UUID=8d7c4b6f-371a-48b1-a9e9-8792e8dc9986 ro quiet splash vt.handoff=7
initrd /boot/initrd.img-3.0.0-12-generic
}
menuentry 'Ubuntu, with Linux 3.0.0-12-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod gzio
insmod part_gpt
insmod ext2
set root='(hd1,gpt1)'
search --no-floppy --fs-uuid --set=root 8d7c4b6f-371a-48b1-a9e9-8792e8dc9986
echo 'Loading Linux 3.0.0-12-generic ...'
linux /boot/vmlinuz-3.0.0-12-generic root=UUID=8d7c4b6f-371a-48b1-a9e9-8792e8dc9986 ro recovery nomodeset
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-3.0.0-12-generic
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
insmod part_gpt
insmod ext2
set root='(hd1,gpt1)'
search --no-floppy --fs-uuid --set=root 8d7c4b6f-371a-48b1-a9e9-8792e8dc9986
linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
insmod part_gpt
insmod ext2
set root='(hd1,gpt1)'
search --no-floppy --fs-uuid --set=root 8d7c4b6f-371a-48b1-a9e9-8792e8dc9986
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/sda1)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 96161BAD161B8D7D
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 ###
I am sure this is a simple problem, probably with a simple fix, but the few folks who've been kind enough to help thus far, and I myself have overlooked something, or I've not given clear and complete info or a combination of these factors. Any help, helpful or not is appreciated, and I apologize for being a bit testy in the last thread, it's just sometimes hard to make one's self clear enough for the casual reader to understand.