Lupin, the loop installer

Registered 2007-02-14 by Ubuntu Installer Team

Lupin is a modified initramfs building mechanism to create initrds that allow to install Debian based distributions inside a file, without modifying existing partitions.

The lupin intrd is the back-end of installer packages that generally also bundle a matching kernel, a GUI, an ISO downloader, and a bootloader. Such bundles make it possible to install/uninstall Linux in a simple and intuitive way, just as any other application, without CD-Rom and without repartitioning. Lupin does not contain the installer, it uses the installer in the official ISO file which is downloaded and saved by the front-end. Lupin "perpares the stage" and it customizes the ISO on the fly, so that the official ISOs can be used to target a loopmounted filesystem. If the system has been already installed, Lupin works as a normal initrd and simply boots the (loopmounted) system. Lupin accomplishes 3 main tasks:

1) It autodetects the host folder containing the files (disk image files and/or ISO files), it mounts the host device, it checks the content of such files, it attaches the images to loop devices

2) Based on the file content and the boot parameters it will either run-init into the mounted image file and proceed with a normal boot process or it will run the installer from within an ISO targeting the loop device

3) Before the ISO installer is run, the ISO is "patched" on the fly, so that it becomes possible to use official ISOs to loop-install without having to maintain a customized versions of the ISO. If the ISO is an Alternate CD ISO, its initrd is unpacked and patched before being executed (which is equivalent to performing an hd-media installation with initrd preseed). If it is a Live CD ISO, its squasfs filesystem is unpacked and patched (via unionfs). At the moment only Alternate ISOs can be used to perform the installation. The installation is non-interactive, since the information is fetched by a separate front-end running on the host system, which generates the preseed.

The dynamic patching mechanism is a temporary solution. Ideally the changes required to make the official installers work with a loopmounted filesystem will be merged upstream in the future. While at the moment a single initrd is used for normal booting and installation duties, the plan is to split lupin into a set of patches to be applied to the standard initrd (used after installation and capable of booting from a loopmounted file as well as from a dedicated partition) and a set of patches to be applied to the official hd-media initrd/alternate ISO (used at installation and capable of targeting a loopmounted file as well as a dedicated partition). The blueprint to merge lupin functionality upstream is: https://blueprints.launchpad.net/ubuntu/+spec/lupin

Project information

Maintainer:
Ubuntu Installer Team
Driver:
Ubuntu Installer Team
Development focus:

trunk series 

lp:lupin 
Browse the code

Programming Languages:
bash, python
Licences:
GNU GPL v2
()

RDF metadata

View full history Series and milestones

lupin trunk series is the current focus of development

More contributors Top contributors

All packages Packages in Distributions

Get Involved

Downloads

lupin does not have any download files registered with Launchpad.