Can you really not have more than 26 drives/partitions in Windows?

This may seem like the most mundane question ever.

I assumed that mapped drives or partitions past the 26th would get double letters like AA, BB, etc. But a quick Google search turned up some surprising results. Other people who have asked this question have received answers like “you can’t” (at least in Windows XP) , to “why would you ever want to map more than 26 drives? It’s madness!”, or “who knows? Try it!”

I am a little incredulous that it’s really impossible to have more than 26. What about in Windows 7? How do Linux and OSX handle drive naming? I don’t need to do this at all, I’m just really curious now.

Drives and partitions are different things.

I believe any limit on the number of actual hard drives is hardware based, even if the drive letters are limited. You can mount partitions to folders.

So c:\drive 27, would actually be a separate partition even though it’s under the folder root of c:
This is how drives are handled on linux. / is the root of the file system and all drives, and even hardware are objects in the file system under it.

I won’t even get started on spanned drives which allow a single partition to be spread across multiple hard drives.

It has nothing to do with drive naming but the file system and the hard drive itself cannot do it. Just like how you can’t put 3GB+ of RAM in a 32 bit machine, it just is not able to see it

Windows can mount more than 26 drives/partitions by using a feature called junction points (also known as reparse mount points.) The extra mount points would be designated as a symbolic subdirectory instead of a drive letter.

It has had this feature for about 10 years. Most home users don’t know about it because they typically don’t mount 20+ harddrives. However, all the server administrators in corporate IT are well aware of it.

You can have more than 26 disk partitions. It’s simply that, at any given time, you can only address 26 of the partitions using Windows drive letters. As The Tao’s Revenge points out, there are other methods of referencing disk partitions in Windows besides using drive letters (mount points, the DeviceID of the partition, etc…)

[slight nitpick / clarification]

You can put more than 3GB of RAM in a 32-bit machine and it will work just fine, the thing is that you’ll only be able to use a little over 3GB of it. The limit is due to using 32 bits to address the memory. The address space is too small to have addresses all the way up to 4GB, the limit comes somewhere past the 3GB mark. From your wording, it almost sounded like you were implying that the system would not work if it had more RAM, though I’m sure you’re aware of the distinction.

[/nitpick]

In linux(and presumably OSX) the drives are mounted under /media. They are given a name representing the device type such as sda being “sata disk a”.

From there the disk is divided into partitions which are masked as folders in the root system. The partitions are named(normally invisibly) as the disk name plus a number. So sda1 for instance would probably be the root, equivalent to C: in windows.

The users personal data is stored in /home which is both a folder and a partition. So in my machine, /home/ogre is the root of my personal space, and its inside the original root. /home/otherperson is not just invisible to me, but totally unavailable unless I log in as them or root admin.

My /home folder could be on a separate disk, even miles away.

A typical machine would have a root, /home and /swap partitions. Swap is like the windows page file. You can put them all together too, and use a file for swap.

In windows you have as many roots as you have drive devices(each is often a single partition). So C,D,E… In retrospect I find it to be a sort of crappy design scheme. I am sure some of you remember that early windows versions allowed you to put “program files” and “documents” on a D drive. Newer versions of windows seems to be making this harder and harder.

Last time I tried in XP service pack 3, I ended up with some documents and settings on C, some on D. I had to have program files on C for Microsoft applications, while I could install games where ever I liked. I’m not sure why, but they seem to really really want you to only use one partition-drive(not counting RAID).

And RAID? When I installed windows vista for my brother, it insisted that the raid drivers come from a 3.5 floppy drive, despite the fact that nobody I know has used one in 10 years. Bleh.

Technically speaking, the Windows kernel doesn’t use drive letters. That’s why on Windows XP, you have to specify the boot partition options using a nomenclature like “multi(0)disk(0)rdisk(0)partition(1).”

I have one local drive letter on my home Windows desktop system, but five hard drives. Four of my drives are mounted under various sub-directories, much as they would be under Linux or Unix (and as Ruminator describes above).

For convenience, I also use drive letters to point to shared resources on my servers (my x: drive, for instance, might point to \bigserver\software\installers\iso). I’m just as likely to use the direct path as the mapped drive letter, though.

32 bits is enough to address 4GB, exactly. The question is, why can’t processes use all of their 4GB address space, and the answer is that certain address ranges in the upper part of that space are reserved for I/O by memory-mapped devices. With Physical Address Extension (PAE) and a supporting operating system (some server versions of Windows, for example), it is possible for different processes to have their 4GB address spaces mapped to different parts of physical RAM, up to 64GB.

