[Previous] - [Main menu] - [Next]
Revision 1.4

Omega Disk Format

Published 24th of June 1999
by Lasse Krogh Thygesen


Purpose

Well the truth is that the system which start our PCs today is old. The old format isn't capable of handeling large disk with multiple partitions very well. A new format is needed.


How it works

Picture showing the different part of the Omega Discformat: 1) Master Boot Sector, 2) Bootmanager, 3) Partition Table, 4) Disc area The BIOS should, for compatibility reasons, still only need to read the first sector on the media. This sector contains code and information on where to load the Bootmanager from. The sector also contains information on where the Partition Table starts.

The bootmanager can be a real bootmanager, where the user can chose from multiple partitions, or it could just be some code which choses the default partition, and then boots from it.

The available disk space is structured into the sections shown in the picture to the right. A detailed explation follows:

Master Boot Record

The Master Boot Record in the Omega Disk Format have structure seen below:

Structure of the Master Boot Record
OffsetSizeDescription
0000h - 01D4h469Primary boot code - Loads the bootmanager - Area may shrink in the future
01D5h - 01D6h2Bytes per sector
01D7h - 01D7h1Media Type
01D8h - 01E1h10Total number of sectors on the disk
01E2h - 01EBh10Bootmanager start (LBA address)
01ECh - 01EDh2Number of sectors used by the Bootmanager
01EEh - 01F7h10Partition Table start (LBA address)
01F8h - 01F9h2Number of sectors used by the Partition Table
01FAh - 01FAh1Disk Format Minor Version (03 in BCD format)
01FBh - 01FBh1Disk Format Major Version (01 in BCD format)
01FCh - 01FFh4Omega Discformat signature (1402AA55h)

Media Types

This byte is used to determine the characteristics of the media on which the Omega Disk Format has been used. Depending on which attributes that has been set, the system can treat the media differently.

Media Type Attributes
7 6 5 4 3 2 1 0
Reserved RO R 0000h

Read Only (RO)
The read only bit (bit 1) can be set by the system to prevent the drive from being write accessed. And it should be set, when the Disk Format is used on ex. cd-roms.

Removable (R)
The removable bit (bit 0) is used to tell the system that the media, is easily removable. The system may therefore want to write cached data quickly to the drive, or even disable the write cache for the drive.


Bootmanager

The minimum requirement to this code segment is that it is able to search through the Partition Table for the partition entry with the highest boot priority, if two is found to have the highest boot priority, to top-most in the Partition Table is used. When one is found it should be able to start the operating system, which is installed on the partition.

The intension with this code segment, is to have a real bootmanager and/or bootloader installed. One bootmanager which could be used is the Omega version of the NlC Bootmanager. The bootmanager/bootloader will display a number of possible operating system to boot.


Partition Table

This part of the Omega Discformat, contain information about the partitions located on this media. A partition is just a part of the space on a larger media. One partition may take up all the space available, but typically on very large drives, the space is partitioned. There are several reasons for this, such as preventing loss of data in case of a crash, easier administration, and you can probably find more your self. People have different motives when partitioning drives.

Each entry in the Partition Table take up 64 bytes of data. This makes room for 8 entries in each 512 bytes sectors. The entries in the Partition Table have the following offsets from the start of the sector. The bases are: 0000h, 0040h, 0080h, 00C0h, 0100h, 0140h, 0180h and 01C0h

Structure of a Partition Table Entry
Offset from BaseSizeDescription
0000h - 0000h4Boot priority
0000h - 0000h2Partition Format ID
0000h - 0000h1Partition Format ID - Major Version
0000h - 0000h1Partition Format ID - Minor Version
0000h - 0000h1Attribute Byte
0000h - 0000h29Reserved
0000h - 0000h10Start of Secondary Boot Code (LBA address)
0000h - 0000h2Length of Secondary Boot Code in sectors
0000h - 0000h10Partition start (LBA address)
0000h - 003Fh10Partition end (LBA address)

Boot priority

The boot priority field is used by the code in the bootmanager section, to determine which partition that are going to be booted. The number of possible partitions are 524.288. It is most likely that a very little fraction of this number is actually going to be used.

Partition Format ID

The 16 bit partition format ID value is used to determine which file system that has been installed on the partition. The following is a list of file systems which currently support the Omega Disk Format.

List of Omega Disk Format compliant File Systems
Hex Value File System
0000hUnused entry in the Partition Table
0001hOmega File System

The following Major Version, and Minor Version fields are for use when the file systems are upgraded. A change in the minor version field, is justified when a reserved bit in the file system specifications is used in the new version. A change in the major version field, is required when the file system changes in a way that compatibility with the older version is broken.

Attribute Byte

This byte is used to determine the characteristics of the individual partitions. Depending on which attributes that has been set, the system can treat the media differently.

Partition Attributes
7 6 5 4 3 2 1 0
Reserved B 0000h

Bootable (B)
This attribute should be set when a partition contain executable code, which can continue the boot process.

Secondary Boot Code

The first value is the Logical Block Address (LBA) of the first sector in the partition. This value can be up to 80 bits long, but at the moment only a fraction of it is used. The start LBA address is relative to the partitions start LBA address. The next value is the lenght measured in sectors.

Partition Start / End

These two LBA addresses are relative to the beginning of the media. The size of the partition can be calculated by subtrating the End LBA address from the Start LBA address.


Disk Area

This is where the actual data is stored. This space is devided into one or more partitions, by the method described above. This area take up the rest of the available disk space.


Other Information

No other Operating System other than the Maverick OS are known to support the Omega Disk and Partition Formats. The LBA address mode may cause problems for some older BIOS, but the extent of this problem is yet unknown.


Note for developers

The bootmanager code should pass on information from which drive and partition the secondary boot code was loaded from. These numbers should be passed through the EDX register in the following way:

Table showing the format for passing bootdrive information during boot
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Reserved Partition number: 00000h - 7FFFFh Drive: 01h, 80h... 0000h


Changes from previous revision