Tuesday, March 25, 2008

Restoring Windows MBR with ubuntu LiveCD

Boot into your Ubuntu LiveCD on the offending machine. Once Ubuntu starts up,
go to System -> Administration -> Software Sources and enable (by checking it off) the Universal repository.

Now, open a terminal session (Applications -> Accessories -> Terminal) and type the following:

sudo apt-get install ms-sys

ms-sys(http://ms-sys.sourceforge.net/) is a program used to write Microsoft compatible boot records.

Now you’ll need to figure out what partition is the one hosting your Windows operating system. Back in the command line, type:

sudo fdisk -l

That will list the available partitions. You’re looking for a partition that says something like

/dev/sda1 1 9327 74919096 83 NTFS

The two important bits are the ‘/dev/sda1‘ which is the partition itself and the ‘NTFS‘ which tells us it’s a Windows formatted partition. So your Windows partition exists on your drive sda and it’s partition 1. The MBR for drive sda (assuming you boot into windows using it’s native boot loader) is what you want to repair.

We want to fix the MBR on /dev/sda. To do so, type:

sudo ms-sys -m /dev/sda

You’ll want to change the ’sda’ bit if your results from ‘fdisk -l‘ are different. If for instance your windows install is on sdb or hda.

Once you do that, reboot the machine, removing the LiveCD from the drive and Windows should come back to you.

Sure, you could do this by inserting the correct Windows CD and booting into repair mode from it - but I find the Ubuntu way a bit faster and I’m more likely to have an Ubuntu LiveCD on me than a Windows CD.