On Sat, Oct 17, 2009 at 04:24:53PM +0400, Vasily Averin wrote: > While /dev mounted as tmpfs it does not contain /dev/disk/by-uuid directory, > 10_linux script did not check it properly and do not set root device via UUID. > Therefore following kernel boot can fail (incorrect root device) if device > names > was changed. > > Attached path fixes this issue. Please review and commit it
> diff -up ./util/grub.d/10_linux.in.tmpdevuuid ./util/grub.d/10_linux.in > --- ./util/grub.d/10_linux.in.tmpdevuuid 2009-08-29 20:05:06.000000000 > +0400 > +++ ./util/grub.d/10_linux.in 2009-09-03 11:07:34.000000000 +0400 > @@ -36,7 +36,7 @@ case ${GRUB_DEVICE} in > esac > > if [ "x${GRUB_DEVICE_UUID}" = "x" ] || [ "x${GRUB_DISABLE_LINUX_UUID}" = > "xtrue" ] \ > - || ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" ; then > + || ( test -d /dev/disk/by-uuid && ! test -e > "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}") ; then > LINUX_ROOT_DEVICE=${GRUB_DEVICE} > else > LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID} It seems to me that this eliminates the safety check to ensure that Linux actually recognises this UUID. If for some reason GRUB and Linux are out of sync in how they calculate UUIDs, this will probably result in an unbootable system. Would it help to double-check with blkid in this case, or something like that? -- Colin Watson [cjwat...@ubuntu.com] _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel