Main Download Register Plugins Technical Support Guestbook
Credits Screen shots Documentation FAQ Articles Links News
Russian English German Orphus System

Vladimir Dashevsky

Mounting drives in DOS and Windows 95/98/ME

In this article I will shed light upon some aspects of using file systems in the DOS and Windows 95/98/ME. The following questions will be looked into:

  1. What is a logical drive?
  2. How many logical drives the system can contain?
  3. How are the names of logical drives assigned?
  4. How to use over 4 PRIMARY partitions under logical discs?
  5. How to avoid shifts in drive names after plugging in additional hard disks?
  6. How to change the order of drives mounted from the extended partition?
  7. How to use mount.exe utility?
  8. Where to get mount.exe utility?

So, let's try to clear up all these questions.

What is a logical drive?

The logical drive extends the idea of physical drive. In the far days of the DOS's first version when hard disks didn't exist and a file system had no concept of subdirectories, the whole space of sectors of one diskette was considered as one file system. Now we can say that the concept of logical drive coincided at that time with that of physical drive but nobody then thought about it simply because there was no need in logical drives.

But soon the need came. First, a PC got a second physical drive. This caused drive letters to be invented to designate physical drives. At present, drive letters A: and B: still correspond to real drives even if the drive is not installed into the system. By the way, floppy diskettes are still not divided into partitions and do not discern a logical disc from a physical one.

As hard drives were developing they acquired new letter C:. First hard disks were tiny and did not differ much from diskettes in terms of file allocation. First hard disks contained only one file system, i.e. letter C: meant only a physical device, like in floppy drives. However, hard disks grew up in size in a very fast manner and the FAT file system was doomed to death as it couldn't embrace the whole drive space. The first system was FAT12 based on only 4096 clusters that limited a disc capacity to several megabytes. What was the simplest tradeoff that could be offered in that situation?

The solution was found soon. Namely, it was a logical disk. Hard disk was divided into partitions. Each partition could be treated as a pseudo-physical disk. So, the partition's contents was named logical disk. Logical drives were the drives for logical disks. Large spaces of new hard drives were covered by several file systems located in different logical drives. Users were already familiar with drives' letters at that moment. In addition, the approach of logical disks promised new administration possibilities for arranging files and program packages.

Modern file systems and, in particular, FAT32, can use full capacity of modern hard disks. And It may seem there is no need anymore in logical drives. However, PC development did give birth to logical drives. And now it's them which are the key objects in administration of operating system, - not physical disks.

Thus, logical disks should be identified with containers of file systems with their own root directory and FAT. One physical drive may contain several logical ones but they must not intersect to prevent data loss.

How many logical drives a system can contain?

The Roman alphabet with its 26 letters is what limits the number of logical disks. But in practice it is still a large number.

The second important limitation is the amount of memory allocated for system tables of description of logical disks. The more disks you are going to use, the larger the table must be. To prevent memory waste the DOS got a special parameter for config.sys called LASTDRIVE. This parameter defined a drive name which was the last entry in the table of drive descriptors. In the Windows 95 or 98 this limitation was put an end to because the table is always created for 26 possible letters.

So, operating systems are able to work with up to 26 drives though this number is not required since file systems can cover all drive space.

During OS booting logical disks must be mounted, that is, the operating system must determine the layout of logical disks inside the physical one to read descriptors of file systems and register them in internal tables. As a result, a user gets an access to file systems located in these logical disks.

Logical disks are first of all described with the Master Boot Record, MBR. It contains 4 descriptors of partitions. Each partition has its location inside the physical disk indicated, plus, it gets the FSC (FSC - file system code) which describes a type of contents of the partition. FSC is encoded into one byte; the DOS systems use the following types:

  • #01, #04 - partitions containing a logical disk with FAT12, FAT16 (up to 32Ő) file systems
  • #06, #0E - partitions containing a logical disk with FAT16 file system
  • #0B, #0C - partitions containing a logical disk with FAT32 file system
  • #05, #0F - extended partitions

As the table in MBR gives no more than 4 partitions, there are apparently a maximum of 4 logical drives in a system. But it's wrong. Microsoft described only one logical drive (PRIMARY PARTITION) in the MBR. And the fdisk program allows creating only one PRIMARY PARTITION though the OS kernel mounts all PRIMARY PARTITIONS it finds in the MBR partition table. The partition editor of SyMon gives you more freedom here.

All other logical drives are put into one container - EXTENDED PARTITION, as it was designed by Microsoft. Fdisk also allows for only one such unit, though it is also its own limitation. Extended partition is a chain of non-intersecting subpartitions. Each subpartition is described similarly to MBR, therefore, each partition contains one logical drive. Length of the chain is limited only by physical Disk's capacity, though the limitation of 26 latin letters goes into the first place.

So, with just two partitions in MBR, PRIMARY and EXTENDED, you can arrange as many logical drives as your operating system supports.

