views:

445

answers:

2

Some time ago (the last time I had to care about this was a few years back), booting a PC worked kind of like this:

  • There was an ORDER to disks (primary Master, primary slave, secondary master & slave)
  • The PC would take them in order, and look for an "active partition" (which was set with FDISK)
  • It'd boot from the first active partition it could found.

Now this is not how it works anymore, and I'm completely clueless about it (and this time, I do need to understand it) I currently have 4 SATA disks (no masters, slaves, or priorities of any kind) Inside, they are Windows 2003 "dynamic disks" (whatever that's supposed to mean), and have partitions, one of them Windows "knows" is the booting one, but i'm not sure it's the same as the good old active partition.

My situation is the following:

  1. My C drive has started failing. It kinda works, just not all the time. I really need to get this fixed without reinstalling Windows, I can't afford the huge time loss that'd mean.
  2. I bought a new drive to replace it, plugged it in next to the existing one, and made a mirror of the C partition on the new drive.
  3. So, in this new drive, I have an EXACT bit-by-bit copy of the original C partition, right? Or am I missing something?
  4. Also, if I unplug the old drive, and plug this new one in the same cable as the broken one, it should boot, right?

Now, I know it's not that simple, because it doesn't really boot. I'm obviously missing some step, which in the old days would be setting the new disk as master, and the new mirrored partition as "active", but I have no idea how to do this.

I've tried a few things with the recovery CD (fixmbr, fixboot), but my general impression is that it's not working because it's not finding something it's looking for. (for example, i can't go through the disks and look at their contents, and things like that)

Any ideas? I'm extremely desperate here, I need to get my machine running on the new disk ASAP. Thanks!!

A: 

There is an implicit order, at least on the cards i've used, but can be difficult to work out.

If you have a 4-drive card, you may find one of those ports is "port 0". which is the "primary" boot device, and it boots the first "bootable" partition it finds on that device.

Linux identifies every wire numerically in its messages, which helps you see this fact, but otherwise, i can see how windows would have trouble seeing the #ids.

What you may have failed to do is copy across all the MBR data. If your disks are of similar size, i would recommend firing up a copy of rescuelinux and perform a "dd" from one drive to the other, that will bit-for-bit copy all parts of the drive.

 dd if=/dev/sda of=/dev/sdb

( assuming sda == old drive, and sdb == new drive )

The disk also has "dd_rescue" which can "copy around" disk errors better, but I forget how to use that. ( Sorry )

Also, the low-level recovery tools on windows boot disks appears to have stopped being worked on.

linux fdisk may not be what you're used to, but in my estimation its a better powertool.

I Also recommend you try run TestDisk On the new drive in case you've copied it wrong, it will try "guess" as best it can how to make it work for you.

Kent Fredric
Hmmmm, that's why I tried plugging my new drive on the same cable (port) as the old drive...But I got an error when booting up...However, maybe the problem is that the mirrored partition I created is not "bootable". How would I make it bootable?
Daniel Magliola
+1  A: 

With a partition tool (like 'Partition Manager'), check if:

  • the boot partition is active
  • all partition have letters assigned

Then use MBRFIX.exe - 143Ko - (mbrfix.exe, not fixmbr which comes from Microsoft!), and:

  • check if your partitions are still there 'MbrFix /drive 1 listpartitions' (this is the most important)
    if not... see previous solutions
    if they are, SAVE YOUR MBR! (MbrFix /drive 1 savembr c:\MyMbr), that way the all 512 octets of your MBR are saved included the last 76 containing the partition table
  • reset your bootlader written in this MBR
    for instance: MbrFix /drive 1 fixmbr /vista /yes
    You should even be able to boot, or reinstall Windows on that partition if you want

Note: '/drive 1' refers to your second disk (the one plugged in through USB), the disk '0' is the one within your computer. If you have more than one drive in your computer, adjust this number accordingly

Note2: Whatever goes wrong, you can still revert to the present state with:

MbrFix /drive 1 restorembr c:\MyMbr

Note3: While you are at it, save the MBR of your current functioning drive!
On a USB stick!

VonC