TL;DR:
Why has “C:” been chosen for the first hard drive partition?
Because it is the first letter after A and B. Drives are simply numbered in sequence using letters. Since the vast majority of systems in use had only one or two floppy drives, C was usually the first number to be assigned to the next drive found after them.
Did C: have a meaning which was non-depending of the existence of two floppy drives?
No, drive letters have no meaning at all. They are simply variable names chosen in sequence of detection.
In Detail
why does C: indicate the first hard drive partition?
Because it is the first letter after A and B, which were defined for floppy drives - as in the beginning, there were only floppies.
The fact that C is always the primary HD (or partition) is, as explained in the linked answer, a later mechanic, made to please (install) software that was made to assume C the main installation drive.
The usage dates back to CP/M (as noted in a comment), was embraced by MS-DOS, and persists in Windows 10. I looked around but could not find any better explanation than [A&B are fixed while further letters are assigned in sequence of drives 'discovered']
That's exactly the point. Internally drives (in CP/M) were simply numbered. The use of letters is a translation of this number into a letter. 1st (Drive) -> A, 2nd -> B and so on.
The sequence was not related to types of media or drives. A hard disk could well be drive A, while the first Floppy could be E, if being the 5th drive reported by BIOS. Similar there was no virtual drive B. Only available drives got numbered.
MS-DOS changed this by putting floppies first and adding a virtual floppy drive B for single floppy systems (yes, they were common, after all, 160 KiB is a lot of storage). This simplifies operation of software that needs two disks at once - not just for copying, but every other usage - like having a system disk with OS and application, for example a word processor, and another for data (read: text files). With only one drive a software had to handle disk change on it's own, not a nice task - especially if other components may be needed from the system disk. Handling two disks independently in the same drive did away with all issues (*1), software could assume there are always two drives to work with (*2).
So in an MS-DOS system C was always the first available drive number (thus letter) after the mandatory (at the time) floppy(s). When (later) hard disks became available they were usually mounted as C. Again (much) later when hard disk became a commodity, software started to assume C as being a hard disk, the same way they did for A&B as floppies. Which of course did not work out as easy with systems offering more floppy drives than two. So, again later (with DOS 5) C was finally reserved for the primary boot disk/partition (if not being a floppy).
which I took from here and it's basically the same thing that is on Wikipedia and in the aforementioned SE answer.
Finding it in many variations is usually(*3) a good hint that it really is the way it was made.
I may be in for disappointment, but I wonder if there is more to the story.
No, there is no meaning with drive letters. It's simply meant to number the drives, so they can be distinguished.
To draw a parallel, in many scientific fields (𝑥, 𝑦, 𝑧) is acknowledged as a tuple of unknowns. The criteria behind this choice is likely that the first letters of the alphabet were used for known quantities, and the last for unknown quantities (as per this answer on MathOverflow).
Well, that's exactly as here. The sequence of known drives starts with A and goes up the alphabet order.
Did C: have a meaning which was non-depending of the existence of two floppy drives?
No, drive letters have no meaning at all. They are simply variable names chosen in sequence of detection.
Beyond One's Own Nose
Putting aside if meaningful drive names are a good thing or not, other systems did use more meaningful names, like Amiga-DOS used DFn
for floppies (with n sequential numbered starting with Zero) and DHn
for hard drives. The problem about locating the system drive was solved by adding logical names like SYS
for the system drive/directory.
Then again, why use drive designators at all?
Like Unixoides, simply just work with their directory tree, having files (directories) from some various drives - and points thereof - simply mounted anywhere. Some not adding any way to access the drive as such, others offering symbolic entries to do so. Being somewhere in the middle between desktop and mainframe this dual handling makes quite sense.
And then there are systems, like all TSOS offspring, that do not care much about directories or alike but manage everything in a single catalogue database with volume names as attributes to the file entry. These being mainframe systems, the user does not have any idea about drives. For most parts not even drive types, or if it's on a disk or tape (*4) If at all, a volume were the file is located is known. In addition, drives do not have fixed hardware names - by exchanging a simple plug they can be renamed on the fly ...
*1 - That is except the dreaded message to swap floppies.
*2 - Apple did go a step further by using volume names, so the single Mac drive could handle multiple disks concurrently, notifying the user to swap whatever was needed next . Which is as well less tricky in a windowed system allowing modal message boxes than on a line based interface.
*3 - Usually, as we all know one or more of those hard to kill myths being repeated over and over on the net-like Voyager running on 1802 CPUs.
*3 - Random reads on non cached tape files just happened to be somewhat ... err ... slow.
:4
being used for the first hard drive partition in Acorn RiscOS. On the earlier BBC Micro, drives 0 and 1 referred to the first side of the two floppy drives you could attach to the i8271 or WD1770 controller (whichever was fitted), and drives 2 and 3 referred to the second side of the two drives. Drive 4 was thus the first drive number available for an ADFS-formatted hard drive, originally a "Winchester" ST-series drive connected through a SCSI controller and adapter board.A:
toB:
. Thecopy
routine would read bytes from the diskette that was in the drive when you gave the command, and then it would prompt you to pop that one out, and pop-in the one that you wanted to write. It might prompt you to switch back and forth several times depending on the size of the file and the amount of available RAM. See Raffzahn's answer and Chromatix answer (below) for the details.