I don’t know why I do these things.
It occurred to me this afternoon that it might be nice to have a native Ubuntu Linux partition running on my main Windows Vista machine. “Should be easy,” I thought. So I whipped out my trusty Feisty Fawn CD, resized my Vista partition with GParted, and proceeded to install Linux.
The installation itself went fine and Linux started right up. The problem came when I tried to boot back over into Windows Vista. In a nutshell, it wouldn’t. I’d get the green “Knight Rider” screen, but then the system would switch to a black screen and everything seemed to grind to a halt.
The problem got worse from there. Supposedly there’s a Startup Repair feature on the Vista install DVD. Unfortunately, I was never able to look for it. Booting from the DVD only got me as far as the same black screen.
Some Web searches revealed that Vista apparently hates it when you muck with your partition tables using older tools. This goes not just for Linux, but Partition Magic and the like as well. Just about any tampering with the drive after Vista has been installed results in a system that cannot boot Vista.
(This is yet one more reason why many of us ask why on Earth we installed the stupid thing in the first place; but I digress.)
Luckily I wasn’t hosed yet. As I said, I had a working Ubuntu partition on my drive now. Fortunately there are tools under Linux that can fix this very problem.
The package you want to look for is called ntfsprogs. It’s not installed by default with Ubuntu, but it’s available from the official package repositories. You can download it using Synaptic or do a “sudo apt-get install ntfsprogs” from the command line. It’s available for most other distros as well, but I’ll leave it to you to figure out how to get it. (Hint: You can start with the project homepage at http://linux-ntfs.org.) The important thing is to make sure you have the latest version (1.13.1 as of this writing).
Once you have ntfsprogs installed, the rest should be easy. Assuming you know the name of the partition that’s having the problem (/dev/sda1 on my Ubuntu system), you simply open a terminal window, unmount the partition in question, and type “sudo ntfsfix partitionname“. It should fix the problems with the partition table in just a few seconds.
Once ntfsfix works its magic, reboot into Windows Vista. Windows should automatically force a chkdsk process. When that completes, you should be able to dual boot between Vista and Linux to your heart’s content.