cjwatson at ubuntu.com
Tue Jul 17 01:54:51 BST 2007
I thought I'd send a brief update on what's been going on with d-i (the
installer used on the alternate and server CDs, and for netboot
installations) lately. Please send follow-ups to the ubuntu-installer
mailing list rather than ubuntu-devel.
I went to Debconf 7 in Edinburgh, and spent a good deal of time with the
d-i folks there (Joey Hess, Frans Pop, Christian Perrier, Jérémy Bobbio,
and others). We worked on a number of things there, including:
* debootstrap 1.0.0
debootstrap is now identical in Debian and Ubuntu, for the first
time since Ubuntu's inception; there should be no real reason now
why it can't stay that way, which will make it easier for people
running Debian to create Ubuntu chroots.
I also did a bit of work in the seeds and on Soyuz to allow the set
of packages installed by 'debootstrap --variant=buildd' to be stored
in index fields in the archive just like the normal base system
installed by debootstrap, which should mean that very few changes
are needed for future Ubuntu releases (it may even be possible at
some future point to teach debootstrap that unrecognised Ubuntu
releases should just try the gutsy script, although the supporting
code for that doesn't exist yet). The Soyuz changes are due to land
in Launchpad 1.1.7 shortly, and the corresponding debootstrap change
will happen shortly afterwards.
* Memory savings
Memory use in d-i has been an issue for a while now, in no small
part because every new human language that gets supported has added
another chunk to it. I did some work on cdebconf during Debconf and
in the few days afterwards, and was able to teach it to drop
translations it isn't using, both from memory and (after anna runs)
from the templates database in d-i's tmpfs. Coupled with fixes for
some more straightforward memory leaks, this reduces d-i's memory
footprint by somewhere around 20MB.
It may be possible to apply some of the same savings to the Ubuntu
desktop CD as well, which is currently much harder on memory than it
should be. This is more work because that doesn't yet use cdebconf,
and can't yet because cdebconf doesn't support the escape
capability. Work is ongoing.
* dmraid support
Frans Pop spent most of Debconf glued to a test system developing
experimental support for fake ATA RAID (dmraid). This was still
pretty rough in terms of UI last time I looked at it, and would be
hard work to glue into Ubiquity; we haven't yet merged this into
Ubuntu. Still, it's a common feature request and so I thought I'd
mention that this work is coming down the pipe.
Since it was long past time, I finally merged kickseed into upstream
d-i, which is the component responsible for implementing
compatibility with Red Hat's Kickstart. Once a few bits and pieces
are fixed up, that will be able to work on Debian too, providing an
alternative to preseeding whose details don't change quite so often.
kickseed has had a few extra bits of compatibility added in Gutsy.
Since I believe LVM preseeding has improved considerably since I
originally wrote kickseed, volunteers to implement LVM configuration
are very welcome. RAID configuration might even be possible in
kickseed now with a bit more work.
Other recent changes
* Network interface configuration
d-i no longer relies on /etc/iftab (an Ubuntu-specific change) to
ensure that the names of network interfaces persist across reboots,
but now uses a corresponding udev facility instead.
* ISC DHCP v3
d-i has used ISC DHCP v2 for a long time, because it offers all the
features we need while being relatively small. That package has been
getting rather crusty, particularly from a security perspective, so
there's been increasing pressure to switch to something else. For a
long time this was blocked on resolving the size increase, but
Debian has now decided that the size increase is small enough not to
be too much of a problem, and I've followed suit in Ubuntu.
I've been working on the underpinnings for merging Wubi, a
Windows-based installer for Ubuntu. Part of this involves the
ability to install into a set of loop-mounted filesystem images
located on an NTFS filesystem. I can think of one rather elegant way
to go about this in d-i, but my assessment is that it would take too
long to implement for Gutsy, so I'm pursuing a hackier approach
involving a customised partman component that just implements this
particular kind of autopartitioning monolithically rather than
implementing each of the necessary components in ways that can be
used individually. I have nothing much to show yet, but all being
well I hope to be able to demonstrate progress here soon.
Colin Watson [cjwatson at ubuntu.com]
More information about the ubuntu-devel