This is now an accepted Ubuntu Summer of Code project. See the application page for more information. Progress on this spec has been made, see my website for more information.


Design and develop import functionality for the Ubiquity LiveCD installation program and debian-installer that allows the user to transfer existing user accounts as well as the settings and files that go with each individual account.


The reality for most potential Ubuntu users is that they've bought their computer with Windows pre-installed or have already installed another Linux distribution. These users have probably already used their existing operating system for a decent period of time and have accumulated documents, email, settings, and other files that can be imported and translated for use in Ubuntu, but the existing Ubuntu graphical installer mercilessly destroys them. If users could install Ubuntu knowing that all of their existing Office documents would be placed in their Documents folder, their email would be imported into Evolution, and their bookmarks imported into Firefox, they would have much more incentive to make the switch, be it from Windows or another Linux distribution.

Use cases


As the functionality will exist in both Ubiquity and debian-installer, it will affect both of those packages.


|                                        |
| Would you like to import documents and |
| settings from your previous operating  |
| system?                                |
|                                        |
|  (o) Yes                               |
|          +---+                         |
|      [X] |   | Evan                    |
|          +---+                         |
|                                        |
|          +---+                         |
|      [X] | ? | Erica                   |
|          +---+                         |
|                                        |
|  ( ) No                                |
|                                        |
|                      [ Back ] [ Next ] |
|                                        |

If Ubuntu is being installed alongside another operating system, the above dialog is presented to the user. The user pictures are grabbed from the previous operating system. If a picture cannot be found, the no-picture-found picture is used.

|                                        |
|              +---+                     |
|              |   |  Evan               |
|              +---+                     |
|                                        |
| Select the items you would like to     |
| import for this user.                  |
|                                        |
| +------------------------------------+ |
| |                                 |/\| |
| |   [X] My Documents              |  | |
| |   [X] My Music                  |  | |
| | - [X] Settings                  |  | |
| |       [X] AOL Instant Messenger |  | |
| |       [X] IE Bookmarks          |  | |
| |       [X] Firefox Bookmarks     |  | |
| |                                 |\/| |
| +------------------------------------+ |
|         [ Select All ] [ Select None ] |
|                                        |
|                                        |
| Type in the full name, username, and   |
| password for this account below.       |
|                                        |
| Full Name: [ Evan Dandrea            ] |
| User Name: [ evand                   ] |
| Password:  [                         ] |
| Confirm:   [                         ] |
|                                        |
| [ ] Administrator Account              |
|                                        |
|                                        |
|                      [ Back ] [ Next ] |
|                                        |

The user is presented with the above page for each user they selected to import. Again, the user picture is used along with the user name to clarify exactly which account the user is dealing with.

The user is presented with groupings of objects that they can select for import. All objects are selected by default.

On the same screen the user will fill out the account information for the user they're importing. In the case of Windows the Full Name and User Name fields will be automatically filled. In the case of Linux the password and confirm fields are filled with a set number of asterisks.

If the user checks the Administrator Account checkbox, the account will be added to sudoers.


The import function will search the hard drive on which it is being installed for user accounts as well as the documents and settings that go along with each account, presenting its findings in a screen for each discovered user and allowing the user of the installer to select exactly which accounts and groupings of items they would like to import, with everything selected by default.

Configurations will be translated into their appropriate Ubuntu equivelent. AOL Instant Messenger accounts, for example, will be added to a .gaim/accounts.xml file in that user's home directory.

The transferring of data will be done by means of copying the files and settings the user has selected to the new Ubuntu filesystem after the LiveCD filesystem is copied.


If Ubuntu is being installed over a Linux system, the import function will select all of the home directories as well as the matching sections of /etc/passwd and /etc/shadow. However, if Ubuntu is being installed over Windows, the import tool will select each user from Documents and Settings, their My Documents folder, and what other files and settings it's preprogrammed to look for. As the development of the import function progresses, this should include:




Documentation for the import functionality in Ubiquity will be written and submitted to the Documentation Team for review.

Outstanding issues


