[haiku-bugs] Re: [Haiku] #8460: ISO9660 can not read CDs bigger than 4.7G

  • From: "scdbackup" <trac@xxxxxxxxxxxx>
  • Date: Wed, 11 Apr 2012 17:21:49 -0000

#8460: ISO9660 can not read CDs bigger than 4.7G
-------------------------------------+----------------------------
   Reporter:  jahaiku                |      Owner:  nobody
       Type:  bug                    |     Status:  new
   Priority:  normal                 |  Milestone:  R1
  Component:  File Systems/ISO 9660  |    Version:  R1/Development
 Resolution:                         |   Keywords:
 Blocked By:                         |   Blocking:
Has a Patch:  0                      |   Platform:  All
-------------------------------------+----------------------------

Comment (by scdbackup):

 Replying to [comment:13 jahaiku]:
 > Replying to [comment:10 scdbackup]:
 > > I am the developer of xorriso.
 > >
 > > You may let it report block addresses of data files, which should
 > > match the LBN from line 848 of iso9660.cpp:
 > > {{{
 > >          TRACE(("InitNode - data start LBN is %d\n",
 > >                 (int)node->startLBN[FS_DATA_FORMAT]));
 > > }}}
 > >
 > > The xorriso command would be
 > > {{{
 > >   xorriso -indev ...ISO-image-path... \
 > >           -find / -sort_lba -exec report_lba -- \
 > >   | less
 > > }}}
 > >
 > > It will print lines like
 > > {{{
 > > Report layout: xt , Startlba ,   Blocks , Filesize , ISO image path
 > > ...
 > > File data lba:  0 ,     1907 ,       11 ,    21781 , '/md5sum.txt'
 > > File data lba:  0 ,     1918 ,       71 ,   144786 ,
 '/README.mirrors.html'
 > > File data lba:  0 ,     1989 ,       39 ,    78036 ,
 '/README.mirrors.txt'
 > > ...
 > > }}}
 > > The column "Startlba" should match the "LBN" values from the trace.
 > >
 > > On a first glimpse, iso9660.cpp looks as if it was restricted to data
 > > files with a single data extent. This would restrict the size of a
 > > data file to 4 GiB-1. But this does not restrict the overall size of
 the
 > > image.
 > [[BR]]
 >
 > I have checked this and the LBN-Value from the TRACE and the value (LBA)
 I got from xorriso is the same.
 > [[BR]]
 [[BR]]

 Well, the block addresses of the file content should be ok then.

 So {{{ iterative_io_get_vecs_hook() }}} in iso9660/kernel_interface.cpp
 would be the next
 place to put a TRACE(). Let's see whether the correct block adresses
 appear there
 and to what byte addresses they get converted.

 Do all files show wrong content or does this happen only with those which
 have
 block numbers above 2097151 (= 4 GiB - 2 KiB) ?

-- 
Ticket URL: <http://dev.haiku-os.org/ticket/8460#comment:14>
Haiku <http://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: