C Drive dead, how to move ntdetect?
June 18, 2005 5:07 PM   Subscribe

My master harddrive has gone tits-up, how can I boot from the slave?

The opperating system (Windows 2000) is on the slave hardrive's primary partition (H:), but the master boot record and whatever Windows 2000 uses to boot (ntdectect.com?) resides on the master harddrive's primary partition (C:).

I can, intermittantly, boot -- apparently the master is still sometimes readable.

Is salvaging the situation as simple as copying ntdecect to the root of the primary boot partition on the slave drive, and then physically disconnnecting the master hdd? Do I need to fuss with the slave's MBR too?

In short, can anyone give me or point me to step-by-step instructions for moving Windows 2000's bootstrapping completely to the slave?

I can't just reinstall the OS -- while it's a legal copy, the OS install disks are currently in storage in another state.
posted by orthogonality to Computers & Internet (14 answers total)
Looks to me that NTLDR is important; also, boot.ini is a text-editable file telling the system where NT is.
posted by five fresh fish at 5:10 PM on June 18, 2005

There has to be some pointer in the slave's MBR that points to NTLDR. Just copying shouldn't work, but is a necessary condition. Imagine you had 95 and just placed NT* in the root. You wouldn't expect NT loader to come up. Also, even if you get a proper MBR, I'm not sure NT will load. Configuration files will be broken coz your new drive letter assignment (probably C) wouldn't match with the 'H' in the config files. But I think the original loading sequence is letter-agnostic and a relative reference. What you could try is an utility that can copy the MBR and 'paste it' on the new drive.
posted by Gyan at 5:47 PM on June 18, 2005

Strike the MBR copying. The MBR will be drive-specific since the exact location of NTLDR and partition table won't be the same.
posted by Gyan at 5:53 PM on June 18, 2005

From MS support:

On Intel-based computers, the system BIOS controls the initial operating system boot process. After the initial Power On Self Test (POST) when hardware components are initialized, the system BIOS identifies the boot device. Typically, this is a floppy disk or a hard disk. In the case of the hard disk, the BIOS reads the first physical sector on the disk, called the Master Boot Sector, and loads an image of it into memory. The BIOS then transfers execution to that image of the Master Boot Sector.

The Master Boot Record contains the partition table and a small amount of executable code. The executable code examines the partition table and identifies the active (or bootable) partition. The Master Boot Record then finds the active partition's starting location on the disk and loads an image of its first sector, called the Boot Sector, into memory. The Master Boot Record then transfers execution to that Boot Sector image.

Whereas the Master Boot Record is generally operating system independent, the Boot Sector of the active partition is dependent on both the operating system and the file system. In the case of Windows NT and Windows NT Advanced Server, the Boot Sector is responsible for locating the executable file, NTLDR, which continues the boot process. The only disk services available to the Boot Sector code at this stage of system boot up are provided by the BIOS INT 13 interface. The Boot Sector code must be able to find NTLDR and file system data structures such as the root directory

Not much help, but should be clearer.
posted by Gyan at 6:00 PM on June 18, 2005

(I just gotta say, if you removed the word "harddrive" from the post, this would have been one of the best single lines ever posted to MeFi)
posted by NotMyselfRightNow at 6:30 PM on June 18, 2005

