UbuntuExpress

Differences between revisions 1 and 50 (spanning 49 versions)
Revision 1 as of 2005-04-06 23:43:17
Size: 472
Editor: ca-studio-bsr1o-251
Comment:
Revision 50 as of 2006-02-21 17:21:12
Size: 6043
Editor: ctv-84-55-6-215
Comment: live-installer udeb project page is http://launchpad.net/products/live-installer
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= People = ## page was renamed from UbuntuDevel/UbuntuExpress
##(see the SpecSpec for an explanation)
Line 3: Line 4:
 * MattZimmerman
 * ColinWatson
 * Launchpad entry: https://launchpad.net/distros/ubuntu/+spec/ubuntu-express
 * Created: [[Date(2005-04-23T02:50:00Z)]] by MattZimmerman
 * Contributors: MattZimmerman, ColinWatson
 * Packages:
Line 6: Line 9:
= Goal = == Summary ==
Line 8: Line 11:
Create an Ubuntu installation system which runs within the Ubuntu live CD environment and works by copying and customizing the live CD filesystem rather than installing packages. An Ubuntu installation system will be created that runs within the Ubuntu live CD environment, and works by copying and customizing the live CD filesystem rather than installing packages.
Line 10: Line 13:
= Requirements = == Rationale ==
Line 12: Line 15:
 * Reuse existing installer components for configuration
 * Ask all questions at the very beginning of the process
 * Display one big progress bar for the rest of the process
The Ubuntu live CD inspires many people to install Ubuntu. At the moment, those people who downloaded the live CD then have to download another one in order to complete the installation. We should streamline this process. A live CD installer would be faster than the traditional installer within its limited use case, and would allow us to remain competitive with other popular live CD systems.
Line 16: Line 17:
= Agenda = == Scope and Use Cases ==
Line 18: Line 19:
= Pre-Work =  1. A user boots the live CD, falls in love with Ubuntu, and wants to use it forever after. They should be able to select an obvious icon on the desktop and launch the installer.
 2. A user wishes to use the live CD with the intent of installing the system immediately. They should be able to select a CD boot option which immediately launches the installer.
 3. A user wishes to install a system based on a customized live CD environment (either a saved overlay or a custom root filesystem).

== Requirements ==

 * The implementation should re-use existing installer components for configuration to the greatest extent possible, in order to share bugfixes and improvements
 * All install-time questions should be asked at the very beginning of the process, and then the installer should proceed non-interactively
 * The installer should display a single, clear progress bar for the remainder of the process
 * The result should be as close as possible to that of a normal installation

== Design ==

== Implementation Plan ==

=== Proposed Implementation ===

There are six major components to implement (either from scratch or based on existing code):

 * [:UbuntuExpress/GnomeUserInterface:A user interface]
 * [:UbuntuExpress/PartitioningTool:A partitioning tool]
 * [:UbuntuExpress/CopyFileSystem:A component to copy the filesystem into place]
 * [:UbuntuExpress/LanguagePacks:Language pack installation]
 * [:UbuntuExpress/BaseSystemConfiguration:Base system configuration]
 * [:UbuntuExpress/BootLoader:Boot loader installation]

=== Installer Refactoring ===

We will reuse some installer components in the live environment, either by extracting udebs into a temporary directory or by unpacking the udebs using `dpkg`, and then by running some parts of them directly. We may need to take into account minor differences between `debconf` and `cdebconf`. Unpacking udebs into the ramdisk will require installing their dependencies too.

The following udebs may be used:

 * `grub-installer`
 * `yaboot-installer`
 * `partman*`
 * `live-installer` (produces same results like base-installer) - look at http://launchpad.net/products/live-installer and http://gnome-ev.de/index.php/GNOME_LiveCD/Documentation/LiveCDInstaller, but note that ubuntu-express has a separate implementation and a udeb may not be appropriate

Dependencies of these which are only available as udebs:

 * `archdetect`
 * `di-utils-mapdevfs`
 * `os-prober`

We will factor out the portions of `grub-installer` and `yaboot-installer` which deal with configuring and installing the bootloader rather than user interaction, and call those. All the `partman*` packages will be merged into a single source package (pending conversation with upstream) and made to generate a single normal binary package as well as the 20 or so udebs.

Some of the logic for locale, keymap, and timezone selection may need to be factored out of `localechooser`, `kbd-chooser`, and `base-config` respectively, to avoid duplicating complex code with many special cases.

The detect-keys plugin may need to be factored out of `cdebconf` and `kbd-chooser`, depending on the outcome of LiveCDPrompts.

=== Other Issues ===

Since we only intend to offer GRUB as the bootloader on i386/amd64 systems, we may need to disable some partitioning choices that currently cause the installer to fall back to LILO. Currently, installations with `/boot` on either an XFS filesystem or an LVM logical volume do not work reliably with GRUB under all circumstances.

We need to honor debconf preseeding to facilitate the creation of customized live CDs. This may involve adjusting the way that `casper` silences certain installer questions.

=== Data Preservation and Migration ===

