tazusb annotate tazusb @ rev 119

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