Is H: the primary partition of your slave drive? Is the partition set as bootable? If so, it may be as simple as disconnecting the master, changing the slave to master, and doing a "fdisk /mbr". When I have tried this before, it installs a default MBR, which will try to boot from the first Primary partition on the drive. (Haven't tried it in this particular scenario though).

Another option is to try installing a different boot loader e.g. grub or lilo. Both of these can boot Win2K, NT, XP etc, and they are more flexible than the default MS bootloader.

That said, I've only tried the boot loaders above as part of a Linux install, never individually.

Good Luck!
posted by RecalcitrantYouth at 8:08 PM on June 18, 2005

what the Youth recalcitrantly said.

alternately, if you need only to salvage data, something like kanotix is always good (esp. since it's (a) a bootable live cd and (2) has the captive software installed, for accessing ntfs. I recently used it to recover a friend's machine and it worked quite a treat.
posted by dorian at 3:34 PM on June 19, 2005

posted by dorian at 3:36 PM on June 19, 2005

Let us know how you solved it.
posted by Gyan at 5:03 PM on June 19, 2005

Thanks for all the responses (and especially to uncompelling who at least gave me something to grin about).

dorian's suggestion of "something like kanotix" led me to kanotix's page; that page being in German lead me to think "Knoppix", and Knoppix (and the freenode.net ##linux channel) got me to diagnosing my problems with smartctl. (Note that running smartctl requires you to be root; in Knoppix that's as easy as "su root", no password.)

Knoppix also allowed me to copy the various NT bootloader crap, which (having no better solution at hand) I ftp'd to my web site.

Before I started Knoppix, I was able to successfully boot Windows 2000, so it appears the drive problem is intermittent.

Knoppix managed to mount all my drives, but only shows files in the primary partitions, with the logical partitions showing as empty; on the up side, it can read the NTFS volumes (even one that's compressed) and prudently mounted them read only. On the down side, I know one of the primaries is FAT32 and actually empty (long ago I was going to install linux there, and now I wish I had), but I can't figure out which that is, as Knoppix mounted them all as "auto" filesystems.

Knoppix (I'm writing from it now) is surprisingly nice graphically, far better than I expected, except for some font ugliness. I'm now leaning more toward moving to linux, although I miss some MS-Windows features, like assignable mouse buttons. Knoppix installs with, among other things, Firefox, and I was able to install MetaFilthy without issue (Chatzilla also installs, but fails to connect; fortunately, Knoppix also includes X-Chat).

My plan now is to see if the recovered NT bootloader stuff can be copied to the second harddrive; since that drive is NTFS, that will be a challenging unless I can get Windows 2000 to boot once again (dorian's suggestion of captive NTFS may come into play).

If not, I may just go with Linux permanently -- the truth is, most of my real productive work takes place in cygwin as it is, I've gone through contortions to run Apache and postgresql via combinations of cygwin and MS-Windows services, and I've been careful for the last several years to use tools (like my editor) that are cross platform. (Though I do so want a spellchecker with a GUI as efficient as microspell's advanced interface.)
posted by orthogonality at 11:12 PM on June 19, 2005

Er, to NotMyselfRightNow. See, that's why I like microspell, it would have flagged "NotMyselfRightNow" differently than mathowie's built-in spellchecker, and I wouldn't have ok'd changing it.
posted by orthogonality at 11:14 PM on June 19, 2005

"df -aT" from a command line will let you know which partition is the fat32 one, I believe.

the read-only of ntfs is, I believe, 'cos initially knoppix/etc. uses the default ntfs module (for which write support is horribly broken/nonextant!!) -- to write ntfs safely from lunix requires unmounting the partitions and remounting using the captive software.

kanotix is basically knoppix+/-. I forget why I initially went with it, but it's been ok. I guess everyone has their own little improvements to a distro. also, I used to quite dislike kde, but I have been enjoying it rather a lot in fact. even the 1-click lifestyle.

good lucks whatever you decide.
posted by dorian at 7:23 AM on June 20, 2005

My plan now is to see if the recovered NT bootloader stuff can be copied to the second harddrive

Your MBR can be generic, but the NT boot sector will need to have the location of NTLDR. Depending on whether it locates it or it is hardcoded in, it will or will not work.
posted by Gyan at 7:48 AM on June 20, 2005

Ok, problem fixed (more or less); I go into detail in case someone else has the same problem and googles this page.

As the bad drive works intermittently I copied off these three files: ntdetect.com, ntldr, and boot.ini, and placed them in the root of the primary boot partition on the good drive (in my case, that's H:\ under windows, or hdb1 under Knoppix).

I edited boot.ini's default line to point it at the correct disk, from
I'd probably have had to add a line like
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Professional RDISK0 DEFAULT" /fastdetect
except that line already existed, pointing at the previously used copy of Windows 2000 on the C drive.

In summary, I modified boot.ini so it pointed at disk zero rather than disk one. Note that I also changed the displayed text ("Microsoft Windows 2000 Professional RDISK0 DEFAULT") so that I could see that my modified boot.ini on the working drive was being read, and not the boot.ini on the wonky drive.

Next, in the BIOS, I switched the assignments of the Master and Slave drives, making the slave the master ("Disk 0")as far as the BIOS was concerned.

(Note that in the IDE config, Master and Slave don't change, the bad drive is still referred to as the master. But there's another menu that designates the "2nd IDE" as "Master". I suspect this is only possible because the dip switches on the second harddrive are set to the "Cable Select" setting rather than explicitly making it the slave.)

Now the machine boots from the Slave, which the BIOS treats as disk 0 and which has Ntdetect.com and ntldr in the root of its first partition, and a boot.ini that specifies the correct location for Windows 2000, in the subdirectory "WINNT" on that same partition.

To my surprise, the change in the BIOS doesn't affect assigned drive letters, and the "Logical Disk Management Service" (Control Panel|Administrative Tools|Computer Management|Storage|Disk Management) still shows the wonky drive as "Disk 0".

So it appears the BIOS assignment of Disk 1 as Master just affects where booting starts. Nice.

My great thanks to dorian for suggesting kanotix, which led to knoppix; while it didn't turn out to be necessary to the fix, it was a real relief to have a working computer in the interim, and the smartctl included with knoppix helped to determine exactly what the wonky disk's problem is. (and I did use Knoppix to copy the files off the wonky disk.)
posted by orthogonality at 1:41 PM on June 20, 2005

« Older I don't have any friends. None.   |   Mac doesn't see printer over wifi Newer »
This thread is closed to new comments.