zero point one
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
- Nothing yet.
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.
August 1st, 2006 at 10:05 am
Congrats on the release
I’m about to take a look at the code, haven’t checked in the last couple of weeks, but it sounds like its coming along well.
Keep up the good work,
Samuel
August 2nd, 2006 at 1:58 am
Thanks! I actually published this a bit prematurely as it hasn’t hit archive.u.c yet, but bzr is obviously up to date.
August 5th, 2006 at 8:30 pm
Assistente de migração para o Ubuntu avança a passos largos…
Há exatamente um mês, publiquei uma notícia sobre a possibilidade de a próxima versão do Ubuntu trazer um assistente de migração. Na ocasião, escrevi:
O recurso pretende facilitar o procedimento de importação de arquivos e configurações de …
August 7th, 2006 at 5:34 pm
Sounds like a great feature! One thing I noticed on the list is that My Pictures will be imported to ~/Pictures. Nothing wrong with this, except that f-spot imports photos to ~/Photos by default (and it’s only configurable in very recent versions with a gconf key). Maybe it should be the same directory?
August 8th, 2006 at 12:20 pm
Really excellent project!
It should also be possible to import some useful information like language/keyboard/timezone/locale so that the respective entries are pre-selected as well as the name of the first user (from current user account).
The only part I do not understand is:
“the user is then asked to type the username of an account they’d like to import these items into”.
Is this strictly required? Why not just use the same username of the original account? If people want to rename/merge accounts they can do so afterwards.
August 8th, 2006 at 12:27 pm
[…] Yo uso el Mozilla Thunderbird para manejar mis emails hace… años ya. Llevaba usando el outlook express demasiado tiempo, y estaba esperando que apareciera alguien que me diese una mejor alternativa (que no era mucho pedir). Cuándo apareció el Thunderbird, lo probé y sabía que iba a terminar usándolo. Sólo me faltaba una cosa: migrar mis emails. Hasta que no implementaron esa opción, no pude pasarme. No recuerdo cuál fué la curva de crecimiento una vez que en la instalación te daba la opción de importar todos tus emails y cuentas del outlook, pero fué monstruoso. Con ésta introducción un poco larga y tediosa, tengo el agrado de presentarles el Migration Assistance de Ubuntu. Ya está la especificación propuesta en Launchpad y hay una cantidad considerable de trabajo hecho, suficiente para tener la versión 0.1. En ésta primer versión sólo funciona desde el Debian Installer (instalador de texto), y no desde el instalador gráfico de Ubuntu, pero eso se va a implementar muy brevemente. Les detallo que hay hecho, y que se planea hacer: […]
August 8th, 2006 at 2:22 pm
Thanks!
This was brought up in the comments on the spec. Basically, while it seems like a good idea on the surface, we’d be assuming that user wants to use that particular locale and in doing so would take away any option they have to change it.
This allows us to merge the data from different accounts into a single account. For example, if I have two accounts, one in Windows and the other in Fedora, Evan and evand, and I would just like to combine all of the instant messaging accounts, documents, etc, without having to create an extra user that I don’t need, I just point both at the “evan” account when importing. The original username is in the new user input box by default, so if you want to import each old account into a new account, you just have to hit enter there.
August 8th, 2006 at 2:26 pm
Ah, nice find! I’ll fix that for 0.2.
August 8th, 2006 at 3:07 pm
I did not mean to have the language / keyboard / tz… “fixed” to the values detected, but simply preselected. So when you start the installer the language dropdown already shows the language you are currently using and the keyboard list already has your keyboard selected, the username has already your current username in the textbox. But you can still change the values as usual.
IMO merging accounts is not a common occurrence. Wanting to merge differently named accounts is even less common.
You can always create a “merge-user-profile” tool, that copies the files, changes the ownership, and manages conflict resolutions.
This is a much safer alternative: accidentally merging accounts is far more annoying than accidentally keeping separate accounts separate.
Advanced users can use the merge-accounts tool (and will probably know how to merge accounts anyway). Non-advanced users most likely are not interested in merging accounts at all, also because the vast majority only have a single account on a single OS.
August 8th, 2006 at 3:11 pm
ops…
I misused the blockquote tag (I did not notice it was xhtml). Evan, could you please edit my post above and make it more readable? Thanks
August 8th, 2006 at 7:53 pm
It should already do this (for Ubiquity anyway). When you pick a language at the start of the Live CD, Ubiquity will automatically default to that language at that particular step in the installer.
Putting that kind of logic in migration-assistant would also be difficult on account of its position in the installer. Right now m-a depends on the system being partitioned so we can detect if it should run in the first place, and the first account created so the user can have that as an option of importing to. To make the default language in the installer the same as the one in the previous operating system, m-a would need to occur before the language setup stage, which occurs before the partitioning and user setup stages. Basically, if this change is necessary, it would have to be made in localechooser and not m-a.
The username box in m-a is automatically filled with the username from the previous operating system (with a [A-Z][a-z] done and whitespace stripped).
The vast majority may only have a single operating system, but there are cases where people have, and will have multiple ones. As I mentioned before Fedora and Windows is one example, a potentially more common one will be Mac OS X with Windows XP or Vista.
As the username box will already be filled with the option that will work for the majority of people, I just don’t see it as a potential hazard. I can’t see why a user would change that value if they don’t understand what it does. And that’s implying that they wouldn’t undertand its purpose. The UI is already documented, explaining on each page what the user is being asked to do, but if you still think it’s confusing after the Ubiquity UI is finished (real soon now), I’ll take another look and see what more I can do.
My current idea for the Ubiquity UI is having a drop down list with the normal username selected, other usernames that have already been created in the list, and “Add a new account” as the last entry. If the user selects “Add a new account”, a few input boxes appear below for the username, full name, and password.
So by default all the typical user will see is a drop down box with the username that’s going to be created selected. I believe this is necessary anyway, as users coming from Windows will type the same name they’ve used in the past to log in (”Evan” instead of the correct “evan”) unless they are instructed to do otherwise.
August 9th, 2006 at 4:18 am
What about splitting m-a in 2? One part that retrieves simple info (like language/tz/usernames…) to be loaded in memory and started at the beginning of Ubiquity, and another that actually copies files to be started after partitioning.
August 9th, 2006 at 11:55 am
Aside from the languages, it already is split in that manner. There’s ma-ask, which asks the user what operating systems to import from, what users, and what items, and seeds that in debconf. Then there’s ma-apply which is run after the base install completes and after retreiving the details from debconf, imports everything. This also makes the system preseeding friendly, allowing for unattended installs.
I should note that ma-ask still has to be in the middle of the question stage as we rely on user-setup and partman being complete.