=== Packages Affected ===

 * `base-config`
 * `casper`
 * `grub-installer`
 * `kbd-chooser`
 * `localechooser`
 * `partman*`
 * `yaboot-installer`

=== User Interface Requirements ===

 * Should be simple
 * Should be able to use GNOME or KDE UI elements

== Outstanding Issues ==

=== UDU BOF Agenda ===

 * How to refactor existing installer components to allow them to be used in the live environment
 * Custom components needed
  * Graphical partitioner
 * User interface
  * GNOMEish frontend (but allow for KDEish frontend as well)
 * Limitations
  * Can't be used for upgrades
  * Can't easily be used for server installations (especially not via serial console)
  * Specialized for the common case desktop installation

=== UDU Pre-Work ===

 * Check out knoppix-installer
 * Check out the Mepis LiveCD installer
 * Write up of [http://www.willmer.com/kb/2005/02/installing-ubuntu-hoary-from-livecd/ installing Ubuntu] from the cloop manually

Directly copying the fs-image:

 * In the case of a single Ext3 partition, investigate whether copying the image directly off the LiveCD and then running `ext2fsresize` is significantly faster than a `mkfs` + `cp`.

=== Guadalinex implementation ===

[http://interactors.coop/~trunks/installer/]
----
CategorySpec

Summary

An Ubuntu installation system will be created that runs within the Ubuntu live CD environment, and works by copying and customizing the live CD filesystem rather than installing packages.

Rationale

The Ubuntu live CD inspires many people to install Ubuntu. At the moment, those people who downloaded the live CD then have to download another one in order to complete the installation. We should streamline this process. A live CD installer would be faster than the traditional installer within its limited use case, and would allow us to remain competitive with other popular live CD systems.

Scope and Use Cases

  1. A user boots the live CD, falls in love with Ubuntu, and wants to use it forever after. They should be able to select an obvious icon on the desktop and launch the installer.
  2. A user wishes to use the live CD with the intent of installing the system immediately. They should be able to select a CD boot option which immediately launches the installer.
  3. A user wishes to install a system based on a customized live CD environment (either a saved overlay or a custom root filesystem).

Requirements

  • The implementation should re-use existing installer components for configuration to the greatest extent possible, in order to share bugfixes and improvements
  • All install-time questions should be asked at the very beginning of the process, and then the installer should proceed non-interactively
  • The installer should display a single, clear progress bar for the remainder of the process
  • The result should be as close as possible to that of a normal installation

Design

Implementation Plan

Proposed Implementation

There are six major components to implement (either from scratch or based on existing code):

Installer Refactoring

We will reuse some installer components in the live environment, either by extracting udebs into a temporary directory or by unpacking the udebs using dpkg, and then by running some parts of them directly. We may need to take into account minor differences between debconf and cdebconf. Unpacking udebs into the ramdisk will require installing their dependencies too.

The following udebs may be used:

Dependencies of these which are only available as udebs:

  • archdetect

  • di-utils-mapdevfs

  • os-prober

We will factor out the portions of grub-installer and yaboot-installer which deal with configuring and installing the bootloader rather than user interaction, and call those. All the partman* packages will be merged into a single source package (pending conversation with upstream) and made to generate a single normal binary package as well as the 20 or so udebs.

Some of the logic for locale, keymap, and timezone selection may need to be factored out of localechooser, kbd-chooser, and base-config respectively, to avoid duplicating complex code with many special cases.

The detect-keys plugin may need to be factored out of cdebconf and kbd-chooser, depending on the outcome of LiveCDPrompts.

Other Issues

Since we only intend to offer GRUB as the bootloader on i386/amd64 systems, we may need to disable some partitioning choices that currently cause the installer to fall back to LILO. Currently, installations with /boot on either an XFS filesystem or an LVM logical volume do not work reliably with GRUB under all circumstances.

We need to honor debconf preseeding to facilitate the creation of customized live CDs. This may involve adjusting the way that casper silences certain installer questions.

Data Preservation and Migration

Packages Affected

  • base-config

  • casper

  • grub-installer

  • kbd-chooser

  • localechooser

  • partman*

  • yaboot-installer

User Interface Requirements

  • Should be simple
  • Should be able to use GNOME or KDE UI elements

Outstanding Issues

UDU BOF Agenda

  • How to refactor existing installer components to allow them to be used in the live environment
  • Custom components needed
    • Graphical partitioner
  • User interface
    • GNOMEish frontend (but allow for KDEish frontend as well)
  • Limitations
    • Can't be used for upgrades
    • Can't easily be used for server installations (especially not via serial console)
    • Specialized for the common case desktop installation

UDU Pre-Work

Directly copying the fs-image:

  • In the case of a single Ext3 partition, investigate whether copying the image directly off the LiveCD and then running ext2fsresize is significantly faster than a mkfs + cp.

Guadalinex implementation

[http://interactors.coop/~trunks/installer/]


CategorySpec

UbuntuExpress (last edited 2008-08-06 16:32:33 by localhost)