I found the original grub.cfg file from a USB hard disk install. It does use UUIDs on the linux line, just the hdx references are wrong. This probably would have booted Maverick successfully, but maybe not Windows, which does the search with UUID, but used the bad hd1 for the drvemap. The fstab file also used UUID for the root and swap, just having the "leftover" comments about the devices being on /dev/sdcx at install (comments which no longer appear in the grub.cfg file).
grub.cfg from a maverick created 2G USB installer to a USB hard disk target -- only hx? references are wrong but may still boot linux.but probably not Windows:
#
# 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 part_msdos
insmod ext2
set root='(hd2,msdos1)'
search --no-floppy --fs-uuid --set 158ce293-1d71-4883-b2e9-8a0d5dfc0170
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=640x480
load_video
insmod gfxterm
fi
terminal_output gfxterm
insmod part_msdos
insmod ext2
set root='(hd2,msdos1)'
search --no-floppy --fs-uuid --set 158ce293-1d71-4883-b2e9-8a0d5dfc0170
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.35-22-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod part_msdos
insmod ext2
set root='(hd2,msdos1)'
search --no-floppy --fs-uuid --set 158ce293-1d71-4883-b2e9-8a0d5dfc0170
linux /boot/vmlinuz-2.6.35-22-generic root=UUID=158ce293-1d71-4883-b2e9-8a0d5dfc0170 ro quiet splash
initrd /boot/initrd.img-2.6.35-22-generic
}
menuentry 'Ubuntu, with Linux 2.6.35-22-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod part_msdos
insmod ext2
set root='(hd2,msdos1)'
search --no-floppy --fs-uuid --set 158ce293-1d71-4883-b2e9-8a0d5dfc0170
echo 'Loading Linux 2.6.35-22-generic ...'
linux /boot/vmlinuz-2.6.35-22-generic root=UUID=158ce293-1d71-4883-b2e9-8a0d5dfc0170 ro single
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.35-22-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_msdos
insmod ext2
set root='(hd2,msdos1)'
search --no-floppy --fs-uuid --set 158ce293-1d71-4883-b2e9-8a0d5dfc0170
linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
insmod part_msdos
insmod ext2
set root='(hd2,msdos1)'
search --no-floppy --fs-uuid --set 158ce293-1d71-4883-b2e9-8a0d5dfc0170
linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Microsoft Windows XP Professional (on /dev/sdb1)" {
insmod part_msdos
insmod ntfs
set root='(hd1,msdos1)'
search --no-floppy --fs-uuid --set 637d775958635993
drivemap -s (hd0) ${root}
chainloader +1
}
menuentry "Windows NT/2000/XP (on /dev/sdb2)" {
insmod part_msdos
insmod fat
set root='(hd1,msdos2)'
search --no-floppy --fs-uuid --set 3ec6-2e70
drivemap -s (hd0) ${root}
chainloader +1
}
menuentry "Microsoft Windows XP Embedded (on /dev/sdb3)" {
insmod part_msdos
insmod ntfs
set root='(hd1,msdos3)'
search --no-floppy --fs-uuid --set 60d45d0ed45ce834
drivemap -s (hd0) ${root}
chainloader +1
}
menuentry "Ubuntu, with Linux 2.6.32-25-generic (on /dev/sdc2)" {
insmod part_msdos
insmod ext2
set root='(hd2,msdos2)'
search --no-floppy --fs-uuid --set d3a61730-532b-4d7d-a87a-df9ce2b1f325
linux /boot/vmlinuz-2.6.32-25-generic root=UUID=d3a61730-532b-4d7d-a87a-df9ce2b1f325 ro quiet splash
initrd /boot/initrd.img-2.6.32-25-generic
}
menuentry "Ubuntu, with Linux 2.6.32-25-generic (recovery mode) (on /dev/sdc2)" {
insmod part_msdos
insmod ext2
set root='(hd2,msdos2)'
search --no-floppy --fs-uuid --set d3a61730-532b-4d7d-a87a-df9ce2b1f325
linux /boot/vmlinuz-2.6.32-25-generic root=UUID=d3a61730-532b-4d7d-a87a-df9ce2b1f325 ro single
initrd /boot/initrd.img-2.6.32-25-generic
}
menuentry "Ubuntu, with Linux 2.6.32-24-generic (on /dev/sdc2)" {
insmod part_msdos
insmod ext2
set root='(hd2,msdos2)'
search --no-floppy --fs-uuid --set d3a61730-532b-4d7d-a87a-df9ce2b1f325
linux /boot/vmlinuz-2.6.32-24-generic root=UUID=d3a61730-532b-4d7d-a87a-df9ce2b1f325 ro quiet splash
initrd /boot/initrd.img-2.6.32-24-generic
}
menuentry "Ubuntu, with Linux 2.6.32-24-generic (recovery mode) (on /dev/sdc2)" {
insmod part_msdos
insmod ext2
set root='(hd2,msdos2)'
search --no-floppy --fs-uuid --set d3a61730-532b-4d7d-a87a-df9ce2b1f325
linux /boot/vmlinuz-2.6.32-24-generic root=UUID=d3a61730-532b-4d7d-a87a-df9ce2b1f325 ro single
initrd /boot/initrd.img-2.6.32-24-generic
}
menuentry "Ubuntu, with Linux 2.6.32-23-generic (on /dev/sdc2)" {
insmod part_msdos
insmod ext2
set root='(hd2,msdos2)'
search --no-floppy --fs-uuid --set d3a61730-532b-4d7d-a87a-df9ce2b1f325
linux /boot/vmlinuz-2.6.32-23-generic root=UUID=d3a61730-532b-4d7d-a87a-df9ce2b1f325 ro quiet splash
initrd /boot/initrd.img-2.6.32-23-generic
}
menuentry "Ubuntu, with Linux 2.6.32-23-generic (recovery mode) (on /dev/sdc2)" {
insmod part_msdos
insmod ext2
set root='(hd2,msdos2)'
search --no-floppy --fs-uuid --set d3a61730-532b-4d7d-a87a-df9ce2b1f325
linux /boot/vmlinuz-2.6.32-23-generic root=UUID=d3a61730-532b-4d7d-a87a-df9ce2b1f325 ro single
initrd /boot/initrd.img-2.6.32-23-generic
}
### 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 found the original grub.cfg file from a USB hard disk install. It does use UUIDs on the linux line, just the hdx references are wrong. This probably would have booted Maverick successfully, but maybe not Windows, which does the search with UUID, but used the bad hd1 for the drvemap. The fstab file also used UUID for the root and swap, just having the "leftover" comments about the devices being on /dev/sdcx at install (comments which no longer appear in the grub.cfg file).
grub.cfg from a maverick created 2G USB installer to a USB hard disk target -- only hx? references are wrong but may still boot linux.but probably not Windows:
#
# 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 ### saved_entry} " ]; then "${prev_ saved_entry} "
if [ -s $prefix/grubenv ]; then
set have_grubenv=true
load_env
fi
set default="0"
if [ "${prev_
set saved_entry=
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault { entry=" ${chosen} "
if [ -z "${boot_once}" ]; then
saved_
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 part_msdos 1d71-4883- b2e9-8a0d5dfc01 70 grub/unicode. pf2 ; then 1d71-4883- b2e9-8a0d5dfc01 70 dir=($root) /boot/grub/ locale d/00_header ###
insmod ext2
set root='(hd2,msdos1)'
search --no-floppy --fs-uuid --set 158ce293-
if loadfont /usr/share/
set gfxmode=640x480
load_video
insmod gfxterm
fi
terminal_output gfxterm
insmod part_msdos
insmod ext2
set root='(hd2,msdos1)'
search --no-floppy --fs-uuid --set 158ce293-
set locale_
set lang=en
insmod gettext
if [ "${recordfail}" = 1 ]; then
set timeout=-1
else
set timeout=10
fi
### END /etc/grub.
### BEGIN /etc/grub. d/05_debian_ theme ### normal= white/black highlight= black/light- gray d/05_debian_ theme ###
set menu_color_
set menu_color_
### END /etc/grub.
### BEGIN /etc/grub. d/10_linux ### 1d71-4883- b2e9-8a0d5dfc01 70 2.6.35- 22-generic root=UUID= 158ce293- 1d71-4883- b2e9-8a0d5dfc01 70 ro quiet splash img-2.6. 35-22-generic 1d71-4883- b2e9-8a0d5dfc01 70 2.6.35- 22-generic root=UUID= 158ce293- 1d71-4883- b2e9-8a0d5dfc01 70 ro single img-2.6. 35-22-generic d/10_linux ###
menuentry 'Ubuntu, with Linux 2.6.35-22-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod part_msdos
insmod ext2
set root='(hd2,msdos1)'
search --no-floppy --fs-uuid --set 158ce293-
linux /boot/vmlinuz-
initrd /boot/initrd.
}
menuentry 'Ubuntu, with Linux 2.6.35-22-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod part_msdos
insmod ext2
set root='(hd2,msdos1)'
search --no-floppy --fs-uuid --set 158ce293-
echo 'Loading Linux 2.6.35-22-generic ...'
linux /boot/vmlinuz-
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.
}
### END /etc/grub.
### BEGIN /etc/grub. d/20_linux_ xen ### d/20_linux_ xen ###
### END /etc/grub.
### BEGIN /etc/grub. d/20_memtest86+ ### 1d71-4883- b2e9-8a0d5dfc01 70 +.bin 1d71-4883- b2e9-8a0d5dfc01 70 +.bin console= ttyS0,115200n8 d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
insmod part_msdos
insmod ext2
set root='(hd2,msdos1)'
search --no-floppy --fs-uuid --set 158ce293-
linux16 /boot/memtest86
}
menuentry "Memory test (memtest86+, serial console 115200)" {
insmod part_msdos
insmod ext2
set root='(hd2,msdos1)'
search --no-floppy --fs-uuid --set 158ce293-
linux16 /boot/memtest86
}
### END /etc/grub.
### BEGIN /etc/grub. d/30_os- prober ### 532b-4d7d- a87a-df9ce2b1f3 25 2.6.32- 25-generic root=UUID= d3a61730- 532b-4d7d- a87a-df9ce2b1f3 25 ro quiet splash img-2.6. 32-25-generic 532b-4d7d- a87a-df9ce2b1f3 25 2.6.32- 25-generic root=UUID= d3a61730- 532b-4d7d- a87a-df9ce2b1f3 25 ro single img-2.6. 32-25-generic 532b-4d7d- a87a-df9ce2b1f3 25 2.6.32- 24-generic root=UUID= d3a61730- 532b-4d7d- a87a-df9ce2b1f3 25 ro quiet splash img-2.6. 32-24-generic 532b-4d7d- a87a-df9ce2b1f3 25 2.6.32- 24-generic root=UUID= d3a61730- 532b-4d7d- a87a-df9ce2b1f3 25 ro single img-2.6. 32-24-generic 532b-4d7d- a87a-df9ce2b1f3 25 2.6.32- 23-generic root=UUID= d3a61730- 532b-4d7d- a87a-df9ce2b1f3 25 ro quiet splash img-2.6. 32-23-generic 532b-4d7d- a87a-df9ce2b1f3 25 2.6.32- 23-generic root=UUID= d3a61730- 532b-4d7d- a87a-df9ce2b1f3 25 ro single img-2.6. 32-23-generic d/30_os- prober ###
menuentry "Microsoft Windows XP Professional (on /dev/sdb1)" {
insmod part_msdos
insmod ntfs
set root='(hd1,msdos1)'
search --no-floppy --fs-uuid --set 637d775958635993
drivemap -s (hd0) ${root}
chainloader +1
}
menuentry "Windows NT/2000/XP (on /dev/sdb2)" {
insmod part_msdos
insmod fat
set root='(hd1,msdos2)'
search --no-floppy --fs-uuid --set 3ec6-2e70
drivemap -s (hd0) ${root}
chainloader +1
}
menuentry "Microsoft Windows XP Embedded (on /dev/sdb3)" {
insmod part_msdos
insmod ntfs
set root='(hd1,msdos3)'
search --no-floppy --fs-uuid --set 60d45d0ed45ce834
drivemap -s (hd0) ${root}
chainloader +1
}
menuentry "Ubuntu, with Linux 2.6.32-25-generic (on /dev/sdc2)" {
insmod part_msdos
insmod ext2
set root='(hd2,msdos2)'
search --no-floppy --fs-uuid --set d3a61730-
linux /boot/vmlinuz-
initrd /boot/initrd.
}
menuentry "Ubuntu, with Linux 2.6.32-25-generic (recovery mode) (on /dev/sdc2)" {
insmod part_msdos
insmod ext2
set root='(hd2,msdos2)'
search --no-floppy --fs-uuid --set d3a61730-
linux /boot/vmlinuz-
initrd /boot/initrd.
}
menuentry "Ubuntu, with Linux 2.6.32-24-generic (on /dev/sdc2)" {
insmod part_msdos
insmod ext2
set root='(hd2,msdos2)'
search --no-floppy --fs-uuid --set d3a61730-
linux /boot/vmlinuz-
initrd /boot/initrd.
}
menuentry "Ubuntu, with Linux 2.6.32-24-generic (recovery mode) (on /dev/sdc2)" {
insmod part_msdos
insmod ext2
set root='(hd2,msdos2)'
search --no-floppy --fs-uuid --set d3a61730-
linux /boot/vmlinuz-
initrd /boot/initrd.
}
menuentry "Ubuntu, with Linux 2.6.32-23-generic (on /dev/sdc2)" {
insmod part_msdos
insmod ext2
set root='(hd2,msdos2)'
search --no-floppy --fs-uuid --set d3a61730-
linux /boot/vmlinuz-
initrd /boot/initrd.
}
menuentry "Ubuntu, with Linux 2.6.32-23-generic (recovery mode) (on /dev/sdc2)" {
insmod part_msdos
insmod ext2
set root='(hd2,msdos2)'
search --no-floppy --fs-uuid --set d3a61730-
linux /boot/vmlinuz-
initrd /boot/initrd.
}
### END /etc/grub.
### BEGIN /etc/grub. d/40_custom ### 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.
### BEGIN /etc/grub. d/41_custom ### d/41_custom ###
if [ -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.