Taking the good stuff when trading Windows for Linux

So you're switching from Windows to Linux? Great. Like other users and organizations who've taken the plunge, it's likely you're making the move to take advantage of Linux's stability and reliance on open standards. Now all you have to do is prepare carefully for your move.

In this case, careful prep means not just installing Linux on your system -- either on your existing computer or a whole new machine -- but also transferring your documents, bookmarks, preferences and system settings, and in some cases finding equivalent open-source applications for the Windows applications you were using before.

It's not too difficult to find info on how to actually install Linux, but what about the process of migration, of moving what you've been doing on Windows over to Linux and doing the same thing there? Here, we give you the lowdown on the essentials of making a full-blown Windows-to-Linux migration. We tell you what you need to be prepared to do, how to move things over, and what applications to consider as replacements for many common Windows apps.

We won't cover the Linux installation process itself here, which varies widely between distributions. If you don't already have some knowledge of the installation process, put this article aside and get familiar with that process first. Even though installing Linux is a lot easier now than it's ever been, it's hugely useful to be as familiar as you can with the setup process. That way you can best plan how to migrate your data and user settings and not be caught off guard.

Three roads to data migration

There are three basic approaches you can take in migrating your user settings and data from Windows to Linux:

-- Let Ubuntu Linux do it for you. Ubuntu is one of the most popular Linux distributions out there and, as of right now, the only major distribution that has migration tools built in as part of its setup process.

-- Use a third-party application.

-- Do it yourself.

The last option obviously requires the most expertise of the three, but it also gives you the most flexibility, since you're essentially writing (and punching) your own ticket.

Speaking of maximum flexibility, the work described here is a lot easier if you are migrating to an entirely new PC that has a Linux installation, rather than changing operating systems on an existing PC. With a new machine, you can leave everything exactly as it is on the old system more or less indefinitely. If you must run Linux on the same machine that currently runs your Windows, it's doubly imperative that you back up all your data before you migrate.

Which brings us to Topic A: backup.

But first, back up

Whatever approach you take, the very first thing you should do before attempting a migration is make a full backup of any data that you can't replace. If you choose to migrate documents into new formats, keep the unchanged originals -- if a particular document can't be converted correctly now, you'll always have the original to refer back to.

Make your backup in a format that is as platform-neutral as possible, and make it to a device that can be read by either platform. That way, if you later have to restore something on either Windows or Linux, you won't run into any unexpected hassles.

The simplest way to do this is to just copy the files as is to another disk that can be mounted in Linux. Most Linux distributions can now read the FAT32 or NTFS disk formats natively, so you could copy your files to an external hard drive formatted in Windows with either of those file systems, which will then allow you to read the data back easily in Linux. I recommend using NTFS as your target partition type if you're copying from NTFS to begin with, since FAT32 can't support individual files larger than 4GB.

One way to do this is to make a .tgz or .zip archive of the original data to be saved, which you can accomplish with most common archiving utilities. On Windows, 7-Zip has been my favorite choice for a while because it's both free and open source. If you choose to use it as well, use the .zip or .gzip/.tar file formats with the program, not its own proprietary .7z compression format. A Linux version of the program, p7zip, also exists, but since every Linux distribution out there has some way to extract .zip and .gzip archives, those formats are the way to go.

Incidentally, the more stuff you have to move from one platform to the next, the more you may want to reconsider how you store things to begin with. If you're taking the time to migrate to a whole new operating system, maybe now is a good to rethink how you structure your storage. Hard disks have become cheap enough that keeping data entirely segregated on a second drive is no longer an unprecedented concept, and it may save you a lot of work in the long run. (In my own case, I have my personal documents on a second hard drive, separate from the OS installation, and a third drive devoted entirely to my music library.)

Now, on to the actual migration process.

Let Ubuntu do it

Ubuntu Linux tries to make the migration to Linux as easy as possible by allowing you to automatically migrate user files and even some system-specific user settings from an existing Windows installation.

Right now, Ubuntu seems to be the only major distribution that has such tools as part of its setup process, though perhaps that situation will change as Linux grows in popularity. If you want to switch to Linux now, and you'd like your distro to help you with your migration, Ubuntu is your current best bet.

When you begin Ubuntu's setup, it scans all the available drives in the current system and looks for any Windows installations. If it finds one, it'll display all the users in that Windows installation and allow you to choose which ones to migrate to Ubuntu, as well as what types of data to copy over. The choices are not very granular -- you can't elect which specific files to copy, for example, just general categories of files -- but they're useful. You can choose your Internet Explorer favorites, for example, or your currently selected wallpaper, your avatar, and the contents of your My Documents, My Music and My Pictures directories.

Another nice thing about the Ubuntu upgrader: It works regardless of the source or destination of the data. If you have Windows on one partition or disk and want to install Ubuntu somewhere other than where Windows is right now, the upgrader will copy over any Windows settings and documents it finds (and/or you can tell it which files you want to move).

