[Debburn-devel] CD-Extra issues

Thomas Schmitt scdbackup at gmx.net
Thu Dec 4 10:49:40 UTC 2014


Hi,

> [od] -t x1 gives a bytewise hexdump:

This must have been invented after i read S.R.Bourne's
The Unix System. :))


> 0000000 37 76 9a 9e 71 34 3e 02 39 22 19 83 76 b9 2d 94
> 0000020 8c d7 86 36 ad f8 7f b6 e5 62 bf bd 94 82 94 fa
> 0000040 63 f8 f2 6d aa ce ed 52 59 3a fb 83 c4 18 e6 5f

This surely does not contain the start of a plausible
directory record. There must be a 32-bit block address in it,
in the range of the size of a CD. Thus it must contain at
least one zero byte.


> cd/track-01.mp3
> 049000 37 76 9a 9e 71 34 3e 02 39 22 19 83 76 b9 2d 94

So how did the interpretation of the tree of directory
records get into the data content of a payload file ?
(Or is my theory about the inode numbers wrong, and we
 are looking at the wrong block ?)


I understand your directory structure is simply
  cd/
    track-01.mp3
    ... only data tracks, no directories ...

Possibilities which come to me:
- The root directory record could point to the wrong block
  as start of its directory record list. 
- The directory record of /cd could point to the wrong block
  as start of its directory record list.
- The directory directory record list of / could contain garbage.
- A directory record of a data file in /cd could falsely be
  marked as directory pointing to a list of directory records.

Interpretation begins at the Primary Volume Descriptor (PVD)
at block number image_start + 16 = 291130. ECMA-119, 8.4.
It should begin by the magic "\001CD001":
  01 43 44 30 30 31
At byte offset 0234 starts the Directory Record for the root
directory (i.e. the root inode).

Directory records form the tree of directories and files.
Their format is defined in ECMA-119, 9.1.
A directory record begins by a byte which tells its length,
thus pointing to its successor in the list.
The list ends at the byte given by the Data Length of their
parenrtd directory record.

Directories are marked by bit 1 in the File Flags byte.
ECMA-119, 9.1.6.
So only the root record and the record of "cd" should have
this bit set.


I would be interested in seeing blocks 291114 to 291292 of
the image. If this is possible then please send them to me
by private mail as gzipped binary data.


Have a nice day :)

Thomas




More information about the Debburn-devel mailing list