CopyFileSystem

Summary

UbuntuExpress component to copy the live filesystem to the hard disk.

Rationale

The copying component of UbuntuExpress is largely trivial, though it has been proposed that it would be useful to allow the user to choose whether to copy the pristine filesystem, or the version which has been modified during the session. If the modified filesystem is copied, some of the modifications made to it by casper must be reversed.

While initial reactions generally suggest that the modified filesystem should be copied so that changes made by the user in the live session can be preserved, BOF discussion suggested that there are both technical and usability issues arising from this:

  • Many documents and settings are created by the ubuntu user and saved in /home/ubuntu; the ubuntu username is hardcoded in evolution and rhythmbox configuration at least, and possibly in arbitrarily many other places. Substituting the new username for ubuntu throughout is problematic for obvious reasons.

  • If the user makes changes while the filesystem is being copied, these would not be preserved (or worse, could leave the installed system in an inconsistent state if we aren't very careful).
  • Since UbuntuExpress is being targeted as the default installer for Dapper, there are supportability issues with copying the modified filesystem; suddenly installation bug reports will be subject to arbitrary unlogged changes made by the user before installation, and, since the expectation of a live CD user is generally that changes will not be preserved unless they take special measures to preserve them, it is quite possible that these changes will make the installed system fail to work, whether in obvious or subtle ways.

Thus, the consensus is to copy the unmodified filesystem. That said, UbuntuExpress still has the ability to copy specific well-understood items of configuration from the modified filesystem to the installed system after doing so. These items will be discussed during the remainder of this specification.

Use cases

  • A user has installed extra packages in the live session and wants them to be there in the installed system too.
  • A user has been messing about with the live session and wants a clean installation so that they can start from scratch.
  • A user has downloaded or created a document while the installer runs, and does not want it to be unexpectedly lost
  • A user has manually configured X for their hardware and then launched UbuntuExpress to install the system, expecting their configuration to be preserved

Scope

This specification considers only the filesystem-copying component of UbuntuExpress, and associated user interface issues.

Design

UbuntuExpress will copy the unmodified filesystem to the installed system, and then copy some specific additional items of configuration from the modified filesystem in memory. The user interface and the CD cover notes must indicate that documents and settings created while running the live CD will in general not be preserved on installation.

The following additional items (without limitation) will be transferred to the installed system:

  • /etc/X11/xorg.conf (and md5sum), since this is risky to re-probe while X is running, and may well have been customised to get a working desktop; xserver-xorg needs to gain a published interface to reset the saved md5sum
  • /etc/network/interfaces, and any other appropriate network configuration
  • gnome-panel configuration changes made by casper
  • casper logs

We suggest that UbuntuExpress should make available a hook interface into which casper can drop scripts to propagate its changes from the live environment to the target system. For example, after performing X autoconfiguration, it should queue a script to handle the copying of xorg.conf.

The installation of extra packages during the live session must also be considered. At a minimum, the implementor should arrange to install any language packs selected in the language selector (see UbuntuExpress/LanguagePacks). We recommend that the implementor should also attempt to fetch a list of packages installed in the modified live filesystem and install any additional packages over those installed in the unmodified filesystem; removals are likely to be unsafe, and in any case failures at this stage must not be fatal.

In order to give the user a chance to copy over any documents they explicitly want to keep, we will not automatically reboot at the end of the installation, but instead tell the user that the installation is complete, that they should reboot when they're ready, and that they should copy any documents they want to keep to the installed system themselves (making the installed system available from the desktop to facilitate this). This may be improved in future in coordination with desktop maintainers, but such improvements are not necessary for a first release.

The actual copying of the filesystem is (as mentioned above) trivial, but must be done at file level rather than at filesystem level, to allow for installation onto filesystems that differ from that used on the live CD or that are not resizable. Some efficiency improvements by means of clever sorting or caching may be possible in future.

Suggestions for other items to be copied individually

  • Third-party drivers, so that a network card manufacturer can ship a disk that the user can use to activate their network card after booting the live CD and have that automatically copied to the installed system.
  • LDAP / NIS / NT domain authentication.

Further thought required

  • Fire up update-notifier against /target after installation to see if any updates are available?

Implementation status

  • 2006-03-30 ColinWatson: All required elements now done (network configuration yet to be uploaded, but committed). Some nice-to-haves remain: we don't yet try to figure out additional packages to install, and additional items can be added later to the list of things to copy.


CategorySpec

UbuntuExpress/CopyFileSystem (last edited 2008-08-06 16:35:01 by localhost)