# HG changeset patch # User Pascal Bellard # Date 1250450454 -7200 # Node ID 329dcaa0bd9b31bc1357cedb254eca0bbe7a2eca # Parent ba395fa660a83655fa6669efb13f72bf98397aa3 Add tazlito repack diff -r ba395fa660a8 -r 329dcaa0bd9b tazlito --- a/tazlito Sat Aug 08 10:07:24 2009 +0200 +++ b/tazlito Sun Aug 16 21:20:54 2009 +0200 @@ -89,6 +89,7 @@ clean-distro Remove all files generated by gen-distro. check-distro Help to check if distro is ready to release. merge Merge multiple rootfs into one iso. + repack Recompress rootfs in iso with maximum ration. burn-iso Burn ISO image to a cdrom using Wodim.\n" } @@ -1238,6 +1239,39 @@ rm -rf $TMP_DIR ;; + repack) + # Repack an iso with maximum lzma compression ratio. + # + + ISO=$2 + + mkdir -p $TMP_DIR/mnt + # Extract filesystems + echo -n "Mount $ISO" + mount -o loop,ro $ISO $TMP_DIR/mnt 2> /dev/null + status || cleanup_merge + cp -a $TMP_DIR/mnt $TMP_DIR/iso + umount -d $TMP_DIR/mnt + + for i in $TMP_DIR/iso/boot/rootfs* ; do + echo -n "Repack $(basename $i)" + (zcat $i || unlzma -c $i || cat $i) \ + 2>/dev/null > $TMP_DIR/rootfs + n=20 # 1Mb + sz=$(stat -c %s $TMP_DIR/rootfs) + while [ $sz -gt 1048576 ]; do + n=$(( $n + 1 )) + sz=$(( $sz / 2 )) + done + lzma e $TMP_DIR/rootfs $i -d$n + status + done + + echo "Generate $ISO" + create_iso $ISO $TMP_DIR/iso + rm -rf $TMP_DIR + ;; + usage|*) # Clear and print usage also for all unknown commands. #