In all Unix-like systems (including Mac OS X, Linux, the BSDs, Solaris, and others), it basically works like this, ignoring things like RAID and network drives:

When the hardware notices something has been added, either at boot or, as with USB stuff, at any point, it creates a new special file for each partition that exists on that hardware. In Linux, the files are named things like ‘/dev/sda1’, for the first partition on your main hard drive.

Every formatted partition contains a filesystem, which is the structure that holds the actual files. You access what’s on the filesystem by mounting it. For the essential directories like /, /usr, and /home, this is done automatically at boot; for others, it could be done automatically or manually.

Now, for the relevant part: A filesystem can be mounted onto any directory; you don’t even have to worry that the files in the /home/rms/foo directory are on a completely different device than the files in the /home/rms/bar directory. This means there’s no limit, even in principle, to how many devices and partitions you can have active at any one time.

OK, here’s a hypothetical:

Let’s say I get several USB hubs, and plug in a whole mess of USB drives. Enough to “max out” the letters. What would happen when I opened Windows Explorer? Normally, I can see the new USB drive show up as I plug it in…G, H, I, J, etc…, so if I get to Z and plug in one more…what happens?

Drives are not mounted on Linux; filesystems are. /media as a mountpoint is a convention in some distributions.

sda1 is a device name referring to a partition on a disk. The equivalent to C: on Windows is the device’s mountpoint, such as /usr/local or /mnt/foo

It’s only a partition if a partition is mounted there. There’s no reason you can’t have /home on the root partition (in fact this is far more common.)

Or otherperson changes the permissions on their home dir.

There’s nothing typical about putting /home on another partition, although you can certainly do it. Swap partitions are not mounted on the filesystem (there’s no /swap.)

you wouldn’t see it in Explorer. It would show up in the Disk Management console, though.

It’s important to keep the concept of a special file and a mount point (which is always a directory) separate: A special file is an abstraction over the raw hardware; if you have the right privileges, running a command like ‘cat /dev/sda’ would dump everything on your primary hard drive to your screen. All the filesystem metadata, all of the files most users don’t have read access to, everything, exactly as it is on disk. Similarly, the command ‘dd if=/dev/zero of=/dev/sdb’ overwrites the secondary hard drive with all zeros (that’s what the special file /dev/zero is: an infinite source of zero bytes), erasing it, likely forever given today’s hard drive densities.

(So, yeah. Sharp tools. Don’t do things as root unless you really need to. :))

As I said above, a mount point is just a normal directory you’ve told the OS to turn into a portal into some specific filesystem: Go through the wardrobe and you end up somewhere else, often on some other piece of hardware. This can be any directory at all, and the fact it’s a mount point is normally kept pretty-well hidden.

As freido said, this is wrong: Windows doesn’t have any equivalent to a special file that represents hardware. Thus, it doesn’t have anything that maps to the concept /dev/sda represents. C: is essentially a mount point, as freido said.

This is incomplete and not quite usual, but I also keep my /home on a separate partition. In addition, I keep /tmp on a separate partition as well.

True, but you usually don’t want your most-accessed files to be too far from you: Nothing can hide network latency or network downtimes.

There is no /swap. There might or might not be a special partition on the disk for swap, but it is not formatted and, therefore, cannot be mounted.

Having to reference drives separately is a very low tech approach to modeling storage in the first place, so I don’t think it’s much of a limitation that you can’t do even more of it.

A better approach is for the OS to allow you to define arbitrary logical divisions of storage that are mapped behind the scenes to physical storage, whether that is 1 disk or 57. If you need more storage, add a disk or 2 or three, but referencing individual disks doesn’t generally gain you anything unless it’s removable storage.

Windows will look for an available drive letter, find none, and give up. Windows will also give up when two drives are set to use the same letter. One gets it, the other nothing. Winner take all. Normally this doesn’t happen but there seems to be an odd error where windows will occasionally try to give a removable flash drive or something the same letter as a network mount point.

If you wish to use the drive you’ll have to go into disk management (control panel -> administrative tools-> computer management -> storage -> disk management), and right click on the new drive, select Change Drive Letter and Paths, and finally browse to a folder to mount the new drive to.

One question based on this thread though. How does windows handle nonenglish alphabets? Could one set some Kanji drive letters with the Japanese version of windows?

Keeping the OS and documents separate is still a good idea. But, otherwise, I agree that it seems silly that you can’t just use multiple disks without having to map them explicitly in some fashion, or format them for RAID.