Amiga RDB
"Axel Dörfler" <[email protected]>
| Newsgroups | gmane.os.openbeos.storage |
|---|---|
| Message-ID | <21053789606-BeMail@nichtsnutz> |
Hi there, some weeks ago, I promised to write an eMail about my findings when writing a scanner for the Amiga RDB partitioning scheme - so here it is :-) 1) the RDB (Rigid Disk Block) is the partition scheme identifier, it can be located within the first 16 blocks of a disk. It contains: - checksum - block size - bad blocks list - fs list - partition block list - drive geometry - drive and controller and -vendor information The fs list allows for file systems to be placed on a special location, so that the operating system can boot from a non-native file system. Of course, that feature originated from AmigaOS, and therefore, should only be used with it. We only need the partition block list from there. 2) The partition blocks can be located anywhere on the disk as long as they are addressable within 32 bit blocks (as defined in the RDB structure). Note, this limitation is only true for the partition descriptions, not for the partitions themselves. A partition block contains: - checksum - a pointer to the next partition block - a disk environment structure - a name - flags for bootable and "don't mount" Typically, all partition blocks are written at the beginning of the drive, so that they can be read in fast. 3) The disk environment structure contains the information about the location of the partition on disk. Furthermore, it contains information about the file system used on that disk: - block size - file system identifier (4 byte) - boot priority - DMA mask - ... It also defines the buffer size that should be used with this file system, and provides the possibility to define reserved blocks at the beginning and the end of the partition which won't be used by the file system itself. Some general remarks: - the number of partitions is only limited by the amount of addressable blocks (so you could have 4 billions of them) - it's not intended to create sub partitions. The disk geometry stuff, bad block lists, etc. are targeted towards older SCSI drives, which we don't have to use, obviously. I don't know though, if they have to be maintained for compatibility - but I could check that out. Adios... Axel.