Sunday, February 08, 2009

A quick and dirty guide to installing Windows7 on an old Linux laptop

Before we get started, a quick overview of what we are about to do in the next few minutes (or hours depending on your luck).

Windows7 is the exciting new OS from Microsoft, which has garnered rave reviews from everywhere. It is touted as the best windows ever, and even the Linux community is keeping a close watch on its progress. The most interesting feature for me would definitely be the more optimized and fast experience, and the jump lists; Details of which I will cover in later sections.

My current rig:
Compaq nx7010 business laptop (2003)
Pentium Centrino 1.6GHz
1.5 Gigs of RAM
OSs installed: Linux Mint and Windows XP
Graphics adapter: ATI Mobility Radeon 9200
Critical Drivers: Intel wireless ipw2100 and..Connexant AC97

Key Objective:
To install windows7 keeping my Linux and XP intact. And atleast have wifi and sound working on the new OS. Aero will not function with the depricated graphics adapter so will give it a pass.

A Word of Warning:

1. Backup all your important stuff. Be careful, It's a beta we are dealing with here.2. Keep all your old windows drivers in a place, as we may need it later.
3. This is a long article, so be patient and don't jump steps.
4. And please, don't panic :)

As with any OS installation, there is some prep work needed
1. Prepare your partitions. We will start off with resizing our existing partition.I booted with my Linux Mint live cd and used gParted to resize my Linux partition and create a NTFS partition for windows7.

2. Download Widows7 beta iso and burn it onto a dvd.
3. Write down the activation key issued from the website on paper.
Great! We are ready.


1. Pop in your Windows7 DVD and restart your pc.
2. Go slow. Click on start installation.
3. Chose Custom installation and select the newly created partition as the location where you wish to install Windows7.
4. Grab your ipod and go for a walk.
5. Come back after 45mins, select basic settings like your language and timezone. Enter your beta key and your new OS is ready

Before you start jumping in joy, there is something we overlooked. You will observe that the windows bootloader seems to have replaced GRUB. It can smartly detect our XP and add into the boot list. But where is our Linux? Let's come back to it a bit later. There are still some challenges.

Your old drivers won't work. ATI stopped supporting my old gfx card years back. Same goes for intel. No more pro wireless 2100 drivers for Vista or above. My sound card Connexant AC97 also has no compatible soundcard drivers after XP. Here are a couple of things, you could do.
1. Install your old driver packages using compatibility mode.

2. Check Windows Updates if the drivers are available.
3.Google for newer drivers or solutions from folks with similar issues.
4.Manually install your old drivers from the "Device Manager" console.
Right Click on an unknown device, select "Update Driver Software" and choose "Browse my Computer.." to browse to the location of the extracted driver.

5. If all this doesn't help, get a new rig mate, or live without the unrecognized hardware.

Getting our GRUB back:
We have all the time in the world to play with our spanking new Win7 but let us fix our grub first and come back later. For this, load your favorite live bootable cd and open the terminal. Type the following commands to fix grub.

$ sudo grub

grub> find /boot/grub/stage1

grub> root (hd0,0)

grub> setup (hd0,0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd0,0)"... failed (this is not fatal)
Running "embed /boot/grub/e2fs_stage1_5 (hd0,0)"... failed (this is not fatal)
Running "install /boot/grub/stage1 (hd0,0) /boot/grub/stage2 p /boot/grub/menu
.lst "... succeeded

grub> quit

Now restart your pc and wait for grub to load. You would see your old grub boot screen with a line for WinXP. Select it and voila, you are taken to the familiar Windows7 boot manager. This was a big surprise to me as well :). If this doesn't work, edit grub and add an entry pointing to Windows7.

Boot into your installed linux instance and edit grub.lst
$ sudo gedit boot/grub/menu.lst

Add the following lines at the end

# on /dev/sda4
title windows 7 beta (Loader)
root (hd0,3)
chainloader +1

My windows 7 resides on /dev/sda4 hence it's (hd0, 3). Confirm this via fdisk or gparted.

Closing Remarks:
Yeah, we are done now. We now have 3  different OSs  co-existing beautifully on our old laptop.  It wasn't a smooth ride but we made it :) . Enjoy, experiment, benchmark and review the three great OSs and drop me comments on your experience. Thanks.

Connexant AC97 help

“How to” Dual boot Ubuntu and Windows 7 (Ubuntu installed first)


DT said...

Hey Anoj!
Great post. Relieved to see that Win 7 is a worthy upgrade, as u say. However, its great that u plunged into the Beta, I and my friends dun have the balls.

Anonymous said...