tazlito rev 102
Add tazlito repack
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Sun Aug 16 21:20:54 2009 +0200 (2009-08-16) |
parents | ba395fa660a8 |
children | 55a872cdf001 |
files | tazlito |
line diff
1.1 --- a/tazlito Sat Aug 08 10:07:24 2009 +0200 1.2 +++ b/tazlito Sun Aug 16 21:20:54 2009 +0200 1.3 @@ -89,6 +89,7 @@ 1.4 clean-distro Remove all files generated by gen-distro. 1.5 check-distro Help to check if distro is ready to release. 1.6 merge Merge multiple rootfs into one iso. 1.7 + repack Recompress rootfs in iso with maximum ration. 1.8 burn-iso Burn ISO image to a cdrom using Wodim.\n" 1.9 } 1.10 1.11 @@ -1238,6 +1239,39 @@ 1.12 rm -rf $TMP_DIR 1.13 ;; 1.14 1.15 + repack) 1.16 + # Repack an iso with maximum lzma compression ratio. 1.17 + # 1.18 + 1.19 + ISO=$2 1.20 + 1.21 + mkdir -p $TMP_DIR/mnt 1.22 + # Extract filesystems 1.23 + echo -n "Mount $ISO" 1.24 + mount -o loop,ro $ISO $TMP_DIR/mnt 2> /dev/null 1.25 + status || cleanup_merge 1.26 + cp -a $TMP_DIR/mnt $TMP_DIR/iso 1.27 + umount -d $TMP_DIR/mnt 1.28 + 1.29 + for i in $TMP_DIR/iso/boot/rootfs* ; do 1.30 + echo -n "Repack $(basename $i)" 1.31 + (zcat $i || unlzma -c $i || cat $i) \ 1.32 + 2>/dev/null > $TMP_DIR/rootfs 1.33 + n=20 # 1Mb 1.34 + sz=$(stat -c %s $TMP_DIR/rootfs) 1.35 + while [ $sz -gt 1048576 ]; do 1.36 + n=$(( $n + 1 )) 1.37 + sz=$(( $sz / 2 )) 1.38 + done 1.39 + lzma e $TMP_DIR/rootfs $i -d$n 1.40 + status 1.41 + done 1.42 + 1.43 + echo "Generate $ISO" 1.44 + create_iso $ISO $TMP_DIR/iso 1.45 + rm -rf $TMP_DIR 1.46 + ;; 1.47 + 1.48 usage|*) 1.49 # Clear and print usage also for all unknown commands. 1.50 #