Karmic

Differences between revisions 7 and 8
Revision 7 as of 2009-05-24 23:07:35
Size: 4698
Editor: 80
Comment:
Revision 8 as of 2009-05-24 23:09:18
Size: 5630
Editor: 80
Comment:
Deletions are marked like this. Additions are marked like this.
Line 70: Line 70:
=== Conflict resolution ===
{{{
Copying /media/disk-2/home/evan/Documents/test to /home/evan/Documents/test:
vol_id /dev/sda1 -> 52ffe065-a09a-4ee7-b604-4ef54505e363
md5 52ffe065-a09a-4ee7-b604-4ef54505e363/home/evan/Documents/test -> 78ddc6ae8d1bd5afdd19e0ab61be853a -> $HASH

If $HASH not in /home/evan/Documents/.migration-assistant:
        If test in /home/evan/Documents:
                copy /media/disk-2/home/evan/Documents/test /home/evan/Documents/.migration-assistant/$HASH
                ln /home/evan/Documents/.migration-assistant/$HASH /home/evan/Documents/test$1
        Else:
                copy /media/disk-2/home/evan/Documents/test /home/evan/Documents/.migration-assistant/$HASH
                ln /home/evan/Documents/.migration-assistant/$HASH /home/evan/Documents/test
Else:
        copy O_TRUNC /media/disk-2/home/evan/Documents/test /home/evan/Documents/.migration-assistant/$HASH
}}}

Summary

migration-assistant has been stagnating for several releases. It will be partially rewritten in Python in order to ease the maintenance burden.

Release Note

The migration functionality in the installer has been updated to import from the following sources.

Microsoft Windows XP through Windows 7:
TBD

Apple OS X:
TBD

Linux:
TBD

Rationale

Being able to carry documents and settings from a previous installation makes the barrier to entry much lower for users coming from Microsoft's Windows or Apple's Mac OS X.

User stories

TBD

Assumptions

  • Alternate installer support is not a major concern, therefor migration-assistant can depend on Python and other libraries present on the live CD.

Design

+-----------------------------------------------------------------+
| Select any accounts that you would like to import into Ubuntu.  |
| The documents and settings for these accounts will be available |
| after installation.                                             |
|                                                                 |
| +-------------------------------------------------------------+ |
| | v [X] Evan <small>Microsoft Windows 7 (/dev/sda1)</small>   | |
| |       [X] iTunes music <small>10 GB</small>                 | |
| |       [ ] Desktop files <small>1.2 GB</small>               | |
| |       [ ] Wallpaper <small>0.5 MB</small>                   | |
| | > [X] evan <small>Ubuntu 9.04 (/dev/sda2)</small>           | |
| +-------------------------------------------------------------+ |
| <!> You may not have enough free space to import all of the     |
|     selected items.                                             |
|                                                                 |
| [ Cancel ]                                 [ Back ] [ Forward ] |
+-----------------------------------------------------------------+
  • Since the target filesystem will not be created by this point in the installer, there is no way to know the exact amount of free space available for migration-assistant to import into. This is a problem that affects the entire installer. The partitioning code has to make a best guess for the amount of free space, minus the overhead for the filesystem, minus the size of the install.

Implementation

  1. The existing Windows registry code will be tidied up and wrapped in a Python C module.
  2. Python modules for parsing binary OSX plist, and XML OSX plist files will be written.
  3. migration-assistant will be partially rewritten in Python, sufficiently abstracted to allow for importing to Ubuntu and Kubuntu.
  4. Code to import from OSX, Windows XP through Windows 7, and Linux sources will be written.
  5. migration-assistant will become a dbus service, that exposes methods for importing data, using something like /$UUID/$username/$item_enum as an identifier, much like UDIs are used as identifiers in HAL.
  6. GUI code for integration into ubiquity and shell code for a d-i module will be written.

Conflict resolution

Copying /media/disk-2/home/evan/Documents/test to /home/evan/Documents/test:
vol_id /dev/sda1 -> 52ffe065-a09a-4ee7-b604-4ef54505e363
md5 52ffe065-a09a-4ee7-b604-4ef54505e363/home/evan/Documents/test -> 78ddc6ae8d1bd5afdd19e0ab61be853a -> $HASH

If $HASH not in /home/evan/Documents/.migration-assistant:
        If test in /home/evan/Documents:
                copy /media/disk-2/home/evan/Documents/test /home/evan/Documents/.migration-assistant/$HASH
                ln /home/evan/Documents/.migration-assistant/$HASH /home/evan/Documents/test$1
        Else:
                copy /media/disk-2/home/evan/Documents/test /home/evan/Documents/.migration-assistant/$HASH
                ln /home/evan/Documents/.migration-assistant/$HASH /home/evan/Documents/test
Else:
        copy O_TRUNC /media/disk-2/home/evan/Documents/test /home/evan/Documents/.migration-assistant/$HASH

Targets of opportunity

These are items that would be nice to have, but should not be considered when evaluating this specification for completeness.

  • migration-assistant should generate a report of what it did copy and what it either could not, or was unable to, copy.

Test/Demo Plan

A test case for migration-assistant already exists. It will be expanded to cover the new features.

Unresolved issues

Future work:

  • Importing to other targets, such as Ubuntu One, for cases where the user is replacing an operating system with Ubuntu.
  • Continuous importing via a desktop application, for dual boot systems where both operating systems are actively used.

BoF agenda and discussion

  • Do we want migration-assistant in the installer at all? It is nice to have that first boot experience of already having your documents and settings available, and moving it completely to the desktop will most likely require a reboot after the first boot to pick up all of the settings. On the other hand, its presence in the installer has been contested from time to time, and it takes up another page in the installer when we want to make the installation pages quick to get through and the installation process to be as fast as possible.


CategorySpec

MigrationAssistant/Karmic (last edited 2009-06-04 11:26:00 by cpc3-slam5-2-0-cust447)