Schematically Structured File System 00.01
Master Boot Record Format
DRAFT: #1
WRITTEN BY: Vandad Nahavandipoor
EMAIL: AlexiLaiho.cob@GMail.com
*1 to 65536 sectors long depending on LLLL
*All reserved bits must be set to zero
Start Byte |
End Byte |
Length |
Value |
Description |
0 |
439 |
440 |
Variable |
Therefore, if the LLLL after the SSFS Signature is set to 4 for example, then the bootstrap code will have 4 extra sectors right after the Master Boot Sector to continue its code stream. Or if LLLL is set to 0x0000 (zero) in the SSFS Signature, then the bootstrap code will be limited to 440 bytes in the Master Boot Record from Bytes #0 to #439 inclusive.
|
440 |
441 |
2 |
0x8ACE |
If this
2-bytes-long value is not set to 0x8ACE then it means that this media is not
formatted as a SSFS compliant media. |
442 |
443 |
2 |
0xLLLL |
Therefore, the bootstrap code will have enough space for its initialization and etc. This value can be set to anything in the range 0…65535 therefore the bootstrap code can contain up to 65535 sectors. If this value is set to 0xFFFF for 65535, the bootstrap code can be extended for:
440 +
(65535 * 512) = 33554360 bytes. 440 bytes is the main bootstrap code from
Byte #0 to Byte#439 inclusive and since each sector on the disk is 512 bytes
long, the above result will be yielded. If LLLL
is set to 0x0000 (zero), the bootstrap code will be limited to 440 bytes that
have been set aside originally, from Bytes #0 to Byte #439 inclusive. |
444 |
445 |
2 |
0x0000 |
Reserved. |
446 |
493 |
48 |
Variable |
typedef STRUCT PARD{ BYTE PartitionType; BYTE PartitionNameInASCII; BYTE[6] LBA48AddressofFirstSector; DWORD LengthofPartitionInSectors; }
The [PartitionType] member of the PARD structure can be any of the below values and even a mixture of these values (OR):
The
[LBA48AddressofFirstSector] must be greater than LLLL+1. For example,
if LLLL is set to 1 then the [LBA48AddressofFirstSector] of any of the
partitions must be bigger than or equal to 2 because obviously Sector #1 in
this case is given to the Extended Bootstrap. The
[PartitionNameInASCII] member of the PARD structure must be a character in
the range ‘A’…’Z’, ‘a’…’z’, ‘0’…’9’. Special characters such as null, ‘^’,
‘\’ and etc are not allowed. This allows up to 26+26+10 different names to be
selected for each drive using the SSFS format. |
494 |
497 |
4 |
Variable |
Constraints on these values:
|
498 |
501 |
4 |
Variable |
Constraints on these values:
* The Hours field must be in the
range 0…24 inclusive meaning that the time 24:00:00 is completely valid. The
time must turn in this way:
|
502 |
509 |
8 |
Variable |
Size of the media in sectors. |
510 |
511 |
2 |
0xAA55 |
MBR Signature (LSB = 0x55, MSB = 0xAA). |