On 2012-Oct-4 15:31 , Mark Cave-Ayland wrote:
[...] Incidentally their "fix" for the incorrect seek offset for the second volume descriptor is ridiculous - instead of parsing the volume for the information and converting based upon the block size in the volume header, they completely break the abstraction and add another optional argument to volume_open() which points to the partition map which is guaranteed to store the offests in 512 byte blocks. If it is specified at open time, it simply overrides the values read from the volume. Sigh. [...]
Interesting. I just had to fix this last year for Sun(Oracle) on SPARC. With 4k disk block/sectors, offsets in both SMI and EFI/GPT partition tables ( http://en.wikipedia.org/wiki/GUID_Partition_Table ), partitions are given in block numbers dependent on the block size. That is, unless you have access to SCSI so you can find out the block size, you can't interpret the labels properly. Which makes life interesting on CD/DVDs, where the blocksize of the media is not necessarily tied to the block size of the reading device (so for the removable media case alone, we hard-code that block sizes in partition descriptors _are_ 512 bytes even when both agree that they are 2048 bytes).