tazusb annotate tazusb @ rev 156

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