[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: How To Read Volume ID from DVD



Hi,

> growisofs's CD001

That's actually mkisofs's "CD001".

growisofs -M examines media TOC resp. the
ECMA-119 PVD in order to get the parameters
for a run of mkisofs -C . growisofs then
starts mkisofs and writes its output to the
media. In case of overwriteable media it
finally copies the Volume Descriptors of
the new session to the start of the media.

xorriso does about the same but uses
libraries libisofs, libburn and libisoburn.
On overwriteable media it puts the first
session to LBA 32 rather than 0. This protects
the PVD of the first session from being
overwritten by the PVD copies of further
sessions. So it is possible to follow a chain
of sessions when printing a table-of-content.


> Indeed I have been frustrated trying to find out a description of
> multi-session ECMA-119 layout.

The idea is quite simple:
Mount uses as superblock address the start
of the first track in the last session.
At this address it expects a System Area of
16 blocks followed by a Volume Descriptor Set.
It is interested in the PVD which tells the
address of the Directory Entry of the root
directory and the size of the image.

The only deviation from ECMA-119 is that the
superblock address is not 0. Prescribed is:
"6.2.1 System Area and Data Area
 The System Area shall occupy the Logical
 Sectors with Logical Sector Numbers 0 to 15.
 [...]
 6.7.1 Volume Descriptor Set
 A Volume Descriptor Set shall be a sequence of
 volume descriptors recorded in consecutively
 numbered Logical Sectors starting with the
 Logical Sector Number 16."

Everything else in our doings follows ECMA-119
resp. squeezes itself into the niches which have
been left open in that standard.
E.g. SUSP, Rock Ridge, AAIP use a few reserve
bytes of each directory entry to attach extra
info and make ISO 9660 a decent filesystem.

On sequential media we formally fulfill the
demands of ECMA-119 by having an outdated
system area and Volume Descriptor Set at
addresses 0 and 16.
On overwriteable media we fulfill ECMA-119
completely by putting an updated copy of the
prescribed stuff to LBA 0 to 16.

The El-Torito specs for booting support our
interpretation of ECMA-119 liberty by prescribing
to use the "System Area" of the last session.
Nevertheless many BIOSes stick to ECMA-119 and
insist in using the System Area at LBA 0 and
the El-Torito boot record at LBA 17 to 31.
So bootable multi-session CDs and DVDs should
in each session point to the same boot objects
in the image which should all sit in the first
session.


> (To wit, the Volume Space Size field from the
> Primary Volume Descriptor from ECMA-119 doesn't fully account for the
> difference between sessions.)

Oh it does. But each PVD can only give the
end address of its own session. So you will
see an increasing volume size in each session.
It is always counted from LBA 0 and not from
the start LBA of the session.
I.e. a PVD covers its own session and all
older sessions.


> system identifier, volume identifier, volume set identifier,
> publisher identifier, data preparer identifier, application
> identifier, copyright file identifier, abstract file identifier,
> bibliographic file identifier.

How about this:

  $ xorriso -indev /dev/... -pvd_info
  ...
  System Id    : ...
  Volume Id    : ...
  Volume Set Id: ...
  Publisher    : ...
  Preparer     : ...
  Application  : ...
  Copyright Id : ...
  Abstract Id  : ...
  Bibliogr. Id : ...


Have a nice day :)

Thomas


Reply to: