So here’s a new hobby of mine: Troubleshooting why my computer hangs when I try to map a disk to a drive letter. Sounds fun, right?
I keep my iTunes library on an external USB hard drive, since my media collection is now far too large for my laptop’s built-in hard drive. I have another external hard drive that I use for backups, and another that has stuff on it like software installers, weird games, etc, which I call “Goods.”
I’d like to map these when they plug in to M: for the media, B: for the backup, and G: for the goods.
The first thing I realized in the Windows Disk Manager is that B:, while definitely not in use for a floppy or anything ridiculous, is “odd.” this could be a BIOS issue or whatever else, and I don’t care enough to look into it, but it doesn’t work on my current machine. It puts it into some kind of unusable state where Disk Manager can’t be quit, and Vista eventually hangs and needs to be power cycled. Fine. So I called that one Z: and that works well.
My Goods drive was mapped to G: with no problems whatsoever.
Now, the Goods drive is a 160GB Western Digital Passport II (WDP2). The Backup drive is a 120GB WDP2, and the Media drive is also a 120GB WDP2. These drives are all formatted NTFS.
For some reason, I can assign the Media drive to a mount point, like C:\Mount\M with no problems at all. But, no matter which drive letter I assign to it, it hangs the system like when I was trying to assign the B: drive. I’ve tried M:, N:, I: they all hang disk manager and then put the system in an unstable state ultimately ending in the system needing to be shut down hard.
I tried using the “remount” from a useful USB troubleshooting site, and when I tell it
remount C:\Mount\M M:
it hangs the system in the exact same way. It’s frustrating.
However, now I’m in a really crappy situation. The drive doesn’t get auto-assigned a free letter anymore when it’s plugged in, even if I delete all the mount points in Disk Manager. I’d love to know how to be able to do this. I have a suspicion that if I could somehow figure out the Registry crap associated with this stuff I would be able to figure this all out, but I can’t tell which drive is which in there. I could delete a mount point fairly easily, but that’s not my problem. I guess I need to delete my drive and let this re-build. So I’m going to take a second to do that after I reboot. Hang on…
Ok, so first, I learned that Device Manager can be told to show non-attached devices. How? Oh, would you believe an environment variable? I created a CMD file with this in it:
set DEVMGR_SHOW_NONPRESENT_DEVICES=1
devmgmt.msc
And ran it. Then I selected “View-> Show Hidden Devices” and under “Disk Drives” I was presented with every USB, Firewire, etc disk I had ever attached to my system. I determined which was mine, removed it and replugged the drive, but no go, it still put it at my mount point.
So here’s a fun registry location – “HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2″ – that appears to have every mount point, including network shares, that I’ve ever had on my system. My gut feeling is that if I delete all this I’ll just have to remap, but I’m not sure yet. There’s also “HKLM\SYSTEM\MountedDevices” which I also think will be rebuilt.
So, you only live once I though, and so I renamed both these of these keys to _old, and inserted my drive. It showed up as E: (great!) and now I’m going to try to make it M: – still hangs. Maybe I should have rebooted in there… Same problem.
OKay, so THAT didn’t work, and I put all the old registry back in place, but it did give me enough information to manually trash the entry for my M drive and then manually create an entry for it in the MountedDevices. Which works. I could even write a program to do this part of the equation now. But THIS SUCKS that I can’t just use the built-in tools, and I feel like I’m missing something since my method didn’t result in a hang, even though the stuff in Windows and the other guy’s 3rd party thing did hang.
If anyone knows why this would be hanging or has solved this problem, please let me know how you solved it.