Issues regarding file/settings transfer in the case of "messy" windows installations.

The point here is that many windows pc's are messy when compared to a properly set up ubuntu installation, and ways should be found to import the files/settings for user convenience, but not the mess, or users will end up with an ubuntu system as unusable and unstable as their XP experience ever was. This is partially design, partially education. --HiddeBrugmans

More discussion

I've been working on a small program that does something like this. Right now it just imports IE bookmarks, check it out here: MigrationAssistance/Script. Pretty self explanatory, and its just a prototype.

One question: If a user has so many documents that a) it would take too long to copy to the new ubuntu partition or b) the partition isn't big enough, could we make a symbolic link? Thats what I did for my mom, I made her a "My Windows Documents" link on her desktop :-). The only problem is that if its NTFS its read only (until fuse becomes default)... --SamuelCormierIijima

KillerKiwi - If the user has xp installed then could not some 'legal issue' software be safetly install? For instance MS Fonts, Mp3 codecs? As these things are licensed under windows xp? An option to copy over the users wallpaper would also be good, (The most common customization of any system)

One more idea: suggest and install software as alternatives to programs the user has installed under windows.

Hey, I read on Colin's blog that you're doing this for Google SoC, congrats :-). I was wondering though, is it feasible to have the migration wizard in ubiquity? Especially for importing things like bookmarks and such, I'm not sure if the Firefox profiles are even created then, how would you go about working that out? Keep me posted, I'm interested in how this turns out :-). Good luck, --SamuelCormierIijima

Only at install time? (Dual boot Q) Presuming this would be part of the live CD, would it not be possible to have a version that can run from Ubuntu installations, asking "Do you want to search other partitions for compatible Operating Systems and attempt to import (or even better, merge, in the case of bookmarks & mail) items from that OS?"

I dual boot XP and Dapper, simply because I need XP sometimes, but for users who are dual booting & happy to switch it would be useful to have the option after install - though again the disk space requirements may be near impossible to resolve on some systems. Ideally GParted would be able to resize, merge & even convert partitions to achieve it, or perhaps to replace a dual boot Windows partition & migrate all at once the script could dump large files to an external USB drive or even create CD/DVDs of selected files, then remove the NTFS partition & create an new EXT3 one with the larger folders in it (symlinked?)?

Also I second the call for suggesting equivalent programs, but I would go further and suggest generating a text file or script to sudo apt-get any obvious requirements other than applications, such as media codecs. As for things (FF profiles?) that might not exist when first installing Ubuntu, how about zip- (or any format-) archiving required files then having Ubiquity able to process them when FF first launches?

It all sounds like a great project, well done on the Google SOC support! -CDE

You should get the location & name of user accounts & directories from the registry, not by guessing from the filesystem! It should also be possible to find the default applications that way (e.g. firefox, opera or IE, if all of them are installed). And probably other important information too (e.g. location of the "mail database").

This script and the source of this program could be useful.

-- -- JanClaeys 2006-07-05 09:26:37

-- What about stuff like: - Language Settings - Screensaver settings - Regional Settings

If you could retrieve that information the installation process can be simplified some more, since you don't need to request it.

Great project guys. -Nojlib2

-- PeterWhittaker, 2006/08/02

Are there particular reasons for limiting this to XP? Since XP is supported by MS, it might be more relevant to include/address earlier OS's, e.g., '98, '98 SE, Me, etc. I "upgraded" my laptop to Ubuntu from 2000; my home machine will eventually "upgrade" from '98 SE.

Also, email support should include Outlook. You may wish to consult as a starting point. (On our home machine, we had both Outlook and Outlook Express installed; on my laptop, Outlook only, Express never made it off the CD.) There are also tools for reading email passwords from Outlook, Express, etc., but I do not know if there are FLOSS variants.

Have you seen Versora Progression Desktop ? They seem to do everything we need (Not for free, of course). It could be a source of inspiration, anyway. -- AlfonsoDeCala


MigrationAssistance/Edgy (last edited 2008-08-06 16:20:39 by localhost)