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:
-
What is a logical drive?
-
How many logical drives the system can contain?
-
How are the names of logical drives assigned?
-
How to use over 4 PRIMARY partitions under logical discs?
-
How to avoid shifts in drive names after plugging in additional
hard disks?
-
How to change the order of drives mounted from the extended
partition?
-
How to use mount.exe utility?
-
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:
-
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.
-
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.
-
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 taken in the technical support
section