The DOS plug-in provides compatibility with DOS partition tables. The plug-in produces EVMS segment storage objects that map primary partitions described by the MBR partition table and logical partitions described by EBR partition tables.
DOS partitions have names that are constructed from two pieces of information:
The device they are found on.
The partition table entry that provided the information.
Take, for example, partition name hda1
, which
describes a partition that is found on device hda
in the MBR partition table.
DOS partition tables can hold four entries.
Partition numbers 1-4 refer to MBR partition records. Therefore, our
example is telling us that partition hda1
is described
by the very first partition record entry in the MBR partition table.
Logical partitions, however, are different than primary partitions.
EBR partition tables are scattered across a disk but are linked together
in a chain that is first located using an extended partition record found
in the MBR partition table.
Each EBR partition table contains a partition record that describes a logical
partition on the disk.
The name of the logical partition reflects its position in the EBR chain.
Because the MBR partition table reserves numerical names 1-4, the very
first logical partition is always named 5.
The next logical partition, found by following the EBR chain, is called 6,
and so forth.
So, the partition hda5
is a logical partition that is
described by a partition record in the very first EBR partition table.
While discovering DOS partitions, the DOS plug-in also looks for OS/2 DLAT metadata to further determine if the disk is an OS/2 disk. An OS/2 disk has additional metadata and the metadata is validated during recovery. This information is important for the DOS plug-in to know because an OS/2 disk must maintain additional partition information. (This is why the DOS plug-in asks, when being assigned to a disk, if the disk is a Linux disk or an OS/2 disk.) The DOS plug-in needs to know how much information must be kept on the disk and what kind of questions it should ask the user when obtaining the information.
An OS/2 disk can contain compatibility volumes as well as logical volumes. A compatibility volume is a single partition with an assigned drive letter that can be mounted. An OS/2 logical volume is a drive link of 1 or more partitions that have software bad-block relocation at the partition level.
Embedded partitions, like those found on a SolarisX86 disk or a BSD
compatibility disk, are found within a primary partition.
Therefore, the DOS plug-in inspects primary partitions that it has
just discovered to further determine if any embedded partitions exist.
Primary partitions that hold embedded partition tables have partition
type fields that indicate this.
For example, a primary partition of type 0xA9 probably has a BSD partition
table that subdivides the primary partition into BSD partitions.
The DOS plug-in looks for a BSD disk label and BSD data partitions in the
primary partition.
If the DOS plug-in finds a BSD disk label, it exports the BSD partitions. Because
this primary partition is actually just a container that holds the BSD
partitions, and not a data partition itself, it is not exported by the
DOS plug-in.
Embedded partitions are named after the primary partition they were
discovered within. As an example, hda3.1
is
the name of the first embedded partition found within primary partition
hda3
.