From 3e0fa5d0e082fe230b7c2f8201defc3b26606dae Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Tue, 21 Sep 2010 01:02:24 +0200 Subject: [PATCH] * util/grub.d/10_kfreebsd.in (kfreebsd_entry): Use UUID when possible. --- ChangeLog | 4 ++++ util/grub.d/10_kfreebsd.in | 11 ++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 4fd29f131..3c57b6f76 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2010-09-20 Vladimir Serbinenko + + * util/grub.d/10_kfreebsd.in (kfreebsd_entry): Use UUID when possible. + 2010-09-20 Vladimir Serbinenko * util/grub.d/20_linux_xen.in: Use submenus. diff --git a/util/grub.d/10_kfreebsd.in b/util/grub.d/10_kfreebsd.in index e39423999..591fbc4b1 100644 --- a/util/grub.d/10_kfreebsd.in +++ b/util/grub.d/10_kfreebsd.in @@ -144,7 +144,16 @@ while [ "x$list" != "x" ] ; do # filesystem name (empty string for the main filesystem) kfreebsd_device="${kfreebsd_device}$(grub-mkrelpath / | sed -e "s,/*@$,,")" ;; - *) kfreebsd_device=${GRUB_DEVICE} ;; + *) + kfreebsd_device=${kfreebsd_fs}id/${GRUB_DEVICE_UUID} + # Debian GNU/kFreeBSD can't remount root if it's supplied as UUID but + # as an UUID + if [ "x${GRUB_DISTRIBUTOR}" = "xDebian" ] \ + && ! (cat /etc/fstab | awk '!/^[[:space:]]*#/ && $2=="/" { print $1; }' \ + | grep "${kfreebsd_fs}id/${GRUB_DEVICE_UUID}" > /dev/null); then + kfreebsd_device=${GRUB_DEVICE} + fi + ;; esac version=`echo $basename | sed -e "s,^[^0-9]*-,,g;s/\.gz$//g"` -- 2.47.3