The Computer Corner Take II (#33) by Bill Kibler

To see more Computer Corner articles look here: CCII page or check out the Home Page .

Windows XP to Linux - The Basics

Gathering Data

NOTE: If your not sure what Debian is, or Linux in general, go here: About Debian , a good place to start learning about Linux and Debian specifically. You will find many links to detailed discussions about Linux, hardware, support, versions, history, and FAQ pages. After checking out the "About", come back here to find out how to move from XP to Linux.

Microsoft has stopped supporting Windows XP and is flooding the world with their FUD about buying new systems and switching to Windows 7 or 8. There are many versions of Linux that will give you the look and feel of Windows XP. The modular design of Linux and past speed improvements to the kernel will give users a performance boost over XP. The internet is full of articles describing how to convert from XP to Linux and continue to use your old data and programs. This article focuses on solving some of the problems you might encounter during the conversion.

The first problem someone converting from XP to Linux will encounter is simply "should you". There is not a clear answer to that question, however, I will give you help in that direction. Clearly there will be some changes for you, should you go to Linux. Thus you need to ask yourself, if your willing to learn some new concepts, tools, and ways of doing things. If you can just barely use the computer now, I would say upgrading to a Mac might be a consideration. The newest version of Windows has proven to be very troublesome for many users, and yet I know of many seniors who have switched to a Mac with great success. If all you use your computer for is websites and games, consider one of the Android tablets. The smaller size and easier usage, make them great for simple tasks.

If you changed how your XP worked, tweaked many of the settings, got frustrated by how Windows refused to work for you - your a Linux candidate. Do you remember DOS and how easy it was to do things, Linux is like that. Do you want choices, more than you know what to do with? Linux is all about choices, and thus you need to decide that - yes - you want to try it. At this point it might help if you try at least one of the "live" distros and have some idea of what your going to find once you switch. The Debian Live project has a live version for each of the four main desktops available and you can get them here. Please note that these are all DVD ISO images, however, I do have a version for the xfce desktop that is only 400MB in size and will fit on a CDRom - the link is at the bottom of the page. After trying the live distro, you need to determine if your XP system is up to the task.

As much as I like to convert people to Linux, I would be failing you if I didn't mention the fact that your hardware is most likely 7 to 10 years old. Consider as well that replacement parts might be impossible to find new and only used parts that are as old as your system is what you would find to fix any problems you might encounter. I just converted a friends system and it had what I call "transitional hardware". "transitional hardware" refers to systems that were produced just as standards were changing. An example is a system with both IDE and SATA interfaces. You need to watch out as well for systems that have very low "rev" numbers. The system in question, had a rev value of "Rev: 1.01A". That says to me, the motherboard was in the first production run after a successful prototype. To say there might be less than optimal devices and interfaces on the board I feel would be an understatement. Keep in mind that it may have run XP for many years and will probably run Linux as well, but you should expect some items to work a bit flaky. I know of one system where the USB port would just go out to lunch for no reason at all, which I suspect was due to the early implementation of the USB 2.0 standard.

At this point you have decided to ignore any hardware issues and want to install Linux if for no other reason than to try it, after all the cost is practically nothing. You still would like to have XP to run one or two special programs and to be honest, your still not sure about this OS called Linux. Personally I think this is the way to go for most new users, however, I know from helping others, you will not learn Linux until you completely cut the Windows cord. You may have data and a few programs on the XP drive you want, as well as a safe feeling that it is still there, so what you want to do is have the "dual boot" option. That means shrinking the size of the XP partition to make room for Linux and then letting Linux mount your old Windows partition so you can play with it. I might mention that you can also add another drive and that Linux will be happy booting from a second drive, just as easily as it can boot from any partition on your existing hard drive. I really haven't found a case where Linux can't boot from some setup of drives or partitions.

Partitioning Your Hard Drive

You have bitten the bullet and decided to do Linux, your aware of the hardware concerns, you got your box in front of you, what now. Your first step is deciding whether or not to partition the hard drive and make room for Linux, or add a new drive. Before you do anything, you need to backup your old data just in case you do something wrong. If you really don't want the data or anything to do with XP, you can sort of skip ahead and let the installer handle the hard drive, although I suggest reading on, as I will touch on a few items that apply later as well as now. If you decided your drive is about to die and want to use another drive, new or old, I suggest removing the old drive for now and installing the new drive - again - skipping ahead to the installing step is possible, but not a good idea. last case, you have a 200GB drive, windows is using less than 100GB, and so we have room on the drive for a Linux partitions - what next?

What we need to do is "shrink" or "resize" the Windows partition. We do that using the Linux tool "parted". The best way to use the tool is "gparted.ISO" - a live Linux distro set to run "parted" in a graphic desktop. You will need to download the "ISO" image and burn it to a CDRom. I suggest going to "distrowatch.com" and downloading the latest from there. There is one step that you need to do before we use gparted and that is in Windows - chkdsk and defrag. It is important that you have Windows check the disk for errors and force a defrag of the drive before shrinking the partition. I have found that XP is notorious for corrupting the hard drive and thus you need to try and correct that before the Linux tools can work properly. We do that in XP by going to the "my computer" and selecting the "C" drive with the left mouse button, using the "tools" tab, and selecting checkdsk which will require a reboot - then return again and do a defrag - even if it says not needed - force it to do it. We need to make sure the drive is clean of errors, and that as much as possible is pushed down to the beginning of the drive.

All done fixing errors and defraging the drive, what next? Hopefully you have downloaded the latest version of "gparted.iso" and burned it to a disk. Next step is inserting the disk and booting from it. Now this should work, however I suspect a lot of systems out there will have the BIOS setting such that it just skips anything in the CDRom/DVD drive and goes right to the hard drive when powering up. You will need to change that first, and we do that by going into the BIOS, just as the unit is powering up. NOTE: You can not change the BIOS settings from inside Windows XP - only during the bootup steps do you have access to the BIOS settings. This is a big problem, since every motherboard vendor has their own way of accessing the BIOS - think "key" combination like key "F1". This is a bigger problem on newer systems, as they try very hard to keep you from accessing the BIOS, especially if it contains a secure boot - they don't want you turning off the secure boot - so they do their best to make it very hard to get to the BIOS. There are numerous ways to force a BIOS prompt, holding down a single keyboard key as it powers up, will make the BIOS think a key is stuck, and you should get an error message with how to access the BIOS. I have had to remove the hard drive in a few cases to force a boot failure. In the last case, resetting the CMOS/FLASH usually forces the BIOS mode. Generally the XP systems just need you to enter the BIOS, find the "boot order" menu and make sure the CDRom or DVD drives are selected before the hard drive. Save your changes and reboot the system and it should try and load the gparted.iso disk.

So your system went to the CDRom and you got the "gparted" menu, selected standard option, it started loading, gave some messages and locked the whole system up. You try to reboot, nothing works, power off and try again - still nothing. This was the case with our "transitional hardware" system and I found the "fail safe" boot option worked. If this is your situation, you may need to write down all the boot up command line options shown, as you might need them when loading the Linux install disk later on. What you see has to do with some standard PC hardware features, either poorly designed or simply not implemented at all. A normal Linux boot tries to use all the great PC hardware features possible, yet they often don't work at all. Normally Linux handles that just find, but sometimes it can't and in that case you need to manually tell the kernel not to use those features as they will lock things up.

So it booted into a Linux setup process, most of which hitting your return key will work, and eventually gives you a graphic desktop, then starts parted, and now shows you the way your drive is partitioned. What we want to do is select or highlight the "C" drive or main partition, and click on the "resize" box and we get a new box that shows us the options. There are some screen captures listed at the bottom of this article - read this section then check the shots out. You can use the mouse to move the right side end toward the left side, but be careful not to move the left end point. I find it is safer to change the values in the "after" box, which is the size of the new free space you want to get for Linux. I like to see about 10GB at least, although if your going to do more than just test Linux, 30 to 50GB seems better. Once you have the new size entered, make sure the before box hasn't changed - typically it should be "0" - this controls the beginning point of the Windows partition and it is best not to change it. If all looks correct - (you did back things up first?) - use the "apply" tab and parted will start shrinking the partition - this can take a very long time if you have lots to move. There may be a second partition that contains a "restore" filesystem and it can be ignored or removed if you never want to re-install the original Windows operating system. Please note that a factory restore will re-partition the hard drive and remove any Linux partitions. It is important to understand that you can not load Windows after installing Linux, you must always load Windows first and then load Linux. I have also seen Windows corrupt Linux partitions, so be advised that there is some risk with dual booting.

After you have re-sized the partition, you need to make Linux partitions in the unused space. The install tool can do this, but I prefer to make it using gparted, as it can be formatted and setup the way I like before we do the install. Select the unused space, select new, shrink the end value by about 1GB, as that will become your swap partition, and select a "ext4" format. Select the remainder of unused space and select a format of "swap" for it. You might consider labeling these partitions, as it could help later when trying to know what is what. Do the "apply" and it will create the "root" file partition and swap partition in quick order. At this point the drive is now setup and ready for installing Linux. I suggest rebooting off the Windows partition to just make sure all is well and ready for the next step.

Installing Linux

There are generally speaking two types of installs, whole system and package based. Ubuntu and Linuxmint do whole system. By that I mean, they format the hard disk, and copy the entire system over in one process. The results is just a copy of what was on the DVD, as the whole system will no longer fit on a CDRom. This also means that you get just what was on the disk at the time of the disk creation - doing an update only takes place after the whole system has been installed and you have rebooted. The Debian install however works by installing packages. The hard disk is formatted and then mounted in a "chroot" environment where a normal package install operation takes place. Doing the install that way allows for variations of process and as such you can use a 7.0 install disk and select the internet "mirror" option, which when done will have installed a 7.4 (latest at time of writing this) release. The disks for Debian can be a CDRom, a DVD, or even a BlueRay disk, and each will give the installer a bigger choice on the amount of packages to load. Using the Debian Stable XFCE4 Disk 1 will install a minimum xfce4 desktop system and no more. From the DVD, you can select to install gnome, KDE, xfce4, and LXDE desktop systems, or all of them. From the BlueRay disk you have the entire Debian repository of over 37000 packages. Linux is about choices, and Debian tries to please all users. Personally, I like the non-graphic option, as it doesn't require a mouse, and just works faster once you understand that all you need to hit on the keyboard are the tab and return keys. You will be asked to enter passwords for the "root" and "regular" user accounts, but mostly using the tab and return for most default answer is all that is needed. Having done hundreds of installs, I pretty much know what to do, and as such have the routine down pat and breeze through a setup using tab and return in a matter of minutes. For first timers, you will need to read the messages and make some choices at various times. One choice will be to use the "mirror" or not. If on a slow internet connection, or not connection at all, skipping the mirror will load a minimum default system based on the disk selected. Choosing the mirror will have the installer use the selected mirror repository instead of the inserted disk and will change a xfce4 desktop selection to a gnome selection. I think this is a bug in the installer, but once you know about it, you can choose not to do a "mirror" during the install and instead do the updates at a later time, as it will load the disk's desktop and a few utilities and nothing more.

Suppose however you insert disk, select install, it displays a few bits of text and hangs. Hangs big time. Nothing you do works. Powering down or doing a hardware reset are the only options that work. Well, that probably means you have a problem motherboard and the normal Linux bootup options don't work. If you had the problem with gparted, you probably used the "fail safe" startup that showed you a long list of command options that it used to make Linux work. You will need to use those same options to do the install. We can enter those options by following the on screen help and hitting a tab key, this will give you the command line and you can edit it by using the cursor keys and typing in the new options. When I did this for the rev1 board, the "vga=788" line was changed to "vga=normal". I did some online checking and was shown a list of values that could be used, however, actually using those all failed, and only the "normal" seemed to work. A few on-line blogs suggested that "irqpoll" would fix my problem board, but it didn't, only the whole "fail safe" line worked. I know that probably some variation of the whole line will work, but doing a lot of power resets is very hard on these old systems and thus I decided to just use it as shown - it will be used by the installer to setup your regular install bootup process as well. Here is the command line that worked for me - this is one line, no returns allowed:

> /install.386/vmlinuz vga=normal initrd=/install.386/initrd.gz -- acpi=off irqpoll noapic noapm nodma nomce nolapic nosmp nomodeset nosplash
Please note I removed the "desktop=xfce" to make sure it didn't try to load the X-system, which could cause problems on it's own. This will be a non-graphic install and hopefully it will work for almost any system, no matter how buggy it might be.

The only point left to cover is the setting up of the hard drive. If you used gparted to format the new Linux partitions in ext4, you will need to use the partitioning process in manual mode. If you have a new drive and can use it all, just use the "whole drive" option and put everything in one partition. For the manual step, you need to select your new Linux partition, use it as root partition, format it again in ext4 to be safe, and have the mount point be "/". Say the setup is done and then you will select the smaller 1GB partition and select format as swap and again your done setting options and are ready to move on to the next screen. You must say "yes" to the prompt that displays your selections of how the partitions and hard drive are setup. If something looks wrong, select "goback" or "no" and try again. The partition table will not be updated until you select the "yes" option. If you say "yes" and later realize it was wrong - too bad, those changes are now done and you may need to restore from backup if you accidentally formatted your XP partition. So the only real place in the process of installing Linux that you must be sure about what your doing is the "partitioning" section. You need to be sure to not "format" the old XP partition(s), you must format and select for use the Linux partitions, the Linux partition must have a mount point - typically "/". Once the "yes" is done, the install starts for real and files and packages are installed on the partition. The partitioning steps are shown in some screen captures listed at bottom of page.

The Linux install will reboot into "grub" - the boot selecting tool, and typically you will have both XP and Linux boot options. Once in a great while the grub tool will not find your XP partition at install time and thus you will need to check the web for help in fixing that problem from Linux - however - your XP partition is there, you just need to fix grub.cfg to find it. If you added a new hard drive, depending on how you did it, may require some Linux steps to setup grub to see all the drives properly - check the web for help. Dual booting can actually boot more than two OS's, you can have as many as you can manage or have space for. However, tools such as Virtual Box provide a simpler means of testing Linux distros than installing test versions of Linux on a hard drive. Don't forget many distros have live Linux disks and you can try those on your machine or in Virtual Box. I often download live images and have Virtual Box use them from the downloaded file on my system - no disk burning needed. You can even do this to help you decide which version of Linux to use, as there is a version of Virtual Box that will run on XP.

Final Notes

Most of what I covered is for Debian Stable, however, lots of Linux distributions are based on it, and thus the explanation is somewhat valid. No matter which release you use, the steps will be similar. For dual booting with XP, you will need to re-size the XP partition (or add new hard drive), create partitions for Linux and swap, format the new partitions, and install the release software. Once the new Linux has been installed, you will need to perform an update to make sure you have the latest packages. You might want to install a different desktop, as Debian has plenty more than the four mentioned above. You will want to change the desktop default setting(s) to match your way of working. Personally I prefer the "focus follow mouse" option, as it allows me to type text into a half hidden terminal session. Little changes like that only come with lots of experience and some trial and error testing. Which is what you need to do next - use Linux and learn.

Links of interest...

gparted showing shrink/resizing of Windows partition.
gparted showing creation of Linux partition.
gparted showing creation of a swap partition.
gparted last screen after completed setup.
Debian Install hard drive partition setup step.
Debian Install last step of partitioning selection.
Debian Install just before partition update - last chance to back out.
Debian Install selecting grub partition.

Get Virtual Box from here for Windows XP and later, MacOS, and Linux.

xfce_1386_live.iso - a 440MB Custom XFCE4 Live ISO.
List of sections in "wheezy" repositories.
Debian's Live CD WIKI page - great place to start!
Debian Live systems main page - docs and image builder.
Debian Live-build manual page - all you need to know about live images!


Kibler Electronics, PO Box 535, Lincoln, CA 95648-0535, USA.
Email: bill@kiblerelectronics.com
Copyright © 2014, Kibler Electronics
Written in Mar-2014 by Bill Kibler