--- /usr/share/loader/bootloader_utils.pm.orig	2009-10-02 19:48:28 +0800
+++ /usr/share/loader/bootloader_utils.pm	2009-10-02 19:50:57 +0800
@@ -45,6 +45,7 @@ sub mnt2dev ($;$$) {
 		if ($$fsent[0] =~ /^(LABEL|UUID)=/) {
 			foreach my $ment (@mtab) {
 				if ($$ment[1] eq $$fsent[1]) {
+                                  return $$ment[0] if $$fsent[0] eq $mnt; # if mnt is LABEL/UUID=XXXXXX and present in fstab
 					$$fsent[0] = $$ment[0];
 				}
 			}
--- /usr/share/loader/grub.orig	2009-10-02 19:54:18 +0800
+++ /usr/share/loader/grub	2009-10-02 19:55:34 +0800
@@ -23,6 +23,7 @@ GetOptions "r|R|remove" => \my $remove, 
 
 sub dev2grub {
 	my $dev = shift;
+        $dev = mnt2dev($dev) if $dev =~ /^(LABEL|UUID)=/;
 	my ($disk, $part) = $dev =~ /([^\d\s]+)(\d+)/
 		or return;
 # Sample device.map entry: