HowTo: Restore the Windows Master Boot Record (without using a Windows CD) using Ubuntu Karmic.
You know how it is – you take a client’s Windows based machine, do a dual-boot installation of Ubuntu (which replaces the Windows Master Boot Record, or MBR, with GRUB and sets up an option to boot Ubuntu or Windows) so the client can evaluate Ubuntu, but then later on for whatever reason, Ubuntu is no longer wanted. It’s removed and you need to restore the system’s ability to natively boot Windows directly without a GRUB menu.
You’re probably thinking “why the hell would anyone want to do that?!”… well, the fact of the matter is you sometimes come across a client who is just too mind-set and refuses to use anything but Windows, so yes – sometimes you need to restore the Windows MBR, but how do you do that when you don’t have a Windows CD handy?
Well, here’s how to do it using nothing but an Ubuntu 9.10 (or later) LiveCD.
It’s a little known fact that the Windows bootloader is nothing special. In fact it contains nothing proprietary to Windows at all. All the Windows bootloader does is simply look for the partition marked as “bootable” or “active” and transfer control of the boot process to it.
And would you know it? The Ubuntu LiveCD has a binary image of a generic open source bootloader that does just that!
- Boot your soon-to-be-Windows-only machine using the Ubuntu 9.10 (or later) LiveCD. Doesn’t matter if it’s the 32-bit or 64-bit version.
- Once booted on the LiveCD, open a terminal by going to the Applications menu and then choose Accessories and then Terminal.
- Find out what the designation of the Windows drive is (generally it will be the first drive, eg: /dev/sda or /dev/hda). If you are not sure, issue the command:
$ sudo fdisk -l
…and review the output, looking for your NTFS Windows partition. Make note of the drive that partition resides on (not the partition itself), eg: “/dev/sda”, not “/dev/sda1″.
- Now type in the following (remembering to substitute the correct drive device name for your setup in place of “/dev/sda”):
$ sudo dd if=/usr/lib/syslinux/mbr.bin of=/dev/sda
…which will write the image of a standard MBR contained in the /usr/lib/syslinux directory of the LiveCD environment to the first hard-drive, overwriting GRUB.
WARNING: Do NOT use a partition designation, eg: “sda1″ or “sda2″, etc. This will overwrite the start of that partition which will effectively destroy data. The MBR exists at the start of the drive only, so only specify “sda” with no number on the end.
- Shutdown and reboot. Windows should now start “natively” without GRUB appearing at all.
- Normally I’d say “pat yourself on the back” here, but it’s Windows… ;-)