After fixing many bugs in the code and running countless builds of the d-i image, migration-assistant 0.1 is here. I’d like to thank Colin Watson and the Ubuntu community for their help and input with this release.
What works?
Windows XP
- User accounts are created as users in Ubuntu as requested.
- The “My Documents” folder is imported to ~/Documents.
- The “My Music” folder is imported to ~/Music and the required gconf keys are set so all of your music appears in Rhythmbox from the first time you launch it.
- The “My Pictures” folder is imported to ~/Pictures.
- The desktop wallpaper is imported to ~ (to be changed), set as the default wallpaper, and added to the list of available wallpapers.
- The user picture (the picture in the top left corner of the Windows XP style start menu) is imported and is visible when you lock the screen.
- Gaim, Yahoo, and AIM Triton accounts are all imported into Gaim.
Linux
- User accounts are created as users in Ubuntu as requested.
- Gaim accounts are imported into Gaim.
Mac OS X
What’s next?
debian-installer
- Support for backing up during the question stage.
ubiquity
- Working ubiquity (LiveCD installer) support.
Windows XP
- Internet Explorer, Opera, and Mozilla Firefox bookmarks will import into Firefox. The work for this is partially done.
- Outlook, Outlook Express, Mozilla Thunderbird, and Opera Mail email accounts will be imported into Evolution.
- The network proxy settings will be imported into GNOME and Firefox if it doesn’t support the GNOME setting.
Linux
- The default desktop background will be imported and set as the default in Ubuntu.
- The user picture (.face) will be imported.
- Mozilla Firefox and Opera bookmarks will be imported into Mozilla Firefox.
- Mozilla Thunderbird, Opera Mail, and Evolution email accounts will be imported into Evolution.
- The rest of the home directory will be copied into ~/old-home. This is still under consideration.
Mac OS X
- Everything. Though this work will almost definitely start after the Summer of Code period.
How does it work?
Right now this function is limited to the debian-installer framework, but that will change with the addition of Ubiquity support in a few days.
The individual uses the regular debian-installer CD with the added migration-assistant and libxml2 udebs. The individual starts up the installer as they normally would. After partitioning the hard drive and creating a default user for the system, migration-assistant is run, provided that the user did not remove all other operating systems from the computer during the partitioning stage. migration-assistant checks for other operating systems (with the help of os-prober) and accounts within those operating systems. The user is then asked which operating systems they’d like to import from, followed by which users from each operating system they’d like to import, and finally followed by which items for each user they’d like to import. Upon selecting some items to import from a user account on one of the other operating systems, the user is then asked to type the username of an account they’d like to import these items into. If the account is not the one the user just created as the default in the previous step in the installer, they are then prompted for the user’s full name and password.
The installer then continues to run, coming back to migration-assistant after the base system is installed. migration-assistant then does the dirty work of merging each individual item into its Ubuntu counterpart. So if, for example, the user selected both Windows XP and Fedora to import from with Yahoo, AIM, and Gaim in Windows and Gaim in Fedora, then migration-assistant will take each individual account in each program, check to see if it’s already in the Ubuntu Gaim accounts file, and if it’s not, import it.
The rest of the installer then finishes and when the user boots up into their new Ubuntu installation they can immediately see that their background is the same, their documents are all there, all of their accounts are in each respective program, etc.
How do I get it?
I hope to get everything into Edgy soon, but if you’d like to skip the wait, you can do the following to build your own debian-installer netinst ISO with migration-assistant included:
- Open a terminal and apt-get source debian-installer
- Download the migration-assistant and libxml2 udebs from edgy (once it hits the archive) and save them into debian-installer/build/localudebs
- Create the file debian-installer/build/pkg-lists/local and add migration-assistant and libxml2-udeb on lines by themselves.
- Run fakeroot make build_netboot.
- Map debian-installer/build/dest/netboot/mini.iso to a virtual CD-ROM device in a virtual machine. DO NOT run this on your regular installation, I do not want to hear about it destroying your dissertation unless you file a bug report.
- Upon finishing the installer, log files are saved to /var/log/installer.
Questions
Q: Why didn’t migration-assistant show up?
A: Make sure you’ve left at least one other operating system installed after partitioning your hard drive, otherwise migration-assistant will see than there’s nothing to import from and never run.
Q: Why do I have to dual boot?
A: As was pointed out to me, partition resizing is not stable enough yet to warrant the creation of the temporary partition needed to juggle the files around of a partition that’s about to be wiped out.
Q: What about the Live-CD installer?
A: Ubiquity, the Live-CD installer, support is coming within the next few days. Stay tuned.
Q: What about Kubuntu and KDE applications?
A: My first priority was to get Ubuntu and GNOME working and because of that I have not had time to work on Kubuntu. That’s not to say I hate KDE or that this program is incapable of importing to Konqueror instead of Firefox, I just haven’t written the code for it yet. Now, I didn’t make a clean split between import from and import to in the code, but it shouldn’t be hard to make the changes necessary for Kubuntu support. If anyone is interested, I simply ask that they wait until the Summer of Code period is over (August 21st) to submit patches back to me as I should not be given credit for your work.
Q: What about Mac OS X and Windows Vista support?
A: On the way. After the Windows and Linux routines stabilize I will start work on both OS X and Vista support.