slitaz-tools rev 214

bootfloppybox: edit menu.lst before writing floppy
author Pascal Bellard <pascal.bellard@slitaz.org>
date Wed Jun 18 21:25:51 2008 +0000 (2008-06-18)
parents 696369f3891f
children bfbb1b457dc4
files tinyutils/bootfloppybox
line diff
     1.1 --- a/tinyutils/bootfloppybox	Wed Jun 18 17:29:16 2008 +0000
     1.2 +++ b/tinyutils/bootfloppybox	Wed Jun 18 21:25:51 2008 +0000
     1.3 @@ -2,7 +2,7 @@
     1.4  # 
     1.5  # Gtkdialog box for the mount command. Part of SliTaz tools.
     1.6  #
     1.7 -VERSION=20080409
     1.8 +VERSION=20080618
     1.9  
    1.10  # Check if user is root.
    1.11  check_root()
    1.12 @@ -20,8 +20,10 @@
    1.13  {
    1.14  	case $retval in
    1.15  		1)
    1.16 +			rm -f /tmp/floppybox.grub.menu
    1.17  			echo -e "\nVoluntary exit.\n" && exit 0 ;;
    1.18  		255)
    1.19 +			rm -f /tmp/floppybox.grub.menu
    1.20  			echo -e "ESC pressed.\n" && exit 0 ;;
    1.21  	esac
    1.22  }
    1.23 @@ -56,7 +58,34 @@
    1.24  		mount $DEVICE /media/floppy
    1.25  		mkdir -p /media/floppy/boot/grub
    1.26  		cp /usr/lib/grub/i386-pc/stage? /media/floppy/boot/grub
    1.27 -		cat > /media/floppy/boot/grub/menu.lst <<EOT
    1.28 +		cp /tmp/floppybox.grub.menu /media/floppy/boot/grub/menu.lst
    1.29 +		[ -f /usr/share/boot/btmgr -a -f /usr/share/boot/memdisk.lzma ]\
    1.30 +			&& cp /usr/share/boot/btmgr /media/floppy/boot \
    1.31 +			&& unlzma -c /usr/share/boot/memdisk.lzma > \
    1.32 +				/media/floppy/boot/memdisk
    1.33 +		[ -f /usr/share/boot/etherboot ]\
    1.34 +			&& cp /usr/share/boot/etherboot /media/floppy/boot
    1.35 +		[ -f /usr/share/boot/memtest.lzma ]\
    1.36 +			&& unlzma -c /usr/share/boot/memtest.lzma > \
    1.37 +				/media/floppy/boot/memtest
    1.38 +		[ -f /usr/share/boot/grub.exe.lzma ]\
    1.39 +			&& unlzma -c /usr/share/boot/grub.exe.lzma > \
    1.40 +				/media/floppy/boot/grub.exe
    1.41 +		grub-set-default --root-directory=/media/floppy 0
    1.42 +		umount $DEVICE
    1.43 +		grub --batch <<EOT
    1.44 +root (${DEVICE#/dev/})
    1.45 +setup (${DEVICE#/dev/})
    1.46 +quit
    1.47 +EOT
    1.48 +		;;
    1.49 +	*)	echo "Invalid command $0 $@" 1>&2
    1.50 +		exit 1;;
    1.51 +	esac
    1.52 +	exit 0
    1.53 +fi
    1.54 +
    1.55 +cat > /tmp/floppybox.grub.menu <<EOT
    1.56  default saved
    1.57  timeout 10
    1.58  
    1.59 @@ -77,52 +106,28 @@
    1.60  	save default
    1.61  
    1.62  EOT
    1.63 -		[ -f /usr/share/boot/btmgr -a -f /usr/share/boot/memdisk.lzma ]\
    1.64 -			&& cp /usr/share/boot/btmgr /media/floppy/boot \
    1.65 -			&& unlzma -c /usr/share/boot/memdisk.lzma > \
    1.66 -				/media/floppy/boot/memdisk \
    1.67 -			&& cat >> /media/floppy/boot/grub/menu.lst <<EOT
    1.68 +[ -f /usr/share/boot/btmgr -a -f /usr/share/boot/memdisk.lzma ]\
    1.69 +	&& cat >> /tmp/floppybox.grub.menu <<EOT
    1.70  title Smart Boot Manager
    1.71  	kernel /boot/memtest
    1.72  	initrd /boot/btmgr
    1.73  
    1.74  EOT
    1.75 -		[ -f /usr/share/boot/etherboot ]\
    1.76 -			&& cp /usr/share/boot/etherboot /media/floppy/boot \
    1.77 -			&& cat >> /media/floppy/boot/grub/menu.lst <<EOT
    1.78 +[ -f /usr/share/boot/etherboot ] && cat >> /tmp/floppybox.grub.menu <<EOT
    1.79  title Etherboot
    1.80  	kernel /boot/etherboot
    1.81  
    1.82  EOT
    1.83 -		[ -f /usr/share/boot/memtest.lzma ]\
    1.84 -			&& unlzma -c /usr/share/boot/memtest.lzma > \
    1.85 -				/media/floppy/boot/memtest \
    1.86 -			&& cat >> /media/floppy/boot/grub/menu.lst <<EOT
    1.87 +[ -f /usr/share/boot/memtest.lzma ] && cat >> /tmp/floppybox.grub.menu <<EOT
    1.88  title Memtest86+
    1.89  	kernel /boot/memtest
    1.90  
    1.91  EOT
    1.92 -		[ -f /usr/share/boot/grub.exe.lzma ]\
    1.93 -			&& unlzma -c /usr/share/boot/grub.exe.lzma > \
    1.94 -				/media/floppy/boot/grub.exe \
    1.95 -			&& cat >> /media/floppy/boot/grub/menu.lst <<EOT
    1.96 +[ -f /usr/share/boot/grub.exe.lzma ] && cat >> /tmp/floppybox.grub.menu <<EOT
    1.97  title Grub4Dos
    1.98  	kernel /boot/grub/grub.exe --config-file="configfile (fd0)/boot/grub/menu4dos.lst"
    1.99  
   1.100  EOT
   1.101 -		grub-set-default --root-directory=/media/floppy 0
   1.102 -		umount $DEVICE
   1.103 -		grub --batch <<EOT
   1.104 -root (${DEVICE#/dev/})
   1.105 -setup (${DEVICE#/dev/})
   1.106 -quit
   1.107 -EOT
   1.108 -		;;
   1.109 -	*)	echo "Invalid command $0 $@" 1>&2
   1.110 -		exit 1;;
   1.111 -	esac
   1.112 -	exit 0
   1.113 -fi
   1.114  
   1.115  if [ -z "$XAUTHORITY" ]; then
   1.116  
   1.117 @@ -244,10 +249,7 @@
   1.118        <button>
   1.119          <label>Grub menu</label>
   1.120          <input file icon=\"accessories-text-editor\"></input>
   1.121 -	<action>bootfloppybox call setup-grub \$DEVICE</action>
   1.122 -	<action>mount \$DEVICE /media/floppy</action>
   1.123 -        <action type=\"lauch\">leafpad /media/floppy/boot/grub/menu.lst</action>
   1.124 -	<action>umount \$DEVICE</action>
   1.125 +        <action type=\"lauch\">leafpad /tmp/floppybox.grub.menu</action>
   1.126        </button>
   1.127        <button>
   1.128          <label>Write floppy</label>
   1.129 @@ -314,5 +316,6 @@
   1.130  # Only root can create floppy.
   1.131  check_root
   1.132  gtkdialog --program=BOOT_DIALOG
   1.133 +rm -f /tmp/floppybox.grub.menu
   1.134  
   1.135  exit 0