Comment 11 for bug 384633

Revision history for this message
Ubfan (ubfan1) wrote : Re: Grub Installer gets devices wrong when running from live USB

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 ###