Hi there, My name is Ikey Doherty and I'm a developer for the Linux Mint project. I did substantial work on the live-installer package and cultivating the process of turning Debian Testing into a live-medium.
Thank you Daniel Baumann for inviting me here, and as requested I'll give an
overview of the process we used to generate the live-medium etc.
1) Build Time
Initially we start with an expert Debian Testing install (weekly builds)
to an extra partition, once installed we make absolutely no
customisations.
Using rsync from another instalation we clone the entire install into
a working directory, ensuring not to copy /home /dev etc.
All of our work is done inside of a chroot environment, making sure
to keep the future medium as clean as possible. Once we're ready to
make the system "live" we install the live-initramfs,live-config etc.
packages from the live project. However we ran into a fair amount of
bugs to begin with, such as no creation of the live user. We worked
against the bugs by editing /etc/passwd to omit the password, generate
the user ourself and edited /etc/live.conf to match. Other errors were
encountered such as /etc/hosts, so a lot of the "automatic" stuff was
done manually. Other files such as /etc/gdm3/daemon.conf also had to
be manually modified to allow automatic login with gdm3
We switched the initrd to use LZMA, and opted out of the default ISO
layout required by the live scripts, instead emulating the same layout
used by standard Mint ISO's (/casper as opposed to /live). This gave
us two things, compatability with mintConstructor and compatability with
unetbootin. Obviously our isolinux.cfg was modified to support
live-media-path
being altered. After that we spun the ISO as normal with mkisofs on a
iso9660
filesystem.
2) Run Time
A lot of boot-time configurations are handled for us by the live-config
packages (and co.) provided by Debian Live, as I've previously stated
there
were some bugs we had to initially protect ourselves against. As for
the whole
"automatic" process of generating an autologon, we done a lot of that
ourselves
by preconfiguring our files.
3) Install Time
Our live-installer takes much the same approach as most modern
installers.
It takes the filesystem.squashfs (as specified by
/etc/live-installer/install.conf)
and mounts it, copying all the files to the target filesystem. Once the
copying
has completed the installer makes its changes via a chroot of the
target system.
Common tasks such as localising the system, creating the default user,
setting up
sudo for the user and removing the live-installer/live-* (Live Project
Packages)
from the target system are carried out, ensuring an installation that
boots first
time to a gdm3 screen, with everything preconfigured.
We had considered porting Ubiquity for the purpose, but that proved
nigh-on
impossible, so we took the from-scratch approach. The installer is
completely
implemented in pure Python (2.6) with minimal dependancies, making it
suitable
for use in other distributions. Our eventual goal is a live-installer
generic
and configurable enough not to be tied to one specific distribution.
4) Obtaining LMDE and live-installer
If you wish to test LMDE, the latest ISO available for download is at:
http://linuxmint.com/download_lmde.php
If you wish to test/fork/otherwise use the latest live-installer:
http://github.com/linuxmint/live-installer/
If anyone has any more questions regarding the live-installer or the process
used
in creating the live-medium (I can port my documentation) then I'd be happy to
oblige.
I know that Clement Lefebvre and myself are very grateful for the work that the
Debian
Live project has done, and for the Debian base itself.
Kind Regards,
Ikey Doherty
--
Ikey Doherty <[email protected]>
pgpgQu6O0J7eB.pgp
Description: PGP signature
