Re: Linux doesn't support bigger than 2TB IEEE-1394 disk

Stefan Richter
2009-05-04T18:23:10Z

OK, so the upshot is:

- The usually used commands READ CAPACITY (10), READ (10), WRITE (10)
support 32 bits wide logical block addresses (LBAs), which is
sufficient for up to 2 TB at the currently ubiquitously used block
size of 512 bytes.

- Linux will use READ CAPACITY (16), READ (16), WRITE (16) if the disk
behaves like an SBC disk, particularly, if the disk responds with
0xffffffff to READ CAPACITY (10) like defined in SBC. This will
happen regardless whether the disk showed itself as SBC or RBC disk
in the INQUIRY response (which comes before the capacity is read).
So the fact that many IEEE 1394 disks show themselves as RBC in the
INQUIRY response doesn't matter in this regard, what matters is
the implemented READ CAPACITY behavior of the disk.

READ CAPACITY (16), READ (16), WRITE (16) have 64 bits wide LBA
fields and thus enable disk sizes of more than 2 TB.

- Furthermore, Linux will use READ CAPACITY (16) even before having
tried READ CAPACITY (10) under some special circumstances, which
also depend on the kernel version. This however is less relevant to
the problem at hand.

And lastly, one thing which I almost forgot:

On 32 bit CPU architectures, it is necessary that the kernel was
compiled with the option "Support for large block devices and files"
(LBD) switched on. My guess is that all commonly used Linux
distributions for 32bit systems do have this option enabled in their
standard kernel packages --- at least the more recent ones. It's not an
issue with 64 bit CPU architectures.
--
Stefan Richter
-=====-=-=== -=-= -==-=