How to Change the Disk Signature of a Drive Without Losing Existing Data or Reformatting

This article is for those who have received an error message from Windows 7 saying "This disk is offline because it has a signature collision with another disk". You may have seen it when you tried to use the Windows Control Panel disk management applet (which is among the other System Administrative Tools) to find out why you could not access or mount an external disk. The article briefly explains the cause and shows you how you can solve it without resorting to reformatting the entire disk.
The Situation In Greater Detail

Windows saves an sequence of numbers, called a disk signature or unique identifier, in every disk it uses. I assume it uses this signature to tell one disk apart from another. If you connect, or "mount", a disk that has the same signature as an existing one to your system, Windows will refuse to assign it a drive letter. The end result is that you will not be able to access the disk.
IMPORTANT DISCLAIMER

The things described in this tutorial messes with your computer in a major way. As a result, it's possible for you to lose all your data and cause all sorts of permanent hardware and software damage which may not be recoverable. In addition, you should also know that the information here is the result of my own personal experience in trying to solve my own struggle with the signature collision problem. It's not a general guide intended to solve all such problems. I'm certainly no expert in this. In fact, my understanding of this is tenuous at best: I barely know what I'm doing, if at all. Do NOT follow this guide if you have valuable data. Even if you don't have anything important to preserve, make sure you back up your system before doing anything written here. Remember, if you want to follow this guide, do it at your own risk.

For those who have a tendency to be careless, or who are not "power users" accustomed to using the command line to do stuff, it's really better not to do the following even if you don't mind taking the risk. The damage you can do to your system is considerable.

I've only tried this procedure on Windows 7. I've no idea if it works on other versions of Windows. (Yes, I know the software described here, DiskPart, exists on other Windows versions too, but I have not tried this procedure on those systems, so I have absolutely no idea if the commands used work the same way.)

In addition, I have a feeling that this procedure will not work if your system disk (usually drive C:) is the one having colliding disk signatures. Not without adverse consequences, anyway.
How to Fix the Disk Signature Collision Problem in Windows 7

Windows 7 comes with a command line utility called diskpart that can let you view and change the disk signature.

Open a command prompt as administrator. To do this in Windows 7, click the Windows start menu (the round Windows icon on the left bottom corner), type "cmd" (without the quotes), right click the "cmd.exe" item that appears at the top of your menu, and click the line "Run as administrator". Do this even if you are already logged in as administrator, since on Windows 7, administrators run with reduced rights by default.

A black command prompt window will open. In Windows 7, the title bar of the window will tell you that you are running it as Administrator. If it does not, it means you did not do what I just said above. Return and follow the first step, or you will not be able to successfully carry out the rest of this tutorial.

Type "diskpart" (without the quotes) into the window. (Note: for this and the other commands described here, you'll have to hit the ENTER key after you finish typing your commands for them to take effect.)

Microsoft DiskPart will start. When it is ready, it will issue a "DISKPART>" prompt, allowing you to enter your commands.

Type "list disk" (without the quotes). This will list all the disks that are currently mounted (connected to the system). The disk will not have the usual names and labels that you're accustomed to from the Windows Explorer interface, so you will have to recognize them by their sizes.

Note that "list disk" actually lists the physical disks, and not the partitions that you may have assigned drive letters. This means that if you have 2 physical disks, with 3 partitions on each, so that you have drives C:, D:, E:, F:, G: and H:, "list disk" will only show "Disk 0" and "Disk 1".

To view the signature of a disk, you must first select it. To select a disk, type "select disk x" (without the quotes) where x is the number of the disk from your "list disk" display. When you type (say) "select disk 1", DiskPart will respond by telling you "Disk 1 is now the selected disk".

Now type "uniqueid disk" (again, without the quotes). DiskPart will respond with the disk's signature, a series of hexadecimal digits (or at least I think it's hexadecimal).

To change the signature to some other number, type "uniqueid disk ID=[NEW SIGNATURE]" (without the quotes) where "[NEW SIGNATURE]" stands for the new identifier you want for the disk (without the square brackets and without the quotes). However, before you do that, you may want to type "help uniqueid disk", which will give you more information on how the command works. You may also want to find out the disk signatures of your other disks on your system before you modify your current one so that you don't cause a new signature collision in trying to solve your current problem. In addition, if you're really not sure how many digits you should give your disk, perhaps try changing only one digit of the current signature (eg, increasing or decreasing it by 1). Remember my disclaimer above: I really don't know what I'm talking about here: do it at your own risk.

To quit DiskPart, type "exit". Incidentally, in case you get lost while running DiskPart, when you are at the "DISKPART>" prompt, you can type "help" to get a list of commands. Typing "help" followed by the command typically gives you more info about that command.

Once you've quit DiskPart, type "exit" again to quit the Administrator Command Prompt.
But How Do I Know Which Disks Have Colliding Signatures?

When I encountered this problem on my system, I didn't know which of my existing disks had a signature that collided with the one that Windows refused to mount (although I had my suspicions). To solve it, I simply disconnected all my external disks, mounted one, used DiskPart to list its signature, noted the signature somewhere, disconnected it, then mounted the next one and repeated the procedure. With this method, I eventually found out which 2 disks had the same signature, and could change one of them to a different identifier. (For the curious, I simply used the example signature given by DiskPart in its "help uniqueid disk" as the new signature. With my understanding of the situation as shaky as it was, I didn't want to risk giving my disk an invalid signature.)

Comments