How are the names of logical drives assigned?

For today logical disks are a distinguishing feature of systems related with Microsoft. And there certainly is a fly in the ointment. The approach used to assign letters for disks looks weird.

First of all, DOS and Windows 95/98/ME systems assign names of logical disks in a strict order, this order cannot be changed. The order is as follows:

  1. Drive letters are assigned to PRIMARY PARTITIONS which are marked ACTIVE in Master Boot Record on all hard drives. If no PRIMARY PARTITIONs are marked ACTIVE, the first PRIMARY PARTITION of first hard drive will be assigned.
  2. Drive letters are assigned to all disks from the EXTENDED PARTITIONS. Extended partitions are handled in the order of detection on all hard disks. Hard disks are handled in order inherited form BIOS, starting the first physical drive.
  3. Drive letters are assigned to all other PRIMARY PARTITIONS which are not marked ACTIVE, in the order of detection on hard disks.

This algorithm of letter assignment makes letters be shifted when another hard dirsk is installed or removed. For example, if the first hard disk has one PRIMARY PARTITION C:, and additional EXTENDED PARTITION has drives D: and E:, and we want to add another hard disk with the same partition structure, new drive letters will be assigned the following way:

  C: = C: from first hard disk
  D: = C: from second hard disk
  E: = D: from first hard disk
  F: = E: from first hard disk
  G: = D: from second hard disk
  H: = E: from second hard disk

Therefore, addition of hard disks forces down file customizations of all programs which are located not on disc C:. This brings enourmous problems to most users who decide to get an additional hard disk.

So, who is guilty in such an absolutely confused way of character assignment? Itís the compatibility which is praised so much out there! Letís dive into the history just for a second. When hard disks just appeared, logical disks were identified with physical ones. That is, one hard disk had name C:, the other - D:. When the volumes of information were too great, it was high time to replace them with more capacious samples. But the problem was that new more capacious disks were too big for old file systems and it was necessary to create new logical disks on the extended partitions. But characters C: and D: were already taken and customizations made! The only wayout was to mount logical disks from the extended partition after logical disks from the PRIMARY ones. Microsoft simply followed tastes of the customers who needed compatibility!

Now we have nothing to do but regret that paths of compatibility are inscrutable. Nevertheless, now we have SyMon which with its technical support utilities can solve those old problems.

How to use over 4 PRIMARY partitions under logical disks?

The SyMon partition table supports up to 36 partitions, all of which can be made PRIMARY partition and contain information on logical disks. But the problem is that the MBR can reflect only 4 of them. That is why SyMon comes with mount.exe utility which can mount logical disks from all partitions of the SyMon partition table.

How to avoid shifts in drive names after plugging in additional hard disks?

Mount.exe can also bind logical disks to the partitions with the help of the configuration file fstab which must be located in the same directory as an executable file. You can easily assign any order of characters designating logical disks on different hard disks. In particular, it allows avoiding shift of characters.

To avoid character shifts of logical disks of the first hard disk when a second disk is added, it is necessary to clear the MBR of the second hard disk from all PRIMARY and EXTENDED partitions. Also, it is possible to remove all partitions except the bootable one in the SyMonís settings in the MBR of the first disk. This guarantees that the standard mechanism of mounting of DOS Windows partitions will not damage the desirable order of logical disks taking into account that no information where to take them is provided.

Then, it is necessary to edit the fstab file and start mount.exe which will register all disks under the names you like.

How to change the order of drives mounted from the extended partition?

Mount.exe also allows mounting separate logical disks from the extended partition. That is why you can change the order     of character assignment for these disks. By default, disks are named in alphabetical order as they are arranged in the extended partition.

How to use mount.exe utility?

Itís very simple to use mount.exe.

    The utility together with fstab file must be copied to any directory of disc C:. Then you have to write down this utility in AUTOEXEC.BAT.

    In fstab all logical disks must be described the following way:

     drive: hd (N) partition (M) subunit (L)

Where:

  • N - number of a hard disk, starting from zero
  • M - number of a partition in the SyMon partition table
  • L - number of subsection in the extended partition if M is an extended one.

Each logical disk must be associated with one descriptorís line.

In closing look at the fstab file made for two hard disks, each containing the main partition on disk C: and an extended partition on disks D: and E:, - we also want to avoid shift of drive letters. The main partition are written in line 0 of the SyMon partition table, and the extended ones in line 1.


fstab
  D: hd (0) partition (1) subunit (1)
  E: hd (0) partition (1) subunit (2)
  F: hd (1) partition (0)
  G: hd (1) partition (1) subunit (1)
  H: hd (1) partition (1) subunit (2)

Where to get mount.exe utility?

Mount.exe can be obtained from the technical support section

ÔĽŅÔĽŅ
ROS Research Labs, © 2014
Designed by Hoodwin
  Orphus System Spelling or style error noticed?
Mark the text with your mouse
and press "Ctrl + Enter"!
TopList