CopyFileSystem

Differences between revisions 4 and 5
Revision 4 as of 2005-11-02 17:03:33
Size: 4827
Editor: 209
Comment: some drafting
Revision 5 as of 2005-11-02 17:21:55
Size: 5449
Editor: 209
Comment: finish initial draft
Deletions are marked like this. Additions are marked like this.
Line 6: Line 6:
 * '''Packages affected''': ubuntu-express, casper  * '''Packages affected''': ubuntu-express, casper, xserver-xorg
Line 41: Line 41:
== Implementation == The following additional items (without limitation) will be transferred to the installed system:
Line 43: Line 43:
=== Code ===  * /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
Line 45: Line 48:
=== Data preservation and migration === We suggest that UbuntuExpress should make available a hook interface into which casper can drop scripts matching its own functionality.
Line 47: Line 50:
== Outstanding issues == 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.
Line 49: Line 52:
== BoF agenda and discussion == 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 (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.
Line 51: Line 54:
 * How to transfer data from the ubuntu account?
 * Create a casper unwind script in casper itself?

{{{
Even if we copy unmodified filesystem, need to copy over some other files:
 - /etc/X11/xorg.conf (and md5sum) (difficult and risky to re-probe)
  - xserver-xorg must have an interface to reset the saved md5sum
 - /etc/network/interfaces
 - gnome-panel configuration
 - casper logs
should have casper drop in hooks for each thing that needs to be re-done

must make it clear in the UI either way; also document what will happen on the CD sleeve

deal with extra package installations:
 - reinstall any language packs selected in the language selector?
 - dpkg --get-selections in live filesystem, dpkg --set-selections; apt-get dselect-upgrade in installed system?
  - no removal support?
  - non-fatal if it fails

considered filesystem-level or file-level copy; file-level lets us deal with different filesystems, non-resizable filesystems, etc.

don't automatically reboot at end of installation, to give user a chance to copy over any documents they explicitly want to keep

defer any handling of desktop preferences until future; needs explicit support in desktops, and runs into problems with programs that hardcode usernames / absolute paths / etc.
}}}
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.

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 spent some time customizing their settings (static network configuration? desktop preferences?) and wishes for them to be preserved.
  • A user has already saved documents and wants to preserve them in the installed system.

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 matching its own functionality.

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 (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.

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