04-11-2012 05:51 AM
http://en.wikipedia.org/wiki/Master_boot_record
There is space for 4 partitions no drive letter saved in partition storage!
Uses Windows assigned logical letters.
However, the 4 byte signature at the MBR root level - see "Disk Identity" section:
In addition to the bootstrap code and a partition table, master boot records may contain a Windows NT disk signature. This is a 32-bit value that is intended to identify uniquely the disk medium (as opposed to the disk unit — the two not necessarily being the same for removable hard disks).
The disk signature was introduced by Windows NT version 3.5, but is now used by several operating systems, including the Linux kernel version 2.6 and later. Linux uses the NT disk signature at boot time to determine the location of the boot volume.[18]
Windows NT (and later Microsoft operating systems) uses the disk signature as an index to all the partitions on any disk ever connected to the computer under that OS; these signatures are kept in registry keys, primarily for storing the persistent mappings between disk partitions and drive letters. It may also be used in boot.ini files (though most do not), to describe the location of bootable Windows NT (or later) partitions.[
04-11-2012 08:20 AM
Booting from the 2nd partition can cause the 'schitzo situation' where a registry entry says the OS is in the 1st partition.
It appears this can be done with easeUS.
My new clone ends up in 2nd partition as 1st partition contains just XP bare load and not my registered software.
[but this was useful to run NG from as source was not the current OS and might have has files open, etc.]
Compress the new 2nd partition hopefully enough to move 1st partition to end of disk.
Then expand the new OS clone partition forward/backward to take up all unallocated space
The registry entries of the original OS point to C: since it was the 1st partition and now, so does the clone.
Now that it is back in 1st position, make it active and boot.
[the reason my first boots with it in 2nd position worked were a quirk of windows handling the boots due to system updates]
[when I hibernated and then rebooted the next day - oops schitzo - dark screen with underscore
Note barebones OS in 2nd partition should still have its registry 'pointing' to C:
Just do not make it active and boot from it.
My copy just finished after 4hours and 2 secs [took 2 mins longer after being defragged?!??!]
Any thoughts on my swapping plan?
I will shutdown my system with current C:
Then I will swap disks so my original is in the laptop and boots as C:
Then I will use easeUS to swap position of partitions on disk in USB caddy and make resulting 1st one [the clone] active.
Shutdown
Then swap the disks again and boot - clone now in 1st partition and its registry should like that.
04-11-2012 10:21 AM
The OS partition is actually the SECOND on my original disk.
There is a small FAT16 in the 1st partition and a small FAT32 in the 3rd.
Neither ever gets a drive letter, but both are marked primary.
Looks like some stuff that came loaded from Dell.
So was the OS set in the registry to look at the 2nd partition all along?
Is this why I was able to boot the clone without problems 3 times?
And then it failed for some other unknown reason when I hibernated and then tried to reboot the next day?
.
Printed out registry snapshot of Mounted Devices and Disk Management display.
Will now put my original disk in laptop, boot and see what registry entries look like there.
Ok, need some more thinking before I try anything else.
04-11-2012 01:14 PM - edited 04-11-2012 01:17 PM
dayrelton wrote:I put the new drive in the laptop and:
C: is assigned to the booted active boot partition [tech-house XP]
E: is assigned to the clone on same disk
F: is assigned to my original in the USB caddy.
Jim,
The booted OS assigns the drive letters and depending how you setup each OS the drive letters may be different. The only drive letter that matters is the drive letter of the booted OS. E: and F: as letters are of no importance. They could be X: and Y: and things would be no different. In fact to avoid confusion it can be better to avoid mentioning non active drive letters at all. For example, the second partition on the first HD can be called D1P2. It is always D1P2 no matter which OS is booted but it might be D: drive in one OS, F: drive in another OS, etc. When a computer is turned off there are no drive letters. Some people call the HD a C: drive which is really confusing. They even talk about the C: drive they have in a drawer. The booted OS assigns the drive letters. If the OS isn't booted there are no drive letters but there is still D1P2. Windows allows you to change any drive letter except for the boot partition (Microsoft terminology), the partition containing the Windows folder.
You asked about Disk Signatures. It's explained in this page along with the cloning traps we've discussed.
http://www.goodells.net/multiboot/partsigs.shtml
04-11-2012 01:16 PM
You will still have the wrong registry entry in the "mounted devices" key.
As I understand this, please correct me if I am wrong:
C is the tech installed version of XP (XP version 1)
E is your old version of XP and source for the clone (XP version 2)
F is the desitnation of the clone (copy of XP version 2).
XP version 2 (currently on E) of course boots as the C drive if it is booted alone, that partition must be C therefore the disk signature for that partition is set for C. Registry says: Disk signature 2222 must be C
You clone that OS into the second partition and it carries over that registry entry. Lets say the destination partition signature is 3333. Windows boots, the registry loads and it hits the entry: 2222 must be C.
That is the first partition on that drive when it should be the second, a hybrid has been created and it becomes scitzoid and barfs.
The solution is to boot into one of the other versions of windows and then do an offline registry edit of the registry that is on (copy of XP version 2).
If you know the incorrect letter that it has taken, you just need to change the keys for the C drive and the incorrect letter.
One will say: \DosDevices\C:, the other one will be : \DosDevices\X:
(X is the incorrect letter).
In order to switch them you temporarily have to move one out of the way to free up that letter.
right click on DosDevices\C: and rename it to DosDevices\Z:
Then rename the incorrect letter to C and rename Z to any letter not being used. (that will be the OS on partition 1, you can later use disk management to rearrainge the letter.
Also don't forget about how you want it to boot.
Ideally you should not be changing the active partition each time, you should pick one as the primary (the first) and create another entry in the boot.ini to boot the second version.
Dave
04-11-2012 01:24 PM
Or am I the one that is still confused?
04-11-2012 02:22 PM
If I'm on the right track here, I'll tell you how I did this in the past. I think I remember, it's confusing because I have done several similar things as tests.
When you look under the registry key: HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
You will see the drives listed as I showed: \DosDevice\X:
You also see the "value data" for each key. I remember Brian saying that the value data is generated as a product of the disk signature and the starting point in sectors of the partition. That makes it a unique calculation and not a random number.
Since it's a mathamatical calculation, that data will be the same for each version of windows that assigns that partition a letter.
Lets say you are currently in "Tech installed XP" with the clone already done and the destination is F:
Open regedit and go to the above key and look for the value data that is shown for F:
It may look something like this: 6b 6b 6c 00 7e .........etc
Make a note of that value data, that is the partition that must be assigned to C within the registry of the system that is currently on the F drive.
(Not the registry you are in right now, the registry inside the clone (copy of XP version 2)
Close the branches of the registry so not to confuse you.
Click HKEY_LOCAL_MACHINE one time to highlight it and then go to: File\load hive
Browse to F:\Windows\System32\Config and select the "System" hive
When it asks for a name give it "Temp"
Then naviagte to Temp\Mounted devices
Note, you are now "inside" the registry of the operating system currently on F (copy of XP version 2).
Look for the value data you noted above, that is the partition that has to be the C drive.
Since \DosDevices\C is already being used and pointing to the wrong partition, you need to rename it to get it out of the way.
Right click on it and chage the C: to Z:
Then find the correct value data you noted and change whatever letter it currently is to C:
When your done, click once on the "Temp" key to highlight it and then go to: File\Unload Hive
Boot the clone (copy of XP version 2) and it should boot correctly as C.
I can tell if I'm in a hybrid by creating text files on the desktops that are different.
windows version 1.txt for example on the first version. If your booting into a hybrid that test file will appear in the second operating system because it's loading the incorrect User\desktop folder.
Sorry, If I still misunderstand the problem.
Dave
04-11-2012 02:25 PM
As I understand the situation, Jim has XP1 (installed recently) and XP2 (a clone of his original OS) on the 120 GB HD.
Each boots as C: drive. (ignore the other drive letters as they aren't relevant to this discussion)
The two XPs don't share booting files. Each is an independent OS which could boot on its own if the other OS was deleted.
Jim, is that correct?
04-11-2012 04:34 PM
Brian, Dave
80GB - 'old' disk
160GB - 'new' disk
The old disk has the original OS, call it XP0 - signature C:
The new disk has the tech-house barebones, call it XP1 - also signature C:
I ran NG from XP1
I cloned XP0 to 2nd partition on new disk - call clone XP2 - also signature C:
XP2 has not been booted - not active [I made XP1 active right after clone was made since NG made XP2 active]
But since XP1 has been booted since cloning, it may have updated its registry and changed XP2 from C: to something else as there were duplicate C:'s ???
TRUE Brian, the new disk has 2 OS's both with C: signatures in their registries and presumably each would boot if the other were deleted. [of course, until this is solved, having 2 disks with working OS's is good since I can use XP1 to run NG from to copy XP0 without having to worry about files being accessed/open causing problems]
Dave I think you have it per Goodells link from Brian
The Goodells article seems to have the solution - 3 choices actually.
Cleanest is Method #2 - boot XP0 [original] and delete the registry entries.
Swap the disks and boot XP1 [tech-house], run NG and clone XP0 to XP2 on new drive with XP2 made active.
Boot XP2 which rebuilds its registry keys and MBR [apparently sets XP1 as something other than C: so there is no schitzo.]
Now I can swap disks again and boot XP0 and its registry keys and MBR get rebuilt.
[if clone works, then tech-house XP1 can be deleted and XP2 will fix its registry and MBR on its next boot]
So I am going to mull this all over since I have been up since 2AM - thank you both for sticking with this.
04-11-2012 04:42 PM
Jim, you said,
"I cloned XP0 to 2nd partition on new disk - call clone XP2 - also signature C:"
"XP2 has not been booted"
I thought you booted XP2 yesterday or is this a new clone? More after your answer.
