Release ISO images have broken RockRidge data

Thomas Schmitt scdbackup at
Tue Apr 9 18:56:23 UTC 2013


thanks for flying xorriso. :))

I am its developer and came to this thread by googling, not by
being subscribed here. Sorry for not having a message-id by which
i could attach this mail to the thread.


>>> libisofs: WARNING : Invalid TF entry

The image FreeBSD-8.4-BETA1-amd64-livefs.iso indeed has a Rock Ridge

The TF entries announce in their FLAGS byte by value 0x07 that there
are three timestamps. Each is supposed to have 7 bytes. 5 bytes of
entry header and 21 bytes of timestamps would sum up to 26.

But the length in LEN_TF is 0x19 = 25. The next entry "NM" begins
where the last byte of the last timestamp should be:

00014370 :    00  00  00  00  54  46  19  01  07  71  03  14  05  00  1d  00
                               T   F               q                        
00014380 :    71  03  14  03  0d  10  00  71  03  14  04  3b  1a  4e  4d  09
               q                           q               ;       N   M    

The missing byte would tell the time zone of POSIX atime.

(I should curb the number of error messages.)


>>> Is it possible to unroll this image respecting hardlinks?

Theoretically yes. But xorriso will not do yet.
The problem sits in the PX entries:

Although the ER Extension Identifier is "IEEE_P1282" and thus
indicates RRIP 1.12, the size of PX entries is 0x24 = 36 as with
RRIP 1.10 rather than 44 as prescribed by RRIP 1.12.

The missing bytes would host a 32 bit File Serial Number (inode
number) (as usual with ISO 9660 recorded in both byte sexes).

The PX entries of mkisofs have 44 bytes (although ER announces
RRIP 1.10 by "RRIP_1991A") and thus have inode numbers.

xorriso does restore hardlinks if enabled and if the PX entries
contain File Serial Numbers.

xorriso could try to deduce hardlink relations from the data
content addresses. Same address and non-zero length would indicate
hardlink relation between two file names.
(Zero length files are often mapped to the same content address
 without being hardlinks.)

Related specs:

SUSP 1.12 (entries CE , PD , SP , ST , ER , ES)
RRIP 1.12 (entries PX , PN , SL , NM , CL , PL , RE , TF , SF)
ECMA-119 aka ISO 9660


If FreeBSD is looking for a ISO 9660 + Rock Ridge generator:
xorriso does this too. Bootable via El Torito, MBR, GPT, APM.
I once tested
  xorriso -as mkisofs ...proposed.options...


Have a nice day :)


More information about the freebsd-stable mailing list