X
Tech

Dear Microsoft: It's time to stop using drive letters and whacks

Drive letters and whacks worked for a season but now it's time to change with the seasons and to stop using them both. They're limited. They're outdated. And they're fashion backward.
Written by Ken Hess, Contributor

Have you ever run out of drive letters on a Windows server system? Yeah, me too. Well, now you can mount directories (folders) onto disk partitions in Windows, similar to what you can do in UNIX or Linux (*nix) but isn't it time to just rid ourselves of the limits of drive letters altogether? I think it is. And there's a very simple solution for the problem: Follow the way of the *nix systems. And while we're at it, please for the love of Linus, let's rid ourselves of those annoying whacks. 

"Mr. Microsoft, tear down these walls." 

We, the world's system administrators want more cross platform compatibility. But we can't do that with whacks and drive letters.

Hear me out on this.

Get rid of drive letters by using *nix-style mount points. For that ever present C: drive, just mount it to the primary disk partition.

That's right, just mount everything onto its own partition for those who don't split things up.

It would also be nice to be able to dynamically resize partitions for those of us smart enough to separate the system from everything else. Ever hear of logical volumes?

I know. I know. I don't ask for much, do I?

I'm asking for an operating system, and associated filesystem, that's flexible, scalable, and dynamic, just like an enterprise-level system should be.

So, to that end, Microsoft needs to take another cue from the *nix world and use logical volumes. You can dynamically resize logical volumes. I know you can because I did it more than ten years ago on HP-UX, using SAM.

And I know it's totally asking too much to also get rid of that 'whack' business. I mean, when I'm trying to write scripts, I have to use twice as many whacks as necessary to escape the darn things.

For example, to refer to a non-drive letter location (aka UNC mapping), I have to do the following:

\\\\SERVER\\DIRECTORY\\FILE

As Tom Anderson would have said in an episode of Beavis and Butthead, "That's an awful lot of whackin' there boys."

It is indeed an awful lot of whackin'. Sometimes it works to issue multiple escapes. Sometimes it doesn't. But it's always very annoying to add in all those whacks everywhere. And don't try to discuss writing a script like this with anyone geeky because you'll end up sounding like that Aflac duck, if you do*.

Instead, they should replace the whacks with dashes and dots to yield something such as:

-SERVER.DIRECTORY.FILE

That works for me. Or better yet, Microsoft could come up with a new symbol for separating locations. That would be even better. I mean, who says that we're bound to the QWERTY keyboard and its lame list of symbols anyway?

Besides, the dot thing is more Internetty and more C-Sharpy, don't you agree? It's more modern, cleaner, and would cause fewer problems in scripts—for me at least.

The other major problem with drive letters is that you can't CD directory to another drive and directory at the same time, especially in scripts.

Try it.

Open a CMD prompt. You're probably in your "home" directory, sorry, folder, which is usually C:\Users\username. So, now, CD to D:\TEMP.

First, you have to CD to D: <enter>

Then, you have to CD to the subdirectory—ugh, folder, TEMP.

CD TEMP <enter>

Now, you can do it in one step, if you know a little known switch, /D.

CD /D D:\TEMP <enter>

And you're there.

This seems easy, if you know about it and you don't get mixed up with / and \.

In script parlance, the command would look something like this:

CD \/D D:\\TEMP

Bollocks, I say. Bollocks to the max.

Drive letters and whacks will drive me whacky.

The funny thing is that I know it can be done as I've described by abstracting C:, D:, E:, etc. into mount points.

All you have to do to prove it to yourself is install Cygwin on your Windows system and then open the Cygwin Terminal icon sitting on your desktop. Once you have that terminal window open, type:

$ mount <enter>

And watch the magic unfold as,

C: on /cygdrive/c type ntfs (binary,posix=0,user,noumount,auto)
D: on /cygdrive/d type ntfs (binary,posix=0,user,noumount,auto)
E: on /cygdrive/e type ntfs (binary,posix=0,user,noumount,auto)

For all your connected drives, including mapped ones show up here.

Type, pwd <enter> to be sure that you're in your home directory.

$ pwd

/home/username

Now, enter the following command:

$ cd /cygdrive/d/temp

And, as if by some force beyond this mortal realm, you're transferred there in a single step.

Now, you're probably asking, "So, what's the difference? You're just changing \ for /."

That's true but I'm also making it more *nix like in the process, which means that with minor location adjustments, the scripts I create on Windows can be used on *nix systems as well. I've done it.

And Cygwin sets up your user environment like a *nix environment with /home instead of C:\Users, /tmp, /bin, /usr/bin, and so on. So your adjustments for those cross platform scripts will be minor.

Why is this important for Microsoft to do?

As I stated in the very first sentence, at some point you do actually run out of drive letters and it's a hassle to mount directories,...er, folders onto partitions or drives. Database servers are the worst at running out of drive letters. Often, you just don't have enough letters in our alphabet to handle all of the locations for database data, logs, and other weird things that databases that are properly configured need.

You might also ask, "What about the / thing. You still have to escape those in scripts, don't you?"

Yes, you do. That's why I've said that it's time to use something else, like dots and dashes. Plus dots and dashes are a historical reference to Morse Code, which is cool because I like the whole retro thing of using the first wired communications protocols.

It's a good thing they didn't use slash and whack. SOS might have sounded like:

"whack, whack, whack—slash, slash, slash—whack, whack, whack." 

Sounds like some bizarre snuff rave thing. Not good.

I think it's time to remove the limitations of DOS, once and for all. Aren't we beyond DOS at this point? Let's talk volumes, directories, and cross platform compatibility. We need to collectively rise from the dark ages of computing, so to that end, let's trade whacks and slashes for dots and dashes.

*Every time I say 'whack', I think I sound like Tom Anderson, when I say it. Now all I can hear is his voice in my head. My inner voice is now Tom Anderson. It's gonna be a long day.

What do you think? Is it time for Microsoft to move toward a more universally compatible method of addressing disks, partitions, and mount points or are we going to whack into drive letters for the rest of our lives? Talk back and let me know.

Editorial standards