59 lines
2.1 KiB
Plaintext
59 lines
2.1 KiB
Plaintext
|
===============================================================================
|
||
|
ISO-9660 Level 3 Cookbook
|
||
|
===============================================================================
|
||
|
|
||
|
Creation date: 2008-Aug-17
|
||
|
Author: Vreixo Formoso
|
||
|
_______________________________________________________________________________
|
||
|
|
||
|
Contents:
|
||
|
---------
|
||
|
|
||
|
1. References
|
||
|
2. General
|
||
|
3. OS Support
|
||
|
4. Implementation
|
||
|
|
||
|
|
||
|
-------------------------------------------------------------------------------
|
||
|
1. References:
|
||
|
|
||
|
ECMA-119 "Volume and File Structure of CDROM for Information Interchange"
|
||
|
|
||
|
|
||
|
-------------------------------------------------------------------------------
|
||
|
2. General
|
||
|
|
||
|
In ECMA-119 standard, the size of a file section cannot be bigger than 4GB - 1,
|
||
|
because the Data Length field of the Directory Record is just 32 bits (9.1.4).
|
||
|
|
||
|
However, "each file shall consist of one or more File Sections" (6.5.1), and
|
||
|
that way we can store files greater than 4GB in a ECMA-119 image. Such image,
|
||
|
with multiple File Sections, is only supported at Level 3 (10.3), as Level 2
|
||
|
(10.2) states that "each file shall consist of only one File Section".
|
||
|
|
||
|
On disc, each file section is stored in a Extent (6.4.2), i.e. a set of
|
||
|
contiguous Logical Blocks.
|
||
|
|
||
|
|
||
|
-------------------------------------------------------------------------------
|
||
|
3. OS Support
|
||
|
|
||
|
Wikipedia states that "Microsoft Windows XP supports this, while Mac OS X
|
||
|
(as of 10.4.8) does not handle this case properly. In the case of Mac OS X,
|
||
|
the driver appears not to support file fragmentation at all (i.e. it only
|
||
|
supports ISO 9660 Level 2 but not Level 3). Linux supports multiple extents.
|
||
|
FreeBSD only shows and reads the last extent of a multi-extent file."
|
||
|
|
||
|
-------------------------------------------------------------------------------
|
||
|
4. Implementation
|
||
|
|
||
|
Each File Section will have its own Directory Record (6.5.1). So, for files
|
||
|
greater than 4 GB, we need to store several directory records, that will have
|
||
|
the same File Identifier, and stored in the order of the File Sections they
|
||
|
refer (9.3).
|
||
|
|
||
|
All but the last Directory Record must have the Multi-Extent flag set (9.1.6)
|
||
|
|
||
|
|