19 May 2003 20:21
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(Continue reading)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
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
. In order to still being able consider a partition a
contiguous space a disk system resides on, it would be necessary to
report only the non-reserved blocks as the partition space. But this is
not so nice for DriveSetup, since it won't be able to display the
reserved parts and the user might get a wrong impression about to which
point a partition can be moved/resized.
Since the BDiskSystem::Validate*() calls will be used to ensure, that
the new partition position and size will be OK, this won't have any bad
consequences (let alone the slightly incorrect visualization), though.
I could live with that.
RSS Feed