[openbeosstorage] Amiga RDB

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.


Other related posts: