tazusb annotate tazusb @ rev 180

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