rev |
line source |
spode@0
|
1 #!/bin/sh
|
spode@0
|
2 # Tazusb - SliTaz LiveUSB
|
spode@0
|
3 #
|
spode@0
|
4 # Tazusb is an utility to generate, configure and manipulate SliTaz LiveUSB
|
spode@0
|
5 # bootable media and/or USB /home partition, such as flash keys, SD card or
|
spode@0
|
6 # USB harddisk.
|
spode@0
|
7 #
|
spode@0
|
8 # Authors : Christophe Lincoln (Pankso) <pankso@slitaz.org>
|
spode@0
|
9 # Andrew Miller (Spode) <spode@spodesabode.com>
|
spode@0
|
10 #
|
erjo@33
|
11 VERSION=1.2.2
|
spode@0
|
12
|
spode@0
|
13 COMMAND=$1
|
spode@0
|
14 TARGET_ROOT=/media/flash
|
spode@0
|
15 DRIVE_NAME=`cat /proc/sys/dev/cdrom/info | grep "drive name" | cut -f 3`
|
spode@0
|
16 CDROM=/dev/$DRIVE_NAME
|
spode@0
|
17
|
spode@0
|
18 #
|
spode@0
|
19 # Tazusb functions
|
spode@0
|
20 #
|
spode@0
|
21
|
spode@0
|
22 # Print the usage.
|
spode@0
|
23 usage ()
|
spode@0
|
24 {
|
spode@0
|
25 echo -e "\nSliTaz Live USB - Version: $VERSION\n
|
spode@0
|
26 \033[1mUsage: \033[0m `basename $0` [command] [compression|device]
|
spode@0
|
27 \033[1mCommands: \033[0m\n
|
spode@0
|
28 usage Print this short usage.
|
spode@0
|
29 writefs Write the current filesystem to rootfs.gz.
|
spode@0
|
30 tazSupported compression: lzma. gzip, none.
|
pankso@3
|
31 format Format and label device with ext3 filesystem
|
pankso@3
|
32 (for LiveUSB or /home).
|
pankso@13
|
33 gen-liveusb Generate a bootable LiveUSB using files from the LiveCD.
|
paul@26
|
34 gen-swap Create or recreate and activate additional swap memory.
|
paul@26
|
35 gen-iso2usb Generate a bootable LiveUSB using files from ISO file.
|
paul@26
|
36 clean Remove old backup filesystems to free disk space.\n"
|
spode@0
|
37 }
|
spode@0
|
38
|
spode@0
|
39 # Status function.
|
spode@0
|
40 status()
|
spode@0
|
41 {
|
spode@0
|
42 local CHECK=$?
|
spode@0
|
43 echo -en "\\033[70G[ "
|
spode@0
|
44 if [ $CHECK = 0 ]; then
|
spode@0
|
45 echo -en "\\033[1;33mOK"
|
spode@0
|
46 else
|
spode@0
|
47 echo -en "\\033[1;31mFailed"
|
spode@0
|
48 fi
|
spode@0
|
49 echo -e "\\033[0;39m ]"
|
spode@0
|
50 }
|
spode@0
|
51
|
spode@0
|
52 # Exit if user is not root.
|
spode@0
|
53 check_root()
|
spode@0
|
54 {
|
spode@0
|
55 if test $(id -u) != 0 ; then
|
spode@0
|
56 echo -e "\nThis program requires being run as root.\n"
|
spode@0
|
57 exit 0
|
spode@0
|
58 fi
|
spode@0
|
59 }
|
spode@0
|
60
|
paul@41
|
61 # Display a list of available partitions.
|
hacker@12
|
62 fdisk_list()
|
hacker@12
|
63 {
|
pankso@16
|
64 echo "----"
|
hacker@12
|
65 fdisk -l | grep ^/dev/sd*
|
pankso@16
|
66 echo "----"
|
hacker@12
|
67 }
|
hacker@12
|
68
|
hacker@12
|
69 # We need a USB media to install.
|
hacker@12
|
70 ask_for_device()
|
hacker@12
|
71 {
|
hacker@12
|
72 echo -n "\
|
hacker@12
|
73 Please specify the target USB device to $COMMAND. You can type 'list' to
|
hacker@12
|
74 get a list of devices, type 'exit' or give an empty value to exit.
|
hacker@12
|
75
|
hacker@12
|
76 Device to use : "; read anser
|
hacker@12
|
77 while [ "$anser" == "list" ]; do
|
hacker@12
|
78 fdisk_list
|
hacker@12
|
79 echo -n "Device to use : "; read anser
|
hacker@12
|
80 done
|
hacker@12
|
81 if [ "$anser" = "" -o "$anser" = "exit" ]; then
|
hacker@12
|
82 echo -e "\nNo specified device or exit.\n"
|
hacker@12
|
83 exit 0
|
hacker@12
|
84 else
|
hacker@12
|
85 DEVICE=$anser
|
hacker@12
|
86 fi
|
hacker@12
|
87 }
|
hacker@12
|
88
|
spode@0
|
89 # Verify a device exists before format or install
|
spode@0
|
90 check_for_device()
|
spode@0
|
91 {
|
spode@9
|
92 IFDEV=`fdisk -l | grep $DEVICE`
|
spode@9
|
93 if [ -z "$IFDEV" ]; then
|
spode@0
|
94 echo -e "\nUnable to find device: $DEVICE\n"
|
spode@0
|
95 exit 0
|
spode@0
|
96 fi
|
spode@0
|
97 }
|
spode@0
|
98
|
paul@41
|
99 # gets the UUID and filesystem type
|
spode@0
|
100 get_part_info()
|
spode@0
|
101 {
|
spode@9
|
102 UUID=`blkid -s UUID -o value $DEVICE`
|
spode@9
|
103 FSTYPE=`blkid -s TYPE -o value $DEVICE`
|
spode@0
|
104 }
|
spode@0
|
105
|
spode@0
|
106 # Format target device and label partition.
|
spode@0
|
107 mkfs_ext3()
|
spode@0
|
108 {
|
spode@0
|
109 echo -n "Please specify a label for the partition (TazUSB): "
|
spode@0
|
110 read label
|
spode@0
|
111
|
spode@0
|
112 if [ -z $label ]; then
|
spode@0
|
113 label=TazUSB
|
spode@0
|
114 fi
|
spode@0
|
115
|
spode@0
|
116 echo "Label : $label"
|
spode@9
|
117 echo "Mkfs : mkfs.ext3 -L \"$label\" $DEVICE"
|
spode@0
|
118 echo "" && sleep 2
|
spode@9
|
119 mkfs.ext3 -L "$label" $DEVICE
|
spode@0
|
120
|
spode@0
|
121 }
|
spode@0
|
122
|
spode@0
|
123 # Mount an existing USB device.
|
spode@0
|
124 unmount_target_usb()
|
spode@0
|
125 {
|
spode@0
|
126 # If mount point is in use, unmount
|
spode@0
|
127 if mount | grep $TARGET_ROOT; then
|
spode@0
|
128 umount $TARGET_ROOT
|
spode@0
|
129 fi
|
spode@0
|
130
|
spode@0
|
131 # Device could be mounted elsewhere, so unmount
|
spode@9
|
132 if mount | grep $DEVICE; then
|
spode@0
|
133 echo "Unmounting USB target device..."
|
spode@9
|
134 umount $DEVICE
|
spode@0
|
135 fi
|
spode@0
|
136 }
|
spode@0
|
137
|
spode@0
|
138 # Mount an existing USB device.
|
spode@0
|
139 mount_target_usb()
|
spode@0
|
140 {
|
spode@0
|
141 echo "Mounting USB target device..."
|
spode@0
|
142 mkdir -p $TARGET_ROOT
|
spode@9
|
143 mount $DEVICE $TARGET_ROOT 2>/dev/null
|
spode@0
|
144 }
|
spode@0
|
145
|
spode@0
|
146 # Mount SliTaz LiveCD to get needed files.
|
spode@0
|
147 mount_cdrom()
|
spode@0
|
148 {
|
spode@0
|
149 echo "Mounting cdrom device..."
|
spode@0
|
150
|
spode@0
|
151 if mount | grep /media/cdrom; then
|
spode@0
|
152 umount /media/cdrom
|
spode@0
|
153 fi
|
spode@0
|
154
|
spode@0
|
155 mkdir -p /media/cdrom
|
hacker@12
|
156 mount -r -t iso9660 $CDROM /media/cdrom 2>/dev/null
|
spode@0
|
157
|
spode@0
|
158 if [ ! -f /media/cdrom/boot/rootfs.gz ]; then
|
hacker@12
|
159 echo -e "\nUnable to mount cdrom or to find a filesystem on it (rootfs.gz).\n"
|
spode@0
|
160 exit 0
|
spode@0
|
161 fi
|
spode@0
|
162 }
|
spode@0
|
163
|
erjo@24
|
164 # Mount SliTaz ISO to get needed files.
|
erjo@24
|
165 mount_iso()
|
erjo@24
|
166 {
|
erjo@24
|
167 if mount | grep /media/cdrom ; then
|
erjo@24
|
168 umount /media/cdrom
|
erjo@24
|
169 fi
|
erjo@24
|
170
|
erjo@24
|
171 test -d /media/cdrom || mkdir -p /media/cdrom
|
erjo@24
|
172
|
erjo@34
|
173 # Add support to other distros.
|
erjo@34
|
174 if [ ! -f /etc/slitaz-version ]; then
|
erjo@34
|
175 OPTIONS="-o loop"
|
erjo@34
|
176 else
|
erjo@34
|
177 OPTIONS=""
|
erjo@34
|
178 fi
|
erjo@34
|
179
|
erjo@24
|
180 echo "Mounting `basename $ISO`..."
|
erjo@34
|
181 mount $OPTIONS $ISO /media/cdrom 2>/dev/null
|
erjo@24
|
182
|
erjo@24
|
183 if [ ! -f /media/cdrom/boot/rootfs.gz ]; then
|
erjo@24
|
184 echo -e "\nUnable to mount iso or to find a filesystem on it (rootfs.gz).\n"
|
erjo@24
|
185 exit 0
|
erjo@24
|
186 fi
|
erjo@24
|
187 }
|
erjo@24
|
188
|
erjo@24
|
189
|
spode@0
|
190 # All needed files are in the boot direcory of the cdrom.
|
spode@0
|
191 copy_cdrom_files()
|
spode@0
|
192 {
|
spode@0
|
193 echo -n "Copying needed files from cdrom..."
|
spode@0
|
194 mkdir -p $TARGET_ROOT/boot
|
spode@0
|
195 cp /media/cdrom/boot/bzImage $TARGET_ROOT/boot
|
spode@0
|
196 cp /media/cdrom/boot/rootfs.gz $TARGET_ROOT/boot
|
spode@0
|
197 status
|
spode@0
|
198 }
|
spode@0
|
199
|
spode@0
|
200 install_mbr()
|
spode@0
|
201 {
|
spode@0
|
202 # MBR
|
pankso@11
|
203 DISK=${DEVICE%[1-99]}
|
pascal@22
|
204 if [ -f /usr/share/boot/mbr.bin ]; then
|
pankso@11
|
205 echo -n "Installing a new MBR to: $DISK"
|
pascal@22
|
206 cat /usr/share/boot/mbr.bin > $DISK
|
spode@0
|
207 status
|
spode@0
|
208 else
|
spode@0
|
209 # Skip MBR install (tazpkg get-install syslinux-extra ? and then cat)
|
hacker@12
|
210 echo "No new MBR installed to: $DISK"
|
spode@0
|
211 fi
|
spode@0
|
212 }
|
spode@0
|
213
|
spode@0
|
214 # ext/syslinux install
|
spode@0
|
215 install_boot()
|
spode@0
|
216 {
|
MikeDSmith25@31
|
217 # Decide if we're installing syslinux or extlinux
|
spode@0
|
218 if [ "$FSTYPE" = "vfat" ]; then
|
spode@0
|
219 ST=syslinux
|
spode@9
|
220 STC="syslinux -d /boot/syslinux/ $DEVICE"
|
spode@0
|
221 STE=cfg
|
spode@0
|
222 else
|
spode@0
|
223 ST=extlinux
|
spode@0
|
224 STC="extlinux --install $TARGET_ROOT/boot/$ST"
|
spode@0
|
225 STE=conf
|
spode@0
|
226 fi
|
spode@0
|
227
|
spode@0
|
228 echo "Installing bootloader: $ST"
|
spode@0
|
229 mkdir -p $TARGET_ROOT/boot/$ST
|
spode@0
|
230 $STC
|
spode@0
|
231
|
erjo@23
|
232 # Use existing isolinux.cfg for extlinux.conf or syslinux.cfg
|
erjo@23
|
233 cp /media/cdrom/boot/isolinux/isolinux.cfg $TARGET_ROOT/boot/$ST/$ST.$STE
|
erjo@25
|
234 sed -i -e "s/isolinux.msg/$ST.msg/" $TARGET_ROOT/boot/$ST/$ST.$STE
|
erjo@23
|
235
|
MikeDSmith25@31
|
236 # Add home= to append in extlinux or syslinux.cfg
|
erjo@23
|
237 sed -i -e "s/\(append.*\)/\1 home=$UUID/" $TARGET_ROOT/boot/$ST/$ST.$STE
|
erjo@23
|
238
|
pankso@16
|
239 # Splash screen and help files.
|
erjo@23
|
240 cp /media/cdrom/boot/isolinux/isolinux.msg $TARGET_ROOT/boot/$ST/$ST.msg
|
erjo@23
|
241 sed -i s/'SliTaz GNU\/Linux'/'SliTaz GNU\/Linux LiveUSB'/ $TARGET_ROOT/boot/$ST/$ST.msg
|
pankso@16
|
242 cp /media/cdrom/boot/isolinux/splash.lss $TARGET_ROOT/boot/$ST
|
pankso@16
|
243 cp /media/cdrom/boot/isolinux/*.txt $TARGET_ROOT/boot/$ST
|
erjo@23
|
244 cp /media/cdrom/boot/isolinux/*.cfg $TARGET_ROOT/boot/$ST
|
pascal@29
|
245 cp /media/cdrom/boot/isolinux/*.inc $TARGET_ROOT/boot/$ST
|
erjo@23
|
246 cp /media/cdrom/boot/isolinux/*.kbd $TARGET_ROOT/boot/$ST
|
erjo@23
|
247 cp /media/cdrom/boot/isolinux/*.c32 $TARGET_ROOT/boot/$ST
|
erjo@23
|
248
|
erjo@23
|
249 # Modifing all cfg files.
|
erjo@23
|
250 for cfg in $TARGET_ROOT/boot/$ST/*.cfg
|
erjo@23
|
251 do
|
erjo@23
|
252 sed -i s/isolinux.msg/$ST.msg/ $cfg
|
erjo@23
|
253 done
|
erjo@23
|
254
|
MikeDSmith25@31
|
255 # Modifing include file if exists.
|
erjo@30
|
256 if [ -f $TARGET_ROOT/boot/$ST/common.inc ]; then
|
erjo@30
|
257 sed -i -e "s/isolinux.msg/$ST.msg/" $TARGET_ROOT/boot/$ST/common.inc
|
erjo@30
|
258 fi
|
erjo@23
|
259
|
spode@0
|
260 }
|
spode@0
|
261
|
spode@0
|
262 # Let user exit or reboot.
|
spode@0
|
263 exit_or_reboot()
|
spode@0
|
264 {
|
pankso@16
|
265 echo "==============================================================================="
|
spode@0
|
266 echo ""
|
spode@0
|
267 echo -n "Do you want to exit Tazusb or reboot system (Exit/reboot) ? "
|
spode@0
|
268 read anser
|
spode@0
|
269 if [ "$anser" == "reboot" ]; then
|
spode@0
|
270 umount $TARGET_ROOT
|
spode@0
|
271 umount /media/cdrom
|
spode@0
|
272 reboot || reboot -f
|
spode@0
|
273 else
|
pankso@37
|
274 umount $TARGET_ROOT
|
spode@0
|
275 umount /media/cdrom
|
spode@0
|
276 echo ""
|
spode@0
|
277 exit 0
|
spode@0
|
278 fi
|
spode@0
|
279 }
|
spode@0
|
280
|
spode@0
|
281 set_bootable()
|
spode@0
|
282 {
|
spode@0
|
283 # As the boot flag is toggable, need to check it before hand
|
pankso@16
|
284 DISK=${DEVICE%[1-99]}
|
pankso@16
|
285 ISSET=`fdisk -l $DISK | grep $DEVICE | grep "\*"`
|
spode@0
|
286
|
spode@0
|
287 # If not set, set bootable
|
pankso@16
|
288 if [ "$ISSET" == "" ]; then
|
pankso@16
|
289 umount $TARGET_ROOT 2>/dev/null
|
pankso@16
|
290 echo -n "Setting $DEVICE as bootable..."
|
pankso@16
|
291 fdisk $DISK >/dev/null << EOF
|
spode@0
|
292 a
|
spode@0
|
293 1
|
spode@0
|
294 w
|
spode@0
|
295 EOF
|
pankso@16
|
296 status
|
spode@0
|
297 fi
|
spode@0
|
298 }
|
spode@0
|
299
|
paul@41
|
300 # Generate a virtual swap file in /home/swap. SliTaz boot scripts
|
paul@41
|
301 # will activate it, useful for low memory systems
|
pankso@13
|
302 gen_swap_file()
|
pankso@13
|
303 {
|
pankso@13
|
304 echo ""
|
pankso@13
|
305 echo -en "\033[1mGen swap\033[0m
|
pankso@13
|
306 ===============================================================================
|
paul@26
|
307 Generate a swap file in /home/swap that will be activated on each boot to have
|
pankso@13
|
308 more memory available (Empty value to exit).
|
pankso@13
|
309
|
pankso@13
|
310 Swap file in Mb : "
|
pankso@13
|
311 read size
|
pankso@13
|
312 if [ -z "$size" ]; then
|
pankso@13
|
313 echo -e "\nEmpty value. Exiting...\n"
|
pankso@13
|
314 exit 0
|
pankso@13
|
315 fi
|
pankso@13
|
316 cd /home
|
pankso@13
|
317 # Sanity check
|
pankso@13
|
318 if [ -f swap ]; then
|
pankso@13
|
319 swapoff swap 2>/dev/null
|
pankso@13
|
320 fi
|
pankso@13
|
321 # DD to gen a virtual disk.
|
pankso@13
|
322 dd if=/dev/zero of=swap bs=1M count=$size
|
pankso@13
|
323 # Make swap filesystem.
|
pankso@13
|
324 mkswap swap
|
pankso@13
|
325 swapon swap
|
pankso@13
|
326 echo ""
|
pankso@13
|
327 }
|
pankso@13
|
328
|
paul@26
|
329 # Clean out old backups to save disk space
|
paul@26
|
330 clean_usb()
|
paul@26
|
331 {
|
paul@26
|
332 echo ""
|
paul@26
|
333 echo -en "\033[1mClean\033[0m
|
paul@26
|
334 ===============================================================================
|
paul@26
|
335 Remove old rootfs.gz.unixtimestamp backup filesystems to free up disk space.\n\n"
|
MikeDSmith25@31
|
336 # Locate and interactively remove old filesystems from /home directory
|
paul@26
|
337 for file in `find /home/boot/rootfs.gz.[0-9]*`
|
paul@26
|
338 do
|
paul@26
|
339 echo -n "Do you wish to remove: `basename $file` (Yes/no/exit) ? "
|
paul@26
|
340 read answer
|
paul@26
|
341 case $answer in
|
paul@26
|
342 e|E|"exit"|Exit)
|
paul@26
|
343 exit 0 ;;
|
paul@26
|
344 y|Y|yes|Yes)
|
paul@26
|
345 rm -f $file ;;
|
paul@26
|
346 *)
|
paul@26
|
347 echo -en "No filesystems selected, exiting...\n" ;;
|
paul@26
|
348 esac
|
paul@26
|
349 done
|
paul@26
|
350 }
|
paul@26
|
351
|
spode@0
|
352 #
|
spode@0
|
353 # Tazusb sequence
|
spode@0
|
354 #
|
spode@0
|
355
|
spode@0
|
356 case $COMMAND in
|
spode@0
|
357 writefs)
|
MikeDSmith25@31
|
358 # Writefs to rootfs.gz
|
spode@0
|
359 check_root
|
spode@0
|
360 if [ -z $2 ]; then
|
spode@0
|
361 COMPRESSION=none
|
spode@0
|
362 else
|
spode@0
|
363 COMPRESSION=$2
|
spode@0
|
364 fi
|
MikeDSmith25@31
|
365 # Start info
|
spode@0
|
366 echo ""
|
spode@0
|
367 echo -e "\033[1mWrite filesystem\033[0m
|
spode@0
|
368 ===============================================================================
|
spode@0
|
369 The command writefs will write all the current filesystem into a suitable cpio
|
spode@0
|
370 archive (rootfs.gz) usable on a bootable LiveUSB media.
|
spode@0
|
371
|
spode@0
|
372 Archive compression: $COMPRESSION"
|
spode@0
|
373 echo ""
|
spode@0
|
374
|
MikeDSmith25@31
|
375 # Clear out tazpkg cache
|
spode@0
|
376 rm /var/cache/tazpkg/* -r -f
|
spode@0
|
377
|
MikeDSmith25@31
|
378 # Optionally remove sound card selection
|
pankso@35
|
379 echo -n "Do you wish to remove the sound card selection (No/yes/exit) ? "
|
pankso@5
|
380 read anser
|
pankso@5
|
381 case $anser in
|
pankso@5
|
382 e|E|"exit"|Exit)
|
pankso@35
|
383 exit 0 ;;
|
pankso@5
|
384 y|Y|yes|Yes)
|
pankso@5
|
385 echo -n "Removing current sound card selection..."
|
pankso@5
|
386 rm -f /var/lib/sound-card-driver
|
pankso@35
|
387 rm -f /etc/asound.state ;;
|
pankso@5
|
388 *)
|
pankso@35
|
389 echo -n "Keeping current sound card selection..." ;;
|
pankso@35
|
390 esac
|
pankso@35
|
391 status
|
pankso@35
|
392 # Optionally remove screen resolution
|
pankso@35
|
393 echo -n "Do you wish to remove the screen resolution (No/yes/exit) ? "
|
pankso@35
|
394 read anser
|
pankso@35
|
395 case $anser in
|
pankso@35
|
396 e|E|"exit"|Exit)
|
pankso@35
|
397 exit 0 ;;
|
pankso@35
|
398 y|Y|yes|Yes)
|
pankso@35
|
399 echo -n "Removing current screen resolution..."
|
pankso@35
|
400 rm -f /etc/X11/screen.conf ;;
|
pankso@35
|
401 *)
|
pankso@35
|
402 echo -n "Keeping current screen resolution..." ;;
|
pankso@5
|
403 esac
|
spode@0
|
404 status
|
spode@0
|
405
|
MikeDSmith25@31
|
406 # Create list of files
|
pascal@27
|
407 find /bin /etc /init /sbin /var /dev /lib /root /usr >/tmp/list
|
spode@0
|
408
|
pascal@27
|
409 for dir in /home /proc /sys /tmp /mnt /media /media/cdrom /media/flash /media/usbdisk
|
spode@0
|
410 do
|
spode@0
|
411 echo $dir >>/tmp/list
|
spode@0
|
412 done
|
spode@0
|
413
|
MikeDSmith25@31
|
414 # Generate initramfs with specified compression
|
spode@0
|
415 if [ "$COMPRESSION" = "lzma" ]; then
|
spode@0
|
416 echo -n "Creating rootfs.gz with lzma compression... "
|
spode@0
|
417 cat /tmp/list | cpio -o -H newc | lzma e -si -so > /rootfs.gz
|
spode@0
|
418
|
spode@0
|
419 elif [ "$COMPRESSION" = "gzip" ]; then
|
spode@0
|
420 echo -n "Creating rootfs.gz with gzip compression... "
|
spode@0
|
421 cat /tmp/list | cpio -o -H newc | gzip -9 > /rootfs.gz
|
spode@0
|
422
|
spode@0
|
423 else
|
spode@0
|
424 echo -n "Creating rootfs.gz without compression... "
|
spode@0
|
425 cat /tmp/list | cpio -o -H newc > /rootfs.gz
|
spode@0
|
426 fi
|
spode@0
|
427
|
MikeDSmith25@31
|
428 # Get initramfs size
|
spode@0
|
429 size=`du -sh /rootfs.gz | cut -f 1`
|
spode@0
|
430
|
MikeDSmith25@31
|
431 # If the bootable medium is where it should be, copy across
|
spode@0
|
432 if (test -e /home/boot/bzImage); then
|
spode@0
|
433 echo "Moving rootfs.gz to media. Remember to unmount for delayed writes!"
|
spode@0
|
434
|
MikeDSmith25@31
|
435 # Move the old filesystem with the unix timestamp for reference
|
spode@0
|
436 if (test -e /home/boot/previous.gz); then
|
spode@0
|
437 mv /home/boot/previous.gz /home/boot/rootfs.gz.$(date +%s)
|
spode@0
|
438 fi
|
spode@0
|
439
|
spode@0
|
440 mv /home/boot/rootfs.gz /home/boot/previous.gz
|
spode@0
|
441 mv /rootfs.gz /home/boot/.
|
spode@0
|
442 else
|
spode@0
|
443 echo "rootfs.gz is located in /"
|
spode@0
|
444 fi
|
spode@0
|
445
|
spode@0
|
446 echo "==============================================================================="
|
spode@0
|
447 echo "Root filesystem size: $size"
|
spode@0
|
448 echo ""
|
pankso@14
|
449 echo -en "----\nENTER to continue..."; read i
|
spode@0
|
450 ;;
|
spode@0
|
451 format)
|
spode@0
|
452 # Format a partitions in ext3.
|
spode@0
|
453 check_root
|
spode@0
|
454 echo ""
|
spode@0
|
455 echo -e "\033[1mFormat a device\033[0m"
|
spode@0
|
456 echo "==============================================================================="
|
spode@0
|
457 DEVICE=$2
|
spode@0
|
458 if [ -z $DEVICE ]; then
|
hacker@12
|
459 ask_for_device
|
hacker@12
|
460 check_for_device
|
hacker@12
|
461 else
|
hacker@12
|
462 echo "Device : $DEVICE"
|
spode@0
|
463 fi
|
spode@0
|
464 mkfs_ext3
|
spode@0
|
465 echo "==============================================================================="
|
spode@9
|
466 echo "Device $label ($DEVICE) is ready to use as LiveUSB and/or /home partition."
|
spode@0
|
467 echo ""
|
spode@0
|
468 ;;
|
spode@0
|
469 gen-liveusb)
|
spode@0
|
470 # Generate a LiveUSB media using files from a LiveCD.
|
spode@0
|
471 check_root
|
spode@0
|
472 echo ""
|
spode@0
|
473 echo -e "\033[1mGen a LiveUSB media\033[0m"
|
spode@0
|
474 echo "==============================================================================="
|
spode@0
|
475 DEVICE=$2
|
spode@0
|
476 if [ -z $DEVICE ]; then
|
hacker@12
|
477 ask_for_device
|
spode@0
|
478 fi
|
spode@0
|
479
|
spode@0
|
480 check_for_device
|
pankso@11
|
481 mount_cdrom
|
spode@0
|
482 get_part_info
|
spode@0
|
483 unmount_target_usb
|
spode@0
|
484 install_mbr
|
spode@0
|
485 set_bootable
|
spode@0
|
486 mount_target_usb
|
spode@0
|
487 copy_cdrom_files
|
spode@0
|
488 install_boot
|
spode@0
|
489 exit_or_reboot
|
spode@0
|
490 ;;
|
pankso@13
|
491 gen-swap)
|
pankso@13
|
492 check_root
|
pankso@13
|
493 gen_swap_file
|
pankso@13
|
494 ;;
|
erjo@24
|
495 gen-iso2usb)
|
erjo@24
|
496 check_root
|
erjo@24
|
497
|
erjo@24
|
498 # Check if file exists
|
erjo@24
|
499 ISO=$2
|
erjo@24
|
500 if [ -z $ISO ] || [ ! -f $ISO ]; then
|
erjo@24
|
501 echo -e "\nPlease specify a valid filename on the command line.\n"
|
erjo@24
|
502 exit 1
|
erjo@24
|
503 fi
|
erjo@24
|
504 echo ""
|
erjo@24
|
505 echo -e "\033[1mCopy ISO file to SliTaz LiveUSB media\033[0m"
|
erjo@24
|
506 echo "==============================================================================="
|
erjo@24
|
507 echo ""
|
erjo@24
|
508 DEVICE=$3
|
erjo@24
|
509 if [ -z $DEVICE ]; then
|
erjo@24
|
510 ask_for_device
|
erjo@24
|
511 fi
|
erjo@24
|
512 check_for_device
|
erjo@24
|
513 mount_iso
|
erjo@24
|
514 get_part_info
|
erjo@24
|
515 unmount_target_usb
|
erjo@24
|
516 install_mbr
|
erjo@24
|
517 set_bootable
|
erjo@24
|
518 mount_target_usb
|
erjo@24
|
519 copy_cdrom_files
|
erjo@24
|
520 install_boot
|
erjo@24
|
521 exit_or_reboot
|
pankso@37
|
522 losetup -d /dev/loop0
|
paul@26
|
523 ;;
|
paul@26
|
524 clean)
|
paul@28
|
525 check_root
|
paul@28
|
526 clean_usb
|
paul@28
|
527 ;;
|
spode@0
|
528 usage|*)
|
spode@0
|
529 # Display usage by default.
|
spode@0
|
530 usage
|
spode@0
|
531 ;;
|
spode@0
|
532 esac
|
spode@0
|
533
|
spode@0
|
534 exit 0
|