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@264
|
5 VERSION=20080818
|
pascal@220
|
6 PLOP_URL=http://download.plop.at/plop/bootmngr/plpbt50rc12flp.zip
|
pascal@130
|
7
|
pascal@130
|
8 # Check if user is root.
|
pascal@130
|
9 check_root()
|
pascal@130
|
10 {
|
pascal@130
|
11 if test $(id -u) != 0 ; then
|
pascal@130
|
12 echo -e "
|
pascal@130
|
13 You must be root to run `basename $0`. Please type 'su' and
|
pascal@130
|
14 root password to become super-user.\n"
|
pascal@130
|
15 exit 0
|
pascal@130
|
16 fi
|
pascal@130
|
17 }
|
pascal@130
|
18
|
pascal@213
|
19 # This function is used after each screen to contine or abort install.
|
pascal@213
|
20 check_retval()
|
pascal@213
|
21 {
|
pascal@213
|
22 case $retval in
|
pascal@213
|
23 1)
|
pascal@214
|
24 rm -f /tmp/floppybox.grub.menu
|
pascal@213
|
25 echo -e "\nVoluntary exit.\n" && exit 0 ;;
|
pascal@213
|
26 255)
|
pascal@214
|
27 rm -f /tmp/floppybox.grub.menu
|
pascal@213
|
28 echo -e "ESC pressed.\n" && exit 0 ;;
|
pascal@213
|
29 esac
|
pascal@213
|
30 }
|
pascal@213
|
31
|
pascal@213
|
32 select_floppy()
|
pascal@213
|
33 {
|
pascal@264
|
34 DEVICE="$DIALOG --title \" Floppy device \" --backtitle \"Boot Floppy Creation\" --clear --extra-button --extra-label \"Format\" --colors --radiolist \"
|
pascal@264
|
35 Select boot device
|
pascal@264
|
36 \" 18 70 50"
|
pascal@264
|
37 on=on
|
pascal@264
|
38 for i in /sys/devices/platform/floppy.*/block:*; do
|
pascal@264
|
39 [ -d $i ] || continue
|
pascal@264
|
40 DEVICE="$DEVICE /dev/${i#*block:} 'Floppy in ${i#*block:}' $on"
|
pascal@264
|
41 on=off
|
pascal@264
|
42 done
|
pascal@264
|
43 DEVICE="$DEVICE cdrom \"cdrom image file boot.iso\" $on 2>&1 1>&3"
|
pascal@213
|
44 exec 3>&1
|
pascal@264
|
45 DEVICE=`eval $DEVICE`
|
pascal@213
|
46 retval=$?
|
pascal@213
|
47 exec 3>&-
|
pascal@213
|
48 check_retval
|
pascal@213
|
49 if [ "$retval" = "3" ]; then
|
pascal@264
|
50 case "$DEVICE" in
|
pascal@264
|
51 /dev/*) fdformat -n $DEVICE;;
|
pascal@264
|
52 esac
|
pascal@213
|
53 fi
|
pascal@213
|
54 }
|
pascal@213
|
55
|
pascal@264
|
56 install_grub()
|
pascal@264
|
57 {
|
pascal@264
|
58 case "$DEVICE" in
|
pascal@264
|
59 /dev/*)
|
pascal@213
|
60 mke2fs $DEVICE
|
pascal@213
|
61 mkdir /media/floppy
|
pascal@213
|
62 mount $DEVICE /media/floppy
|
pascal@213
|
63 cp /usr/lib/grub/i386-pc/stage? /media/floppy/boot/grub
|
pascal@264
|
64 cp -a $1 /media/floppy
|
pascal@214
|
65 grub-set-default --root-directory=/media/floppy 0
|
pascal@214
|
66 umount $DEVICE
|
pascal@214
|
67 grub --batch <<EOT
|
pascal@214
|
68 root (${DEVICE#/dev/})
|
pascal@214
|
69 setup (${DEVICE#/dev/})
|
pascal@214
|
70 quit
|
pascal@214
|
71 EOT
|
pascal@214
|
72 ;;
|
pascal@264
|
73 cdrom*)
|
pascal@264
|
74 cp /usr/lib/grub/i386-pc/stage2_eltorito $1/boot/grub
|
pascal@264
|
75 genisoimage -R -o boot.iso -b boot/grub/stage2_eltorito \
|
pascal@264
|
76 -c boot/boot.cat -no-emul-boot -boot-load-size 4 \
|
pascal@264
|
77 -input-charset iso8859-1 -boot-info-table $1
|
pascal@264
|
78 ;;
|
pascal@264
|
79 esac
|
pascal@264
|
80 }
|
pascal@264
|
81
|
pascal@264
|
82 while true; do
|
pascal@264
|
83
|
pascal@264
|
84 if [ "$1" == "call" ]; then
|
pascal@264
|
85 case "$2" in
|
pascal@264
|
86 install)
|
pascal@264
|
87 DIR=/tmp/mkbootfloppy$$
|
pascal@264
|
88 mkdir -p $DIR
|
pascal@264
|
89 DEVICE=$4
|
pascal@264
|
90 file=$5
|
pascal@264
|
91 case "$3" in
|
pascal@264
|
92 grub)
|
pascal@264
|
93 mkdir -p $DIR/boot/grub
|
pascal@264
|
94 cp /tmp/floppybox.grub.menu $DIR/boot/grub/menu.lst
|
pascal@264
|
95 [ -f /usr/share/boot/btmgr -a -f /usr/share/boot/memdisk.lzma ]\
|
pascal@264
|
96 && cat /usr/share/boot/btmgr /dev/zero | \
|
pascal@264
|
97 dd bs=18k count=80 | gzip -9 > \
|
pascal@264
|
98 $DIR/boot/btmgr.gz \
|
pascal@264
|
99 && unlzma -c /usr/share/boot/memdisk.lzma > \
|
pascal@264
|
100 $DIR/boot/memdisk
|
pascal@264
|
101 [ -f /usr/share/boot/plop.gz -a \
|
pascal@264
|
102 -f /usr/share/boot/memdisk.lzma ]\
|
pascal@264
|
103 && zcat /usr/share/boot/plop.gz | cat - /dev/zero | \
|
pascal@264
|
104 dd bs=18k count=80 | gzip -9 > \
|
pascal@264
|
105 $DIR/boot/plop.gz \
|
pascal@264
|
106 && unlzma -c /usr/share/boot/memdisk.lzma > \
|
pascal@264
|
107 $DIR/boot/memdisk
|
pascal@264
|
108 [ -f /usr/share/boot/etherboot ]\
|
pascal@264
|
109 && cp /usr/share/boot/etherboot $DIR/boot
|
pascal@264
|
110 [ -f /boot/gpxe ]\
|
pascal@264
|
111 && cp /boot/gpxe $DIR/boot
|
pascal@264
|
112 [ -f /usr/share/boot/memtest.lzma ]\
|
pascal@264
|
113 && unlzma -c /usr/share/boot/memtest.lzma > \
|
pascal@264
|
114 $DIR/boot/memtest
|
pascal@264
|
115 [ -f /usr/share/boot/grub.exe.lzma ]\
|
pascal@264
|
116 && unlzma -c /usr/share/boot/grub.exe.lzma > \
|
pascal@264
|
117 $DIR/boot/grub.exe
|
pascal@264
|
118 install_grub $DIR
|
pascal@264
|
119 ;;
|
pascal@264
|
120 *)
|
pascal@264
|
121 case "$file" in
|
pascal@264
|
122 *.lzma) action="unlzma -c";;
|
pascal@264
|
123 *.gz) action="zcat";;
|
pascal@264
|
124 *) action="cat";;
|
pascal@264
|
125 esac
|
pascal@264
|
126 case "$DEVICE" in
|
pascal@264
|
127 /dev/*) $action $file > $DEVICE;;
|
pascal@264
|
128 cdrom*)
|
pascal@264
|
129 mkdir -p $DIR/boot/grub
|
pascal@264
|
130 case "$3" in
|
pascal@264
|
131 btmgr|plop)
|
pascal@264
|
132 $action $file | cat - /dev/zero | \
|
pascal@264
|
133 dd bs=18k count=80 | \
|
pascal@264
|
134 gzip -9 > $DIR/boot/$3.gz
|
pascal@264
|
135 unlzma -c /usr/share/boot/memdisk.lzma \
|
pascal@264
|
136 > $DIR/boot/memdisk
|
pascal@264
|
137 cat > $DIR/boot/grub/menu.lst << EOT
|
pascal@264
|
138 timeout 0
|
pascal@264
|
139 title $3
|
pascal@264
|
140 kernel /boot/memdisk floppy c=80 h=2 s=18
|
pascal@264
|
141 initrd /boot/$3.gz
|
pascal@264
|
142 EOT
|
pascal@264
|
143 ;;
|
pascal@264
|
144 *) $action $file > $DIR/boot/$3
|
pascal@264
|
145 cat > $DIR/boot/grub/menu.lst << EOT
|
pascal@264
|
146 timeout 0
|
pascal@264
|
147 title $3
|
pascal@264
|
148 kernel /boot/$3
|
pascal@264
|
149 EOT
|
pascal@264
|
150 ;;
|
pascal@264
|
151 esac
|
pascal@264
|
152 install_grub $DIR
|
pascal@264
|
153 ;;
|
pascal@264
|
154 esac
|
pascal@264
|
155 ;;
|
pascal@264
|
156 esac
|
pascal@264
|
157 rm -rf $DIR
|
pascal@264
|
158 ;;
|
pascal@220
|
159 get-plop)
|
pascal@264
|
160 mkdir -p /tmp/get-plop$$/plop-1.0/fs/$(dirname $3)
|
pascal@264
|
161 wget -O - $PLOP_URL | unzip -p /dev/stdin | dd bs=18k count=6 |\
|
pascal@264
|
162 gzip -9 > /tmp/get-plop$$/plop-1.0/fs/$3
|
pascal@264
|
163 if [ -s /tmp/get-plop$$/plop-1.0/fs/$3 ]; then
|
pascal@264
|
164 cat > /tmp/get-plop$$/plop-1.0/receipt <<EOT
|
pascal@220
|
165 PACKAGE="plop"
|
pascal@220
|
166 VERSION="1.0"
|
pascal@220
|
167 CATEGORY="non-free"
|
pascal@220
|
168 SHORT_DESC="Plop boot manager."
|
pascal@220
|
169 WEB_SITE="http://www.plop.at/en/bootmanager.html"
|
pascal@220
|
170 EOT
|
pascal@264
|
171 ( cd /tmp/get-plop$$ ; tazpkg pack plop-1.0 )
|
pascal@264
|
172 tazpkg install /tmp/get-plop$$/plop-1.0.tazpkg
|
pascal@264
|
173 fi
|
pascal@220
|
174 rm -rf /tmp/get-plop$$
|
pascal@220
|
175 ;;
|
pascal@214
|
176 *) echo "Invalid command $0 $@" 1>&2
|
pascal@214
|
177 exit 1;;
|
pascal@214
|
178 esac
|
pascal@214
|
179 exit 0
|
pascal@214
|
180 fi
|
pascal@214
|
181
|
pascal@214
|
182 cat > /tmp/floppybox.grub.menu <<EOT
|
pascal@213
|
183 default saved
|
pascal@264
|
184 timeout 8
|
pascal@264
|
185 color yellow/brown light-green/black
|
pascal@213
|
186
|
pascal@264
|
187 EOT
|
pascal@264
|
188 [ -f /boot/gpxe ] && cat >> /tmp/floppybox.grub.menu <<EOT
|
pascal@264
|
189 title gPXE (Boot from the Web, PXE/iSCSI/AoE support)
|
pascal@264
|
190 kernel /boot/gpxe $(dd if=/boot/gpxe bs=1 skip=519 count=255 2>/dev/null | strings)
|
pascal@264
|
191
|
pascal@264
|
192 EOT
|
pascal@264
|
193 [ -f /usr/share/boot/btmgr -a -f /usr/share/boot/memdisk.lzma ]\
|
pascal@264
|
194 && cat >> /tmp/floppybox.grub.menu <<EOT
|
pascal@264
|
195 title Smart Boot Manager (text - boot floppy, hard disk or CD/DVD)
|
pascal@264
|
196 kernel /boot/memdisk floppy c=80 h=2 s=18
|
pascal@264
|
197 initrd /boot/btmgr.gz
|
pascal@264
|
198
|
pascal@264
|
199 EOT
|
pascal@264
|
200 [ -f /usr/share/boot/plop.gz -a -f /usr/share/boot/memdisk.lzma ]\
|
pascal@264
|
201 && cat >> /tmp/floppybox.grub.menu <<EOT
|
pascal@264
|
202 title Plop Boot Manager (graphic - boot floppy, hard disk, CD/DVD or USB)
|
pascal@264
|
203 kernel /boot/memdisk floppy c=80 h=2 s=18
|
pascal@264
|
204 initrd /boot/plop.gz
|
pascal@264
|
205
|
pascal@264
|
206 EOT
|
pascal@264
|
207 cat >> /tmp/floppybox.grub.menu <<EOT
|
pascal@213
|
208 title Windows (example on /dev/hda1)
|
pascal@213
|
209 rootnoverify (hd0,0)
|
pascal@213
|
210 chainloader +1
|
pascal@213
|
211 save default
|
pascal@213
|
212
|
pascal@213
|
213 title Slitaz Live (example on /dev/hda1)
|
pascal@213
|
214 root (hd0,0)
|
pascal@213
|
215 kernel /boot/bzImage rw root=/dev/null vga=normal
|
pascal@213
|
216 initrd /boot/rootfs.gz
|
pascal@213
|
217 save default
|
pascal@213
|
218
|
pascal@213
|
219 title Slitaz Installed (example on /dev/hda2)
|
pascal@213
|
220 root (hd0,1)
|
pascal@213
|
221 kernel /boot/bzImage ro root=/dev/hda2 vga=normal
|
pascal@213
|
222 save default
|
pascal@213
|
223
|
pascal@213
|
224 EOT
|
pascal@214
|
225 [ -f /usr/share/boot/etherboot ] && cat >> /tmp/floppybox.grub.menu <<EOT
|
pascal@222
|
226 title Etherboot (LAN boot, PXE or NBI)
|
pascal@213
|
227 kernel /boot/etherboot
|
pascal@213
|
228
|
pascal@213
|
229 EOT
|
pascal@214
|
230 [ -f /usr/share/boot/memtest.lzma ] && cat >> /tmp/floppybox.grub.menu <<EOT
|
pascal@264
|
231 title Memtest86+ (Test system memory)
|
pascal@213
|
232 kernel /boot/memtest
|
pascal@213
|
233
|
pascal@213
|
234 EOT
|
pascal@214
|
235 [ -f /usr/share/boot/grub.exe.lzma ] && cat >> /tmp/floppybox.grub.menu <<EOT
|
pascal@213
|
236 title Grub4Dos
|
pascal@213
|
237 kernel /boot/grub/grub.exe --config-file="configfile (fd0)/boot/grub/menu4dos.lst"
|
pascal@213
|
238
|
pascal@213
|
239 EOT
|
pascal@213
|
240
|
pascal@213
|
241 if [ -z "$XAUTHORITY" ]; then
|
pascal@213
|
242
|
pascal@213
|
243 : ${DIALOG=dialog}
|
pascal@213
|
244
|
pascal@213
|
245 DEVICE=/dev/fd0
|
pascal@213
|
246 while true; do
|
pascal@213
|
247 exec 3>&1
|
pascal@213
|
248 ID_SOURCE=`$DIALOG --title " Choose a boot floppy " \
|
pascal@213
|
249 --backtitle "Boot Floppy Creation on $DEVICE" --clear \
|
pascal@213
|
250 --extra-button --extra-label "Change floppy" \
|
pascal@213
|
251 --yes-label "Install" \
|
pascal@213
|
252 --no-label "Quit" \
|
pascal@213
|
253 --colors --radiolist "
|
pascal@264
|
254 Create a floppy or a cdrom to boot a LiveCD, in a PXE network...
|
pascal@264
|
255 May need a floppy disk in drive. Erase the whole floppy disk.
|
pascal@213
|
256 " 18 70 50\
|
pascal@220
|
257 SmartBtmgr "Boot any partition or ATAPI CD-ROM." on \
|
pascal@220
|
258 Plop "Boot harddisk floppy CD/DVD or USB." off \
|
pascal@220
|
259 Etherboot "Replacement for proprietary PXE ROMs." off \
|
pascal@223
|
260 gPXE "Boot from http://boot.slitaz.org/" off \
|
pascal@220
|
261 Memtest86+ "Memory failures detection tool." off \
|
pascal@220
|
262 Grub "Boot loader with command shell." off 2>&1 1>&3`
|
pascal@213
|
263 retval=$?
|
pascal@213
|
264 exec 3>&-
|
pascal@213
|
265 check_retval
|
pascal@213
|
266 if [ "$retval" = "3" ]; then
|
pascal@213
|
267 select_floppy
|
pascal@213
|
268 continue;
|
pascal@213
|
269 fi
|
pascal@213
|
270 while read key file pkg; do
|
pascal@213
|
271 [ "$key" = "$ID_SOURCE" ] || continue
|
pascal@213
|
272 if [ ! -f "$file" ]; then
|
pascal@213
|
273 $DIALOG --title " Install package " --colors \
|
pascal@213
|
274 --backtitle "Boot Floppy Creation" --clear \
|
pascal@213
|
275 --yes-label "Install" \
|
pascal@213
|
276 --no-label "Quit" \
|
pascal@213
|
277 --yesno "The package $pkg is not yet installed. Install it ?" 18 70
|
pascal@213
|
278 retval=$?
|
pascal@220
|
279 if [ "$pkg" = "plop" ]; then
|
pascal@220
|
280 bootfloppybox call get-plop $file
|
pascal@220
|
281 else
|
pascal@264
|
282 tazpkg get-install $pkg
|
pascal@220
|
283 fi
|
pascal@213
|
284 fi
|
pascal@264
|
285 bootfloppybox call install "$pkg" "$DEVICE" "$file"
|
pascal@213
|
286 exit 0
|
pascal@213
|
287 done <<EOT
|
pascal@213
|
288 SmartBtmgr /usr/share/boot/btmgr btmgr
|
pascal@220
|
289 Plop /usr/share/boot/plop.gz plop
|
pascal@213
|
290 Etherboot /usr/share/boot/etherboot etherboot
|
pascal@222
|
291 gPXE /boot/gpxe gpxe
|
pascal@213
|
292 Memtest86+ /usr/share/boot/memtest.lzma memtest
|
pascal@213
|
293 Grub /usr/sbin/grub grub
|
pascal@213
|
294 EOT
|
pascal@213
|
295 done
|
pascal@213
|
296 fi
|
pascal@264
|
297 #
|
pascal@264
|
298 # Describe gPXE arguments.
|
pascal@264
|
299 #
|
pascal@264
|
300 export HELP='
|
pascal@264
|
301 <window title="gPXE forced url" icon-name="gtk-floppy">
|
pascal@264
|
302 <vbox>
|
pascal@264
|
303 <text use-markup="true">
|
pascal@264
|
304 <label>"
|
pascal@264
|
305 <b>Web boot parameters</b>"
|
pascal@264
|
306 </label>
|
pascal@264
|
307 </text>
|
pascal@264
|
308 <frame>
|
pascal@264
|
309 <text wrap="true" width-chars="58" use-markup="true">
|
pascal@264
|
310 <label>
|
pascal@264
|
311 "Without parameters (i.e. with an empty Boot URL) gPXE will perform a normal
|
pascal@264
|
312 PXE boot: IP configuration with DHCP and download DHCP bootfile with TFTP.
|
pascal@264
|
313
|
pascal@264
|
314 You can override the DHCP bootfile with an Boot URL such as
|
pascal@264
|
315 <i>tftp://192.168.0.1/pxe/pxeloader</i>, <i>http://mirror.slitaz.org/pxe/pxelinux.0</i>,
|
pascal@264
|
316 or <i>x-tftm://192.168.0.201//lts/vmlinuz.ltsp</i>.
|
pascal@264
|
317
|
pascal@264
|
318 You can override IP configuration too (usefull without DHCP server), example:
|
pascal@264
|
319 <i>ip=192.168.0.10/24 gw=192.168.0.1 dns=192.168.0.1 nodhcp
|
pascal@264
|
320 url=http://mirror.slitaz.org/pxe/pxelinux.0</i>
|
pascal@264
|
321
|
pascal@264
|
322 The <i>nodhcp</i> keyword avoids dhcp timeouts and the <i>url=</i> keyword is
|
pascal@264
|
323 optionnal when the url is the only argument.
|
pascal@264
|
324 "
|
pascal@264
|
325 </label>
|
pascal@264
|
326 </text>
|
pascal@264
|
327 </frame>
|
pascal@264
|
328 </vbox>
|
pascal@264
|
329 </window>
|
pascal@264
|
330 '
|
pascal@264
|
331 #
|
pascal@130
|
332 # Write bootfloppy image to floppy device.
|
pascal@130
|
333 #
|
pascal@130
|
334 BOOT_DIALOG='
|
pascal@139
|
335 <window title="bootfloppybox" icon-name="gtk-floppy">
|
pascal@130
|
336 <vbox>
|
pascal@130
|
337
|
pascal@130
|
338 <text use-markup="true">
|
pascal@130
|
339 <label>
|
pascal@130
|
340 "
|
pascal@130
|
341 <b>SliTaz - Bootfloppybox</b>"
|
pascal@130
|
342 </label>
|
pascal@130
|
343 </text>
|
pascal@134
|
344 <text wrap="false" width-chars="44" use-markup="true">
|
pascal@130
|
345 <label>
|
pascal@130
|
346 "
|
pascal@264
|
347 Create a floppy or a cdrom to boot a LiveCD, in a PXE network or WEB...
|
pascal@264
|
348 May need a floppy disk in drive. Erase the whole floppy disk.
|
pascal@130
|
349 "
|
pascal@130
|
350 </label>
|
pascal@130
|
351 </text>
|
pascal@130
|
352
|
pascal@130
|
353 <frame Floppy disk drive>
|
pascal@130
|
354 <hbox>
|
pascal@130
|
355 <text use-markup="true">
|
pascal@132
|
356 <label>"<b>Device : </b>"</label>
|
pascal@130
|
357 </text>
|
pascal@264
|
358 <combobox>
|
pascal@264
|
359 <variable>DEVICE</variable>'
|
pascal@264
|
360 for i in /sys/devices/platform/floppy.*/block:*; do
|
pascal@264
|
361 [ -d $i ] || continue
|
pascal@264
|
362 BOOT_DIALOG="$BOOT_DIALOG
|
pascal@264
|
363 <item>/dev/${i#*block:}</item>"
|
pascal@264
|
364 on=off
|
pascal@264
|
365 done
|
pascal@264
|
366 tmp=' <item>cdrom image (boot.iso)</item>
|
pascal@264
|
367 </combobox>
|
pascal@132
|
368 <button>
|
pascal@132
|
369 <label>Format floppy</label>
|
pascal@132
|
370 <input file icon="forward"></input>
|
pascal@264
|
371 <action>case "$DEVICE" in /dev/*) fdformat -n $DEVICE;; esac</action>
|
pascal@132
|
372 </button>
|
pascal@130
|
373 </hbox>
|
pascal@130
|
374 </frame>
|
pascal@222
|
375 <notebook labels="LiveCD|USB|PXE Network|WEB Network|Memory Test|Expert">
|
pascal@130
|
376 '
|
pascal@264
|
377 BOOT_DIALOG="$BOOT_DIALOG$tmp"
|
pascal@130
|
378 while read name file pkg desc; do
|
pascal@130
|
379 tmp="<frame $name>
|
pascal@130
|
380 <hbox>
|
pascal@130
|
381 <text wrap=\"true\" width-chars=\"44\" use-markup=\"true\">
|
pascal@130
|
382 <label>
|
pascal@130
|
383 \"
|
pascal@130
|
384 $(echo -e $desc)
|
pascal@130
|
385 \"
|
pascal@130
|
386 </label>
|
pascal@130
|
387 </text>
|
pascal@130
|
388 </hbox>
|
pascal@264
|
389 <hbox>
|
pascal@130
|
390 "
|
pascal@130
|
391 if [ -f $file ]; then
|
pascal@135
|
392 if [ "$pkg" = "grub" ]; then
|
pascal@135
|
393 tmp="$tmp
|
pascal@135
|
394 <button>
|
pascal@200
|
395 <label>Grub menu</label>
|
pascal@200
|
396 <input file icon=\"accessories-text-editor\"></input>
|
pascal@214
|
397 <action type=\"lauch\">leafpad /tmp/floppybox.grub.menu</action>
|
pascal@200
|
398 </button>
|
pascal@135
|
399 "
|
pascal@233
|
400 elif [ "$pkg" = "gpxe" ]; then
|
pascal@233
|
401 tmp="$tmp
|
pascal@233
|
402 <text wrap=\"true\" use-markup=\"true\">
|
pascal@233
|
403 <label> \"<b>Boot URL:</b>\" </label>
|
pascal@233
|
404 </text>
|
pascal@233
|
405 <entry>
|
pascal@233
|
406 <default>$(dd if=$file bs=1 skip=519 count=255 2>/dev/null | strings)</default>
|
pascal@233
|
407 <variable>URL</variable>
|
pascal@233
|
408 </entry>
|
pascal@264
|
409 </hbox>
|
pascal@264
|
410 <hbox>
|
pascal@264
|
411 <button help>
|
pascal@264
|
412 <action type=\"launch\">HELP</action>
|
pascal@264
|
413 </button>
|
pascal@233
|
414 <button>
|
pascal@233
|
415 <label>Update</label>
|
pascal@233
|
416 <input file icon=\"reload\"></input>
|
pascal@233
|
417 <action>echo -n \"\$URL\" | cat - /dev/zero | dd conv=notrunc bs=1 count=255 seek=519 of=$file 2>/dev/null</action>
|
pascal@233
|
418 </button>
|
pascal@264
|
419 "
|
pascal@264
|
420 fi
|
pascal@264
|
421 tmp="$tmp
|
pascal@233
|
422 <button>
|
pascal@233
|
423 <label>Write floppy</label>
|
pascal@233
|
424 <input file icon=\"forward\"></input>
|
pascal@264
|
425 <action>bootfloppybox call install \"$pkg\" \"\$DEVICE\" \"$file\"</action>
|
pascal@233
|
426 </button>
|
pascal@233
|
427 </hbox>
|
pascal@233
|
428 </frame>
|
pascal@233
|
429 "
|
pascal@130
|
430 else
|
pascal@264
|
431 tmp2="tazpkg get-install $pkg --forced"
|
pascal@220
|
432 [ "$pkg" = "plop" ] && tmp2="bootfloppybox call get-plop $file"
|
pascal@130
|
433 tmp="$tmp
|
pascal@157
|
434 <text wrap=\"true\" width-chars=\"34\" use-markup=\"true\">
|
pascal@130
|
435 <label>
|
pascal@130
|
436 \"<i>The package <b>$pkg</b> is not yet installed</i>\"
|
pascal@130
|
437 </label>
|
pascal@130
|
438 </text>
|
pascal@157
|
439 <button>
|
pascal@157
|
440 <input file icon=\"go-jump\"></input>
|
pascal@157
|
441 <label>Install</label>
|
pascal@264
|
442 <action>[ -f /var/lib/tazpkg/packages.list ] || tazpkg recharge</action>
|
pascal@264
|
443 <action>xterm -fa MiscFixed -fs 11 -bg gray93 -fg black -geometry 80x17 -title \"$pkg install\" -e \"$tmp2 ; sleep 2\"</action>
|
pascal@221
|
444 <action type=\"exit\">restart</action>
|
pascal@157
|
445 </button>
|
pascal@130
|
446 </hbox>
|
pascal@130
|
447 </frame>
|
pascal@130
|
448 "
|
pascal@130
|
449 fi
|
pascal@130
|
450 BOOT_DIALOG="$BOOT_DIALOG$tmp"
|
pascal@130
|
451 done <<EOT
|
pascal@130
|
452 SmartBtmgr /usr/share/boot/btmgr btmgr This OS independent Smart Boot Manager can boot any partition or ATAPI CD-ROM.
|
pascal@222
|
453 Plop /usr/share/boot/plop.gz plop This non free Boot Manager can boot floppy, hardisk, USB or CD/DVD. Hit Ctrl-ESC for text mode.
|
pascal@130
|
454 Etherboot /usr/share/boot/etherboot etherboot This network bootloader provides a replacement for proprietary PXE or NBI ROMs.
|
pascal@233
|
455 gPXE /boot/gpxe gpxe PXE / iSCSI / AoE network bootloader.
|
pascal@130
|
456 Memtest86+ /usr/share/boot/memtest.lzma memtest Memory failures detection tool.
|
pascal@135
|
457 Grub /usr/sbin/grub grub General purpose boot loader with command shell
|
pascal@130
|
458 EOT
|
pascal@130
|
459 tmp='
|
pascal@134
|
460 </notebook>
|
pascal@130
|
461 <hbox>
|
pascal@130
|
462 <button>
|
pascal@130
|
463 <input file icon="exit"></input>
|
pascal@130
|
464 <label>Exit</label>
|
pascal@130
|
465 <action type="exit">Exit</action>
|
pascal@130
|
466 </button>
|
pascal@130
|
467 </hbox>
|
pascal@130
|
468
|
pascal@130
|
469 </vbox>
|
pascal@130
|
470 </window>
|
pascal@130
|
471 '
|
pascal@130
|
472 BOOT_DIALOG="$BOOT_DIALOG$tmp"
|
pascal@130
|
473 export BOOT_DIALOG
|
pascal@130
|
474
|
pascal@130
|
475 # Only root can create floppy.
|
pascal@130
|
476 check_root
|
pascal@221
|
477 gtkdialog --program=BOOT_DIALOG | grep -q 'EXIT="restart"' && continue
|
pascal@214
|
478 rm -f /tmp/floppybox.grub.menu
|
pascal@130
|
479 exit 0
|
pascal@221
|
480 done
|