grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] grub-install --debug-image option


From: Colin Watson
Subject: [PATCH] grub-install --debug-image option
Date: Sat, 26 Jun 2010 11:05:05 +0100
User-agent: Mutt/1.5.18 (2008-05-17)

When debugging problems that make GRUB unable to load
/boot/grub/grub.cfg, I often find myself telling people to edit
grub-install to put 'set debug=all' in an embedded configuration file.
I'd like this not to involve editing the grub-install script, and to
just be a simple option.  Does this patch look OK?  It makes it possible
to do --debug-image=all (say).

Like --debug, I've left it undocumented for the moment since it will
spew vast quantities of output that probably require a developer to
interpret them anyway.  (I don't feel strongly about this; if we
document --debug-image, then we should document the existing --debug
too.)

2010-06-26  Colin Watson  <address@hidden>

        * util/grub-install.in: Add --debug-image= option.

=== modified file 'util/grub-install.in'
--- util/grub-install.in        2010-06-13 00:36:39 +0000
+++ util/grub-install.in        2010-06-26 10:00:33 +0000
@@ -50,6 +50,7 @@ no_floppy=
 force_lba=
 recheck=no
 debug=no
+debug_image=
 
 if [ "${target_cpu}-${platform}" = "i386-pc" ] ; then
     disk_module=biosdisk
@@ -180,6 +181,11 @@ do
     # This is an undocumented feature...
     --debug)
        debug=yes ;;
+    --debug-image)
+       debug_image=`argument $option "$@"`; shift;;
+    --debug-image=*)
+       debug_image=`echo "$option" | sed 's/--debug-image=//'` ;;
+
     -f | --force)
         setup_force="--force" ;;
 
@@ -349,6 +355,13 @@ fi
 prefix_drive=
 config_opt=
 
+rm -f ${grubdir}/load.cfg
+
+if [ "x${debug_image}" != x ]; then
+    echo "set debug='${debug_image}'" >> ${grubdir}/load.cfg
+    config_opt="-c ${grubdir}/load.cfg "
+fi
+
 if [ "x${devabstraction_module}" = "x" ] ; then
     if [ x"${install_device}" != x ]; then
       if echo "${install_device}" | grep -qx "(.*)" ; then
@@ -369,7 +382,7 @@ if [ "x${devabstraction_module}" = "x" ]
           echo "UUID needed with ata mod, but the filesystem containing 
${grubdir} does not support UUIDs." 1>&2
           exit 1
         fi
-        echo "search.fs_uuid ${uuid} root " > ${grubdir}/load.cfg
+        echo "search.fs_uuid ${uuid} root " >> ${grubdir}/load.cfg
        echo 'set prefix=($root)'"${relative_grubdir}" >> ${grubdir}/load.cfg
        config_opt="-c ${grubdir}/load.cfg "
         modules="$modules search_fs_uuid"
@@ -379,7 +392,7 @@ if [ "x${devabstraction_module}" = "x" ]
           echo "You attempted a cross-disk install, but the filesystem 
containing ${grubdir} does not support UUIDs." 1>&2
           exit 1
         fi
-        echo "search.fs_uuid ${uuid} root " > ${grubdir}/load.cfg
+        echo "search.fs_uuid ${uuid} root " >> ${grubdir}/load.cfg
        echo 'set prefix=($root)'"${relative_grubdir}" >> ${grubdir}/load.cfg
        config_opt="-c ${grubdir}/load.cfg "
         modules="$modules search_fs_uuid"

Thanks,

-- 
Colin Watson                                       address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]