This way, the upgrade is completely nondestructive -- meaning the original data isn't touched in any way. Ubuntu doesn't yet support switching to Ubuntu from within Windows -- i.e., something where you'd boot Windows normally, insert the Ubuntu CD and start the switchover process there, rather than just booting the Ubuntu CD directly and beginning the switch that way.

If you're curious, you can read about the proposed future directions for Ubuntu's migration feature on the distro's wiki. Mozilla Thunderbird, for instance, is one of the third-party programs that the Ubuntu developers want to be able to migrate settings and data from in the future. Also on the drawing board is that ability to begin the upgrade process to Ubuntu from within Windows itself.

Use a third-party application

If you're using a Linux distribution that has no integrated migration tools and you're not comfortable with the idea of trying to move things around yourself, there are third-party utilities designed to alleviate a lot of the heavy lifting. However, be forewarned that these tools tend to be written for enterprise and corporate users rather than individuals -- they're really geared for helping sysadmins with mass migrations.

MoveOver 4 is a commercial application that migrates all of the most important things -- documents, look-and-feel settings such as wallpaper and fonts, user preferences like browser bookmarks and cookies, and so on. This takes a lot of the tedium out of migrating many of these things manually, especially things like network drive and printer mappings.

The big drawback to MoveOver is that the range of Linux distributions it supports is rather narrow. The program only supports Novell Linux Desktop 9 and Linspire Five-O as target distributions in the 4.0 version; Version 3 only supports the Sun Java Desktop System and Fedora Core 2.

That said, there's also an open-source branch of the product, OpenMoveOver, which consists of a community edition of the Linux-side components. These pieces can be used by developers to create migration tools for other distributions, so it's entirely possible that other distributions will be MoveOver targets in the future.

Another product is Alacos' Desktop Migration Agent, which migrates documents and a broad range of settings from Windows systems. It, too, is designed mainly for corporate migrations and not end users, but it does support a decent range of Linux distributions as migration targets: Red Hat Enterprise Linux, SUSE, Novell Linux Desktop and Fedora Core.

Do it yourself

It's entirely possible to manually transfer all the data and settings from your Windows installation to your Linux installation.

If you're adding Linux to an existing machine, how you deal with your data will vary based on the exact migration process you're using. For instance, if you're overwriting your existing Windows partition, you'll need to back up all that material somewhere else (an external drive or another partition that won't be touched during the migration); if you're preserving the Windows partition for the time being, everything can simply be copied directly from there.

Most major Linux distributions have some guide for how to manually migrate documents and application settings into Linux. Ubuntu, for example, covers most of the major points in its own documentation, including pointers on how to move mail from Outlook and Outlook Express into Thunderbird's mail format (which can be used as is in Linux).

Most Linux distributions place the user's files -- documents, e-mail, just about anything they create with an application -- in a directory, typically named /home/<username>. The exact hierarchy of subdirectories in that directory is generally up to the user. You could, for instance, manually create subdirectories named Movies, Documents, or Databases, and save the appropriate files into those directories.

Some applications also create their own hidden directories within your /home directory to store user-specific data -- Firefox, for instance, creates a directory named /.mozilla/firefox. But there's little chance that the name of any directory you'd create would collide with another such directory (and if it did, you'd be warned about it).

Moving everything over manually is not too difficult if most of the data you work with is not intimately associated with your Windows installation. For instance, if you keep all your user data on another drive or simply in another, non-application directory rather than in Windows' \Documents and Settings\<username> directory, then the documents can simply be left in place and accessed as is.

If you keep your data in the \Documents and Settings\<username> tree and you're copying that intact or packing it up into an archive, you can generally preserve the existing directory structure by just copying everything within \Documents and Settings\<username> as is and then unpacking it into your Linux home directory.

If you want to be really cautious, create a directory within your Linux home directory and restore your files into that to minimize the chances that your restored files might collide with something created by an application or the system itself. Everything can always be moved around later on.

Moving application settings between Windows and Linux versions of an application is a different matter, and the process will vary widely from application to application. Sometimes the settings for the application are stored in a stand-alone file that you can easily move to the Linux version of the program. This is not always possible, however, so you need to approach this step with caution.

An example: Mozilla's Firefox browser, which runs on Linux and Windows (among other operating systems) keeps user bookmarks in a file named bookmarks.html. In Windows, this file is kept in the directory %AppData%\Mozilla\Firefox\Profiles\<profileID>.default\, where <profileID> is a randomly generated string used to distinguish your Firefox user profile. In Linux, however, bookmarks.html is stored in /home/<username>/.mozilla/firefox/<profileID>.default.

Related:
1 2 Page 1
Page 1 of 2
IT Salary Survey: The results are in