Hi, Pete Batard wrote: > I don't believe this has anything with LFS.
This rather looks like lack of ISO 9660 level 3 support. Does it have to be explicitely enabled in libcdio ? I am somewhat clueless when reading https://www.gnu.org/software/libcdio/libcdio.html#ISO-9660-Level-3 "Level 3 ISO-9660 allows non-contiguous files, useful if the file was written in multiple packets with packet-writing software." It has nothing to do with packet-writing, which is a SCSI/MMC thing. Files larger than 4 GiB - 1 byte are represented by more than one directory record. That's because the byte counter of a single record is unsigned 32 bit. Each of the records of the file has the same name. Bit 7 of the File Flags at BP 26 (= offset 25) tells that the next record belongs to the same file. The data blocks governed by a directory record are called File Section or Extent. See ECMA-119: 6.5, 9.1.6, 10.2, 10.3. > You can download the problematic ISO (7.1 GB) by using the link below. I can offer much leaner example downloads, which i made years ago. The described problem is demonstrated by https://dev.haiku-os.org/raw-attachment/ticket/8473/file_of_4gb.iso.bz2 with 25,183 bytes of download size. Add a handful of seconds of bunzip2 to get 4,297,523,200 bytes. Content, as of xorriso -indev ... -find / -exec lsdl : drwxr-xr-x 1 0 0 0 Apr 16 2012 '/' -rw-r--r-- 1 1000 1000 4 Apr 16 2012 '/aaa' -rw-r--r-- 1 1000 1000 4297064448 Apr 16 2012 '/file_of_4gb' -rw-r--r-- 1 1000 1000 4 Apr 16 2012 '/zzz' With ./example/isolist of my libcdio-TS-RockRidge-Fix branch: d [LSN 50] 2048 /. d [LSN 50] 2048 /.. - [LSN 2098231] 4 /aaa - [LSN 55] 4294965248 /file_of_4gb - [LSN 2097206] 2099200 /file_of_4gb - [LSN 2098232] 4 /zzz There are other variations in the attachment list of https://dev.haiku-os.org/ticket/8473 -------------------------------------------------------------------- This is my advanced torture bench for letting BSDs and Solaris fail: http://scdbackup.webframe.org/large.iso.bz2 (4470 bytes -> 4,329,897,984 bytes.) Content, as of xorriso -indev ... -find / -exec lsdl : drwxr-xr-x 1 0 0 0 May 6 2014 '/' drwxr-xr-x 1 1000 1000 0 May 6 2014 '/my' -rw-r--r-- 1 1000 1000 4329375744 May 6 2014 '/my/large_file' -rw-r--r-- 1 1000 1000 6 May 6 2014 '/small_file' And with ./example/isolist of my libcdio-TS-RockRidge-Fix branch: d [LSN 2114034] 2048 /. d [LSN 2114034] 2048 /.. d [LSN 2114036] 2048 /my - [LSN 2114040] 6 /small_file The directory tree is from a second session and located above block 2,114,016 = byte 4,329,504,768 TOC layout : Idx , sbsector , Size , Volume Id ISO session : 1 , 32 , 2113977s , ISOIMAGE ISO session : 2 , 2114016 , 25s , ISOIMAGE Have a nice day :) Thomas
