fs-udf.so

Universal Disk Format and ISO 9660 filesystem support

Syntax:

driver ... udf udf_options ... &

Runs on:

QNX Neutrino

Options:

Where driver is one of the devb-* drivers, and udf_options is one or more of the following, separated by commas:

case=asis|lower|upper
Control the case used to display ISO 9660 filenames (to a readdir() request; all pathname matching is always performed case-insensitively on such names):
  • asis — don't convert the filename in any way; if the CD was mastered with strict ISO 9660 compliance, the name will be in uppercase, but more lenient utilities could produce mixed-case filenames.
  • lower — convert to lowercase (the default).
  • upper — convert to uppercase.

RRIP, Joliet, and ISO 9660:1999 store case-preserving names and ignore this option.

Note: If you specify both the case and charset options for an ISO 9660 format, fs-udf.so ignores the case option.
charset=[pvd_charset][:svd_charset]
Use a non-standard character set mapping for ISO 9660:1988 Primary Volumes and ISO 96660:1999 Supplementary Volumes. By default, these are ISO 646 (ASCII). However a number of CD-burning tools incorrectly use extended characters in filenames. An appropriate charset= specification can allow these filenames to be displayed according to a known alternate character set; without such a hint, fs-udf.so replaces with an underscore (_) any illegal characters in filenames.

Enhanced SVD format allows the active character set to be specified via ISO 2022 escape sequences, but again many CD-burning utilities fail to do this correctly, thus separate overrides are provided. The supported character sets include:

  • IBM850
  • IBM852
  • IBM866
  • US-ASCII
  • ISO-8859-1
  • ISO-8859-2
  • windows-1250
  • windows-1251
  • windows-1252

The case in these strings doesn't matter.

fileset=num
The File Set number to mount; the default is 0.
format=list
Set both the list of disk formats to support, as well as the order in which they should be probed (for media with multiple formats, such as UDF-Bridge/DVD-Video or ISO/Joliet). Separate the formats with colons (:) You can use this option to:
  • set a specific order in which to probe (e.g., format=joliet:rrip:udf)
  • remove a format (e.g., format=-rrip)
  • add a format, making it the first preference (e.g., format=+udf)

The valid formats are:

  • udf — OSTA/UDF, all v1.x and 2.x variants as supported.
  • rrip — Rock Ridge extensions to ISO 9660; adds permissions and long names.
  • joliet — Joliet extensions to ISO 9660; adds Unicode long names.
  • iso9660e — the 1999 version of the ISO 9660 spec; adds mixed-case filenames.
  • iso9660 — the base 1988 version of the ISO 9660 spec.
  • audio — create a dummy mountpoint for an audio-only/CDDA disk.

The first matching, valid format in order from the specified list is mounted.

Note: Since the audio format matches any disk with audio tracks, you should usually make it the last in the list. In addition, since many formats are extensions to a base ISO 9660 format, which is also present on the media, you should specify iso9660 itself after those formats.

The default is format=udf:rrip:joliet:iso9660e:iso9660:audio. For backward compatibility, set the format to format=udf to disable the CD/ISO formats.

gid=group
The group ID to use for files with no specified group. The default is 0.
hidden=hidden_mode
Specify what to do with "hidden" files. The hidden_mode can be one of:
  • ignore — ignore the hidden files; they don't appear in the filesystem.
  • show — (the default) show hidden files in the filesystem as normal files.
  • dot — show hidden files in the filesystem with a dot (.) prefixed to their names.
info=path
The name of the filesystem metadata directory. The first character can be + or -, and this controls whether empty entries (metadata descriptors not given a value) are shown in the directory or not, respectively. For example, if a CD doesn't have a abstract or bibliography, those pseudo-files can be hidden, or left with a empty string in them.

The default is -.info..

perms=[file_permissions][:directory_permissions]
The permissions to use for ISO 9660 files, directories, or both. The argument to this option consists of the permissions for files, followed by a colon (:), and then the permissions for directories. Either set of permissions is optional.

You can specify the permissions either as a simple numeric value, or in chmod-style format. For example, to make files executable, specify perms=+x, which is the equivalent to the exe option to fs-cd.so. Like the uid and gid options, this option is used only when the filesystem itself doesn't have explicit permissions (udf and rrip do; all others don't).

The default is a=r:a=rx.

raw=num[:chunk]
Set the number of raw CDDA/CDXA 2352-byte buffers and optionally the number of blocks to read with one raw I/O operation. The default is 0:16 (raw read presentation as described below is disabled).

If you specify only num (e.g., raw=2 vs raw=2:8), then the chunk size remains 16. The size of your raw buffer is the product of these two numbers and 2352. Reading more sectors per operation improves the overall read performance.

When enabled, this option supports the transparent reading of Mode 2 Form 2 VCD and audio files:

  • For Mode 2 Form 2 VCD files, a 44-byte RIFF header is constructed and prepended to the file data, and then data from the files' raw 2352-byte sectors are supplied.
  • Any audio tracks also get a filename in .info./CD_TrackNN.wav, which when read yields a similar RIFF header (but WAVE instead of CDXA format), followed by the raw ripped audio.

If this option is disabled, such files are unreadable to POSIX read() and fail with EINVAL.

You can use the chattr command to identify Mode 2 Form 2 or CDDA files.

uid=user
The user ID to use for files with no specified owner. The default is 0 (root).
verify=level
How much of the ISO PVD or UDF tag content (tag version, tag location, header checksum, and/or data CRC) to verify; one of the following:
  • none
  • tag — all except the data CRC
  • all
  • ?none
  • ?tag
  • ?all (the default)

Some ISO 9660:1999 SVD-mastering utilities and UDF-authoring utilities write incorrect tags, so it might be necessary to relax the verification if problems are observed. If you specify an option with a leading question mark (?), fs-udf.so consults an internal blacklist of known bad utilities and automatically skips all checks in the list; otherwise it operates at the level given after the question mark.

volume=num
The Primary Volume number to mount; the default is 0.

In addition, you can specify any of the filesystem options described for io-blk.so.

Description:

The fs-udf.so shared object provides support for UDF (OSTA-UDF/ECMA-167) and ISO 9660 (base 1988 spec, 1999 spec, Joliet extensions, Rock Ridge extensions) filesystems. It's automatically loaded by the devb-* drivers when mounting a UDF filesystem.

Note: This filesystem uses UTF-8 encoding for presentation of its filenames; attempts to specify a filename not using UTF-8 encoding will fail (with an error of EILSEQ).