Moving On - A walk in the Park

Migrate from Windows XP to Linux (Ubuntu)


Moving On ?

So, you've been using Windows for a while now, and you have this Windows XP computer loaded with MS Word Documents, Excel spreadsheets, tons of pictures, movies and mp3's. Your web browser is set exactly the way you want it, and of course you have your email program configured to match your mail provider's servers, and a mailbox full of messages. Do you really think it's a good idea to switch to Linux ?

Of course it is, if only you could avoid starting again from scratch, and take all these files, preferences, settings and configurations with you. Well, that is quite possible. What follows is a migration path from Windows XP to Linux (Ubuntu 6.06 LTS, a.k.a. Dapper Drake)

Plan ahead

While setting up Linux, think ahead. You're gonna need a way to copy your 'old' (Windows) files to your new (Linux) system. So you may need to store those files some place you can reach from a Linux system. Any removable media (usb, cd-rom, an extra hard disk, ...) will do. You can also store them on a network share. Even an (ntfs or fat32) partition will do. Some Linux distributions can resize partitions during setup, which allows you to have Linux and Windows on the same hard disk. Ubuntu's live CD installation is one of those distributions where resizing partitions to create space is included in the setup. So the possibilities are plenty.

NTFS security

Linux can read from (and even write to) NTFS partitions, so copying files from a Windows partition to a Linux filesystem is possible. You may ask yourself what happens with the 'ownership' and NTFS permissions that were assigned to those files and folders under Windows. Will a Linux user be able to read these files, even if they have NTFS security set ? Well, yes. You can simply read from the NTFS partition, copy from it, and when you copy the a Linux filesystem (eg your home directory), you become owner and have read and write permissions to the copied file. No sweat.

