Seems to be fixed --- the machine in question did not have problems
booting after the latest grub update.

** Description changed:

  Assume grub installed on its own partition, the kernel and initrd in "/boot". 
fstab looks like:
- [code]
+ <pre>
  UUID=cd4782ce-cbe5-46bb-a1ca-0ef613d65be1 /                ext4        
errors=remount-ro                                 0       1
  UUID=ffa76c51-70ca-4557-ac26-798e64ff9502 /boot/grub       ext3        
errors=remount-ro                                 0       2
- [/code]
+ </pre>
  
  update-grub now generates:
- [code]
+ <pre>
  ### BEGIN /etc/grub.d/10_linux ###
  menuentry "Ubuntu, mit Linux 2.6.32-19-generic" --class ubuntu --class 
gnu-linux --class gnu --class os {
-         recordfail
-         insmod ext2
-         set root='(hd0,1)'
-         search --no-floppy --fs-uuid --set 
ffa76c51-70ca-4557-ac26-798e64ff9502
-         linux   /vmlinuz-2.6.32-19-generic 
root=UUID=cd4782ce-cbe5-46bb-a1ca-0ef613d65be1 ro   quiet splash
-         initrd  /initrd.img-2.6.32-19-generic
+         recordfail
+         insmod ext2
+         set root='(hd0,1)'
+         search --no-floppy --fs-uuid --set 
ffa76c51-70ca-4557-ac26-798e64ff9502
+         linux   /vmlinuz-2.6.32-19-generic 
root=UUID=cd4782ce-cbe5-46bb-a1ca-0ef613d65be1 ro   quiet splash
+         initrd  /initrd.img-2.6.32-19-generic
  }
  menuentry "Ubuntu, mit Linux 2.6.32-19-generic (Wiederherstellungsmodus)" 
--class ubuntu --class gnu-linux --class gnu --class os {
-         recordfail
-         insmod ext2
-         set root='(hd0,1)'
-         search --no-floppy --fs-uuid --set 
ffa76c51-70ca-4557-ac26-798e64ff9502
-         echo    Linux 2.6.32-19-generic wird geladen …
-         linux   /vmlinuz-2.6.32-19-generic 
root=UUID=cd4782ce-cbe5-46bb-a1ca-0ef613d65be1 ro single 
-         echo    Initiale Ramdisk wird geladen …
-         initrd  /initrd.img-2.6.32-19-generic
+         recordfail
+         insmod ext2
+         set root='(hd0,1)'
+         search --no-floppy --fs-uuid --set 
ffa76c51-70ca-4557-ac26-798e64ff9502
+         echo    Linux 2.6.32-19-generic wird geladen …
+         linux   /vmlinuz-2.6.32-19-generic 
root=UUID=cd4782ce-cbe5-46bb-a1ca-0ef613d65be1 ro single
+         echo    Initiale Ramdisk wird geladen …
+         initrd  /initrd.img-2.6.32-19-generic
  }
  ### END /etc/grub.d/10_linux ###
- [/code]
+ </pre>
  
  The UUID of the grub-partition is used to set the root device, leading
  to error "File not found. You must load a kernel first..." while
  booting. update-grub should have instead used UUID of the partition
  kernel and initrd are on.
  
  The relevant part is in "/etc/grub.d/10_linux":
- [code]
-     50  if [ "x${GRUB_DEVICE_UUID}" = "x" ] || [ 
"x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ] \
-     51      || ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" \
-     52      || [ "`grub-probe -t abstraction --device ${GRUB_DEVICE} | sed -e 
's,.*\(lvm\).*,\1,'`" = "lvm"  ] ; then
-     53    LINUX_ROOT_DEVICE=${GRUB_DEVICE}
-     54  else
-     55    LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID}
-     56  fi
- [/code]
+ <pre>
+     50  if [ "x${GRUB_DEVICE_UUID}" = "x" ] || [ 
"x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ] \
+     51      || ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" \
+     52      || [ "`grub-probe -t abstraction --device ${GRUB_DEVICE} | sed -e 
's,.*\(lvm\).*,\1,'`" = "lvm"  ] ; then
+     53    LINUX_ROOT_DEVICE=${GRUB_DEVICE}
+     54  else
+     55    LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID}
+     56  fi
+ </pre>
  
  This code should not refer to GRUB_DEVICE_UUID. It should refer to
  KERNEL_DEVICE_UUID instead.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/557144

Title:
  update-grub2 does not honor the right boot device

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to