LiveCDSessions

Summary

The Ubuntu live CD should allow the user to save the filesystem state to writable media, and later load it in order to continue working with the same configuration. This will be much faster and easier than creating and modifying custom live CDs.

The live CD initialization process should scan attached devices to find saved sessions, and offer the user a choice of one of the saved sessions, or a fresh default session.

A desktop UI should be provided to allow the user to save their session with a meaningful name.

The saved data format should, if possible, accomodate both unionfs and device-mapper configurations.

Rationale

The current state of persistency support makes using persistent devices unnecessarily hard. It's hard to prepare a device for being a persistent device and it's not possible to "snapshot" an existing session to a device. To resume a session, the user must remember to pass persistent on the kernel command line.

All in all, persistency is much more of a toolbox than a finished tool the user can use. This needs to be fixed if persistency is to be deployed more widely.

Use cases

  • Casper is on vacation and has his USB stick and an Ubuntu live CD with him. He boots the live CD in an internet cafe. As the USB stick is completely new, he prepares it after the live CD has booted and he's surfed around a bit.

Scope

Affects casper and a new tool called wendy.

Design

  • All casper devices will have a /casper/.info file which contains name=value pairs which identify the device. At least a name key is required.

  • A tool, let's call it wendy is able to inspect the file system contents, enumerate those which are casper-enabled and be able to make the others enabled with both the loopback support and the direct device support.

  • wendy should also be able to copy the current contents of the initramfs to a device, remount that as the topmost layer of the unionfs and carry on. At least a logout and login will be required for this to work properly, but avoiding the need for a reboot would be good.

Implementation

  • wendy will be a python library and application using PyGTK. (Library so kubuntu can write their own frontend using PyQt).

  • wendy looks at all block devices, checks their file system type and whether they are casper devices or not. If they are, they should be marked as such. If not, clicking on it should make it possible to make it into a casper volume.

  • when casper volumes are selected, an option to switch to them as the current persistent device is presented. wendy should then replace the topmost layer of the current / with the newly mounted persistent volume. The user is logged out and automatically logged in again.

  • when the user creates a new persistent session, she gets the option of a loopback file or using the whole device is given. The user is asked for a name and wendy either creates a loopback file system with a /casper directory and a /casper/.info file with the name in it.

Data preservation and migration

  • We should continue to support "old-style" casper persistent devices and write a /casper/.info file automatically when they're first seen.

Outstanding issues

  • How to handle cloop?

  • Do we want to handle crack like encrypted sessions?


CategorySpec

LiveCDSessions (last edited 2008-08-06 16:34:49 by localhost)