PartitioningTool

Revision 9 as of 2005-11-03 17:06:55

Clear message

Summary

A partitioning tool for Ubuntu Expess.

For automatic partitioning, we would like to share code with the existing installer component (partman). This will be best accomplished by providing it as an installable binary package (in addition to an installer component), so that it can be added to the live seed and used in a standard environment. partman uses debconf progress indicators, so some consideration is required in order to provide a consistent progress bar in the installation tool.

For advanced/interactive partitioning, we will extend an existing partitioning tool. The selection and development of this tool are discussed in GraphicalPartitioningTool. The installer must unmount all hard disk filesystems and deactivate swap before acting on the partition table, or launching an external partition editor.

Rationale

Use cases

Scope

Design

Choosing a disk

obviously skip this if there's only one disk

make sure there's enough information here to allow the user to make an informed decision, e.g.:

The following hard disks are present:

(*) <description of disk>, with 10 GB free space

(*) <description of disk>, empty

(*) <description of disk>, with 5 GB free space on Windows partition

(*) <description of disk>, no free space

(*) Specify partitions manually (advanced)

Partitioning the disk

Another system on this disk

(Appears if one other system detected on the chosen disk)

It looks like the Seagate 18.2 GB hard disk has another system, "Windows 98",
on it already. What do you want to do with "Windows 98"?

(*) Put Ubuntu alongside, so you choose a system on each startup
    If you choose this option, you'll need to decide how much space
    should be reserved for each system.

( ) Erase it, and replace it with Ubuntu
    Warning: This will delete all documents, programs, and other
    files on the disk.

You will be able to confirm the changes that will be made to your
disks before any of these changes are made. To choose another disk
instead, click "Go Back".

( ) Specify partitions manually (advanced)

Other systems on this disk

(Appears if more than one other system detected on the chosen disk)

It looks like the Seagate 18.2 GB hard disk has three other systems
on it already: "Mac OS", "Mac OS X", and "DebianPPC". What do you
want to do with them?

(*) Leave them there, and choose another disk for Ubuntu
    To choose another disk, click "Go Back".

( ) Put Ubuntu alongside, so you choose a system on each startup
    If you choose this option, you'll need to decide how much space
    should be reserved for each system.

( ) Erase them all, and replace them with Ubuntu
    Warning: This will delete all documents, programs, and other
    files on the disk.

( ) Erase just this one, and replace it with Ubuntu:
    +-----------------------------+-+
    |( ) Mac OS                   |A|
    |( ) Mac OS X                 |:|
    |( ) DebianPPC                |V|
    +-----------------------------+-+

( ) Specify partitions manually (advanced)
    [only if the disk selector wasn't displayed?]

Partition the disk

(Appears if dual-/multiple-booting)

Once Ubuntu is added to the disk "Seagate HD", there will be 4.8 GB left
for documents and other files you add later. How much of this space do
you want to allocate for each system?

      Ubuntu: [ 2.4]H GB =====V=====
  Windows 98: [ 2.4]H GB =====V=====
Leave unused: [   0]H GB V==========
       Total:   4.9   GB

(Perhaps the "Leave unused:" row is unnecessary?)

Advanced partitioning

gparted minus its toolbar. Provide a way (possibly the Back button) to commit or undo changes (since gparted is a separate application and we need to commit or undo on exit) and try automatic partitioning again.

Showing progress

The partitioning process should take only a small percentage (10%?) of the total progress bar.

We can accurately estimate time remaining for resizing + partitioning, but we can't accurately estimate time remaining for resizing + partitioning + copying files.

Implementation

Code

Data preservation and migration

Outstanding issues

BoF agenda and discussion