Package: grub-installer
Version: 1.126
Severity: wishlist
Tags: patch

Hi,

On a recent install, I had to switch to the console during the as the
/dev/sdX names and device IDs were not sufficient for me to be 100% sure
I was installing grub to the right device.

Showing the device sizes would have been enough for me to avoid this (as
the sizes were widely different), and would provide a reassurance in
other cases where I was merely slightly uncertain.

Patch attached. I've retained the double-space between the device path
and the start of the metadata. Example screenshot here:
http://i.imgur.com/JSXrJ48.png  


Regards,

-- 
      ,''`.
     : :'  :     Chris Lamb
     `. `'`      la...@debian.org / chris-lamb.co.uk
       `-
diff --git a/grub-installer b/grub-installer
index c407cd1..e340e1b 100755
--- a/grub-installer
+++ b/grub-installer
@@ -222,6 +222,11 @@ devices_to_ids()
        echo "$ids"
 }
 
+convert_to_megabytes() {
+       local size="$1"
+       expr 0000000"$size" : '0*\(..*\)......$'
+}
+
 rootfs=$(findfs /)
 bootfs=$(findfs /boot)
 [ -n "$bootfs" ] || bootfs="$rootfs"
@@ -634,7 +639,7 @@ db_progress INFO grub-installer/progress/step_bootdev
 select_bootdev() {
        debug "select_bootdev: arg='$1'"
 
-       local dev_list dev_descr grubdev devices disk_id dev descr
+       local dev_list dev_descr grubdev devices disk_id dev descr devinfo 
devsize
        local default_choice chosen result
 
        result=""
@@ -652,13 +657,14 @@ select_bootdev() {
                disk_id="$(device_to_id $grubdev)"
                dev="$(readlink -f "$disk_id")"
                dev_list="${dev_list:+$dev_list, }$dev"
+               devinfo=""
                descr="$(echo $disk_id |sed -e 's+^.*/++' |sed -e 's+,+\\,+g')"
-               if [ "$dev" = "$disk_id" ]; then
-                       dev_descr="${dev_descr:+$dev_descr, }$dev"
-               else
-                       #/dev/sdX (id)
-                       dev_descr="${dev_descr:+$dev_descr, }$dev  ($descr)"
+               if [ "$dev" != "$disk_id" ]; then
+                       devinfo="${devinfo:+$devinfo\, }$descr"
                fi
+               devsize="$(blockdev --getsize64 "$dev")"
+               devinfo="${devinfo:+$devinfo\, }$(convert_to_megabytes 
"$devsize")MB"
+               dev_descr="${dev_descr:+$dev_descr, }$dev${devinfo:+  
($devinfo)}"
        done
 
        debug "Bootdev Choices: '$dev_list'"

Reply via email to