If those files are on a server (shared), you can get to them via smb (included by default in e.g. Ubuntu's nautilus file browser). In this case, you will have to log on to that server with a user account known to that server, and with the necessary permissions to at least copy files and directories, but that's easy to set up.

But can I use those files ?

For your typical Office applications, you usually can. OpenOffice effortlessly opens MS Office documents, spreadsheets and presentations, Visio and MS Projects clones work towards compatibility with files created with the Microsoft products, pdf's are no problem, ... But your mileage may vary : it will not be the case for each and every application / document format, although there is a tendency to develop new, standardized document formats that are more application-independent than was the case in the past.

Firefox web browser

Here, you'll want to keep your preferences, bookmarks, saved passwords etc. If you were already using Firefox on Windows, this is pretty straightforward. Windows XP "Documents and Settings" folder is roughly the equivalent of a Linux home directory. We already know we can copy between the two file systems, and as it happens, Firefox keeps all settings inside the user profile.

On the Windows XP system, look in your profile folder : ...\Documents and Settings\%username%\Application Data\Mozilla\Firefox\Profiles\xxxx.default\, where xxxx is a random name. Copy this folder.

On the Ubuntu system, look in your $HOME for .../.mozilla/firefox/yyyy.default (where $HOME = /home/your_user_name and yyyyyyyy is another random name). Note that .mozilla is a hidden folder : if your copying in a file browser, you may have to tell it to show hidden files. Copy the XP Firefox profile (xxxx.default) to $HOME/.mozilla/firefox/xxxx.default, then change the Path in $HOME/.mozilla/firefox/profiles.ini to xxxx.default and delete yyy.default - or rename xxxx.default to yyyy.default. You get the idea : just replace the new Ubuntu profile with your old XP Firefox profile.

Start Firefox and see how it now knows all the bookmarks you collected while you were using Windows XP, logs in automatically to web sites for which it has remembered passwords, etc.
Smooth.

If you were using Internet Explorer or some other browser under Windows XP, you might want to start by installing Firefox for Windows. It will offer to import settings from other browsers. After you've let it do that, you can apply the Windows To Linux Firefox migration described here.

e-mail

What follows is a description of how to migrate a thunderbird mail client for Windows Xp to Thunderbird under Ubuntu. The setup is a pure POP3 client with messages downloaded to the local machine (no webmail, no IMAP, no 'leave a copy on the server', ...) : You will not only want to get the configuration correct (mail account, credentials and names/addresses of POP and SMTP servers, ...) but also you don't want to loose your old mail, spam filter settings, address lists, ...

Ubuntu uses Evolution as default mail client, but I kinda got to like Thunderbird while I was still using Windows XP, so I decided to stick with it. Therefore the following describes only how to migrate a Thunderbird POP3 mail client for Windows Xp to Thunderbird under Ubuntu. Any other config : you'll need to look elsewhere, or use this migration path as a guideline to go and figure it out for yourself.

Start by removing evolution and installing thunderbird. You can do that with Synaptic package manager, or apt-get

	

	#Remove evolution
	sudo apt-get --purge remove evolution*

	#This also removes ekiga because it depends on evolution-data-server so we re-install it
	sudo apt-get install ekiga

	#Add Thunderbird
	sudo apt-get install mozilla-thunderbird
	

Thunderbird user state migration

Similar to firefox, the user-specific settings and configuration, along with folders for received and sent messages, spam filter settings, etc., are stored in a profile folder. On Windows XP this folder is in ...\Documents and Settings\%username%\Application Data\Thunderbird\Profiles\zzzz.default. On Ubuntu, the profile, as expected, is in $HOME/.mozilla-thunderbird\xyxyx.default (zzzz and xyxy are random names). As for Firefox, just copy the "XP" profile to $HOME/.mozilla-thunderbird/ on the Ubuntu system, rename it or set the correct folder name in $HOME/.mozilla-thunderbird/profiles.ini, and start Thunderbird. Et voila, your Thunderbird in Ubuntu looks and behaves exactly as it did on Windows XP, and all your mail messages are still there.
Just a walk in the park.

Also as with Firefox: if you were using some other mail program, you could pull this migration of by first installing Thunderbird on XP, let it import as much as possible the settings from your mail client, then copy them over to Ubuntu.

The Good, The Bad, The ...

So far for the good news : you can easily migrate from Windows XP to Ubuntu without loosing any data, including email messages, web browser preferences, email and browser configuration, and so on. And for the most common applications (Microsoft Office, Instant Messengers, ...), there are compatible alternatives in Ubuntu (or Linux in general). Forget Windows, go for Linux ? Easy.

The bad news : it will not be this easy for each and every Windows application. Although there are alternatives for most applications, there is not always a migration path or any form of compatibility between them.

Think scripts. If you need to create / test or just like to use batch files or visual basic scripts : this (obviously) will not be possible on (Ubuntu) Linux. Granted that there are many other (powerful) scripting languages available, you will not be able to run visual basic scripts on Ubuntu, and there are - to my knowledge - no ways of converting visual basic to, say, Python, or whatever. The best you can hope for is possibly some Windows emulation (wine ? ). This goes for 'real' vb script. There may be some sort of conversion for Visual Basic for Applications (used for Word/Excel/... macro's) in OpenOffice, they seem to be supporting several scripting languages, including a Basic dialect -- I did not check that out yet, but I wouldn't count on it). Of course, you can re-create your batch files in shell scripts, Office Macros into OpenOfice Macros, Visual Basic in Perl, Python, or whatever, but you can not re-use them.

If you have databases or even applications created in Microsoft Access, you better learn to live without them. Although there is database functionality in OpenOffice, and plenty of real databases in the Open Source environment, you can not - to my knowledge - simply convert a .mdb (Microsoft Access database file) into any Linux-compatible database. You *may* be able to use SQL to recreate the database and bulk copy the data in an other database system or application, but in any case, your MS Access database will not run on Ubuntu (except, maybe, with some sort of Windows emulation) The same may be true for a number of other applications - although the developers of those 'typical' productivity applications are doing a wonderful effort to be compatible with their Microsoft / Windows counterpart.

Ideas for workarounds

Every problem has at least 2 solutions : a real solution and a workaround. You can work around those incompatibilities by creating some sort of Windows environment on your Linux system. Possible approaches are:

Special cases

Go Deep

Migrating from Windows to Linux goes deeper that swapping Microsoft Office for OpenOffice and getting used to some icons that look different and are not where you expected them to be. Especially if you're a Windows Power User, you may be in for some frustration. Sometimes you'll be able to figure out things because of your knowledge of Windows, but sometimes you're point to be going about things exactly the wrong way, because what was the right way in Windows, does not work for Linux. After all - they're two completely different operating systems, even if on the surface they can be made to look alike.

If you're in to system administration - on your own computer or on computers you maintain - this might help you overcome some of that frustration : Windows to Linux Quick Start Guide for Advanced Users and Would-be System Administrators (or : how not to get lost while walking in the park)


A complete guide, with checklists, for a Windows to Linux migration can be found at Tom's Hardware. Deals with hardware compatibility and offers a checklist and advice for data migration.

More Help

updated October 2007

In the ubuntu dcumentation, you can find additional information on how to plan and implement your migration. It also offers suggestions as to what applications you could use to replace common Windows programs.


Koen Noens
August 2006