Additional, extensible live overlays

Since the initial implementation of the T2 Live CD this output image processing facility found its use in more and more (sometimes commercial) production systems and thus an in-field update procedure was demanded very quickly.

This demand was addressed during the T2 7.0 development by allowing additional live overlays to be accumulated on top of the initial live.squash, SquashFS filesystem.

Technically this is archived by mounting any live-* file found on the CD, DVD, CF-card, USB-stick, ... the system is booted from, and using unionfs to overlay all this branches together.

As intended side-effect it is now also possible to save changes from the running system permanently on the media. This can be useful for end-user LiveCDs to carry the personal data (such as the e-mail setup and other pre-configuration), but also for industrial applications to hold settings such as network configuration and touchscreen calibration.

Permanent write overlay

To permanently store the Live-"CD" state, just created an additional live file, for example "live-rw.ext2" on the USB stick's top-level directory.

To create a 25MB ext2 image under Linux on the mounted stick, just run something like:

cd /media/usbdisk/ # (or wherever it is mounted)
dd if=/dev/zero of=live-rw.ext2 bs=1000000 count=25
/sbin/mkfs.ext2 live-rw.ext2
/sbin/tune2fs -c0 -i0 live-rw.ext2

The first lines create the new file-system image while the last sets the parameters to never force a checking of the Ext2 FS.

Updates and Extensions

Similarly updates and extensions can be delivered to and performed by the most blockheaded Windows-only users/admins: Simply send the compressed file (usually a squashfs) named "live-*" to this person in the field and let'em drop this file onto the USB stick / CF-card using his/her favourite operating systesm.
The files are all merged together with UnionFS sorted by their alphabetical order.

The additional live files are usually named with numbers for the sorting, and optionally marked with text to document the changes:

live-001-config.squash
live-002-ssh-security.squash
live-003-new-proxy.squash