live Arch Linux builder
Introduction
larch is a collection of scripts designed around the creation and use of live CD/DVD/USB-stick versions of Arch Linux. New in version 7 is a graphical user interface (using pyqt), which hopefully presents the main options in a clear way. A command-line interface is still available, for example for use in scripts, but in general one should use the gui if possible. You must have python installed as this is now the primary language in larch.
One design aim was easy customization, so that even relatively inexperienced users could build personalized live CDs (etc.), containing whatever packages they wanted and with their own personal configurations. The resulting medium should also be usable for installation purposes, so that one has a customized Arch Linux installation/rescue medium. As the content can be chosen freely, a comfortable working environment is possible - in contrast to the rather Spartan standard Arch installation CD. However, note that it is also possible, using the officially supported archiso, to produce a customized Arch Linux installation/rescue medium (see the corresponding Arch wiki page). The approach taken by the two projects is somewhat different so do have a look at both. Note that at the latest since version 7, larch makes no pretence of a 'KISS' approach. The code is, I'm afraid, rather complicated. The resulting live system should, however, be very close to a normal non-live Arch Linux system (as far as the squashfs + aufs basis allows).
larch also offers a flexible approach to building your live media. You can use 'profiles' to determine what gets installed, and how it is configured. The advantage of this method is that all your specifications are kept together in a folder which can be used to rebuild the same or a similar system at a later date. Alternatively you can do a normal Arch Linux installation (if there is such a thing!) and then make a live medium from this. You can even 'livify' your existing installation (though it might be worth tidying it up a bit first ...).
The use of squashfs in the resulting system means that the space occupied will be significantly less than in the 'raw' state, normally about a third of the original. As a result of this design, it is not possible to write directly to the system - which would seem to be quite a drawback, though in some situations it can even be an advantage. The use of aufs (a 'unification' file-system, originally based on unionfs) allows the resulting system to appear writeable in spite of its actual read-only nature, by using a writeable 'overlay' in tmpfs (a memory-based file-system).
Normally any changes made to the system while running would be lost on shutdown, but by saving the overlay to the boot medium (which is of course only possible on devices which are actually writeable, such as USB sticks), data persistence can be achieved even though the basic system is actually not writeable. In spite of the different file-system structure of the live system, it should behave almost identically to a normal Arch installation in most respects. You can, for example, perform package management as usual, but the changes are saved in the overlay, rather than in the underlying system. Of course as the number of changes grows, so does the size of the overlay, and at some point this will become problematical. How larch manages this is explained in the session saving section.
Hardware detection is provided by the same udev approach as is used in a standard Arch Linux system.
The larch project comprises several components. The scripts for building a larch live medium are in the larch package, which need not itself be installed in the live system, though it may be useful. Scripts and data for the live environment are provided in the larch-live package, which must be installed in the live system. There is also an optional installer (larchin) which can install the live system to hard disk, providing a convenient way to install a ready-configured Arch Linux system. ***+ Unfortunately this has not yet been updated for larch-7 -*** .
I have tried to maintain the distribution-independence of the larch scripts, so that they can be used on other GNU/Linux systems - you shouldn't need an Arch Linux installation in order to build a larch live medium, the few dependencies should be available on pretty well any GNU/Linux system - apart from pacman, the Arch Linux package manager (a compressed archive containing the binary, together with its library dependencies should be available from the larch site). You will in any case need python with the pexpect module (package 'python-pexpect' in Arch) and pyqt.
As with most stuff around Arch Linux it's not really designed for beginners - you should know your way around a GNU/Linux system (preferably Arch!), and be aware of the dangers of running such programs, such as corrupting your whole system. In any case, I hope that the documentation will be clear enough to help anyone who wants to exploit larch to the full (feedback is welcome!).
Requirement: You need quite a lot of space to create a live Arch Linux system. Bear in mind that a complete Arch Linux system is installed, then, additionally, a compressed ('squashed') version is made, and then perhaps even a CD image (iso). Building for a USB-stick requires slightly less space, as the iso-image is not built. If building a live version of the currently running Arch Linux system, much less space is required as no new system must be installed - but there are additional problems with this approach which make it generally not the best way (see the section dealing with this).