slitaz-tools annotate tinyutils/bootfloppybox @ rev 135

bootfloppybox: add grub
author Pascal Bellard <pascal.bellard@slitaz.org>
date Wed Apr 09 19:50:17 2008 +0000 (2008-04-09)
parents 7c2e8f71cfda
children 490925fcedbe
rev   line source
pascal@130 1 #! /bin/sh
pascal@130 2 #
pascal@130 3 # Gtkdialog box for the mount command. Part of SliTaz tools.
pascal@130 4 #
pascal@130 5 VERSION=20080409
pascal@130 6
pascal@130 7 # Check if user is root.
pascal@130 8 check_root()
pascal@130 9 {
pascal@130 10 if test $(id -u) != 0 ; then
pascal@130 11 echo -e "
pascal@130 12 You must be root to run `basename $0`. Please type 'su' and
pascal@130 13 root password to become super-user.\n"
pascal@130 14 exit 0
pascal@130 15 fi
pascal@130 16 }
pascal@130 17
pascal@130 18 # Write bootfloppy image to floppy device.
pascal@130 19 #
pascal@130 20 BOOT_DIALOG='
pascal@130 21 <window title="bootfloppybox" icon-name="media-flash">
pascal@130 22 <vbox>
pascal@130 23
pascal@130 24 <text use-markup="true">
pascal@130 25 <label>
pascal@130 26 "
pascal@130 27 <b>SliTaz - Bootfloppybox</b>"
pascal@130 28 </label>
pascal@130 29 </text>
pascal@134 30 <text wrap="false" width-chars="44" use-markup="true">
pascal@130 31 <label>
pascal@130 32 "
pascal@135 33 Create a floppy to boot a LiveCD, in a PXE network...
pascal@130 34 Need a floppy disk in drive. Erase the whole floppy disk.
pascal@130 35 "
pascal@130 36 </label>
pascal@130 37 </text>
pascal@130 38
pascal@130 39 <frame Floppy disk drive>
pascal@130 40 <hbox>
pascal@130 41 <text use-markup="true">
pascal@132 42 <label>"<b>Device : </b>"</label>
pascal@130 43 </text>
pascal@130 44 <entry>
pascal@130 45 <default>/dev/fd0</default>
pascal@130 46 <variable>DEVICE</variable>
pascal@130 47 </entry>
pascal@132 48 <button>
pascal@132 49 <label>Format floppy</label>
pascal@132 50 <input file icon="forward"></input>
pascal@132 51 <action>fdformat -n $DEVICE</action>
pascal@132 52 </button>
pascal@130 53 </hbox>
pascal@130 54 </frame>
pascal@135 55 <notebook labels="LiveCD|PXE Network|Memory Test|Expert">
pascal@130 56 '
pascal@130 57 while read name file pkg desc; do
pascal@130 58 tmp="<frame $name>
pascal@130 59 <hbox>
pascal@130 60 <text wrap=\"true\" width-chars=\"44\" use-markup=\"true\">
pascal@130 61 <label>
pascal@130 62 \"
pascal@130 63 $(echo -e $desc)
pascal@130 64 \"
pascal@130 65 </label>
pascal@130 66 </text>
pascal@130 67 </hbox>
pascal@130 68 "
pascal@130 69 if [ -f $file ]; then
pascal@130 70 case "$file" in
pascal@131 71 *.lzma) action="unlzma -c";;
pascal@130 72 *.gz) action="zcat";;
pascal@130 73 *) action="cat";;
pascal@130 74 esac
pascal@135 75 if [ "$pkg" = "grub" ]; then
pascal@135 76 tmp="$tmp
pascal@135 77 <hbox>
pascal@135 78 <button>
pascal@135 79 <label>Write floppy</label>
pascal@135 80 <input file icon=\"forward\"></input>
pascal@135 81 <action>mke2fs \$DEVICE</action>
pascal@135 82 <action>mkdir /media/floppy ; mount \$DEVICE /media/floppy</action>
pascal@135 83 <action>mkdir -p /media/floppy/boot/grub</action>
pascal@135 84 <action>cp /usr/lib/grub/i386-pc/stage? /media/floppy/boot/grub</action>
pascal@135 85 <action>umount \$DEVICE</action>
pascal@135 86 <action>echo -e \"root (\${DEVICE#/dev/})\\nsetup (\${DEVICE#/dev/})\\nquit\" | grub --batch </action>
pascal@135 87 </button>
pascal@135 88 </hbox>
pascal@135 89 </frame>
pascal@135 90 "
pascal@135 91 else
pascal@135 92 tmp="$tmp
pascal@130 93 <hbox>
pascal@130 94 <button>
pascal@130 95 <label>Write floppy</label>
pascal@130 96 <input file icon=\"forward\"></input>
pascal@130 97 <action>$action $file > \$DEVICE</action>
pascal@130 98 </button>
pascal@130 99 </hbox>
pascal@130 100 </frame>
pascal@130 101 "
pascal@135 102 fi
pascal@130 103 else
pascal@130 104 tmp="$tmp
pascal@130 105 <hbox>
pascal@130 106 <text wrap=\"true\" width-chars=\"44\" use-markup=\"true\">
pascal@130 107 <label>
pascal@130 108 \"<i>The package <b>$pkg</b> is not yet installed</i>\"
pascal@130 109 </label>
pascal@130 110 </text>
pascal@130 111 </hbox>
pascal@130 112 </frame>
pascal@130 113 "
pascal@130 114 fi
pascal@130 115 BOOT_DIALOG="$BOOT_DIALOG$tmp"
pascal@130 116 done <<EOT
pascal@130 117 SmartBtmgr /usr/share/boot/btmgr btmgr This OS independent Smart Boot Manager can boot any partition or ATAPI CD-ROM.
pascal@130 118 Etherboot /usr/share/boot/etherboot etherboot This network bootloader provides a replacement for proprietary PXE or NBI ROMs.
pascal@130 119 Memtest86+ /usr/share/boot/memtest.lzma memtest Memory failures detection tool.
pascal@135 120 Grub /usr/sbin/grub grub General purpose boot loader with command shell
pascal@130 121 EOT
pascal@130 122 tmp='
pascal@134 123 </notebook>
pascal@130 124 <hbox>
pascal@130 125 <button>
pascal@130 126 <input file icon="exit"></input>
pascal@130 127 <label>Exit</label>
pascal@130 128 <action type="exit">Exit</action>
pascal@130 129 </button>
pascal@130 130 </hbox>
pascal@130 131
pascal@130 132 </vbox>
pascal@130 133 </window>
pascal@130 134 '
pascal@130 135 BOOT_DIALOG="$BOOT_DIALOG$tmp"
pascal@130 136 export BOOT_DIALOG
pascal@130 137
pascal@130 138 # Only root can create floppy.
pascal@130 139 check_root
pascal@130 140 gtkdialog --program=BOOT_DIALOG
pascal@130 141
pascal@130 142 exit 0