UDF File Documentation


Summary

A .udf file is normally a disc image whose contents use the Universal Disk Format file system, the OSTA-defined layout used on DVDs and Blu-ray discs. It is the same idea as an ISO image of a CD, but with the UDF file system inside rather than ISO 9660. UDF is standardised as ECMA-167 / ISO/IEC 13346. The typical MIME type is application/octet-stream (some tools report application/x-udf-image).

Technical details

FeatureValue
Full nameUniversal Disk Format (UDF) file system / disc image
File extension.udf
MIME typeapplication/octet-stream (also application/x-udf-image)
Format typeOptical-disc file system; disc image (binary)
DeveloperOSTA (Optical Storage Technology Association); base structure by Ecma International / ISO/IEC
IntroducedUDF 1.00 in October 1995; ECMA-167 base standard first edition 1994
StandardECMA-167; ISO/IEC 13346; OSTA UDF profiles 1.02, 1.50, 2.00, 2.01, 2.50, 2.60
Open standardYes — vendor-neutral, publicly published
Byte orderLittle-endian (ECMA-167 records multi-byte fields little-endian)
Logical sector size2048 bytes on optical media (matches the physical block)
Recognition identifiersBEA01, NSR02 (UDF 1.x/2.0) or NSR03 (UDF 2.50+), TEA01
Recognition area startsSector 16 (byte offset 0x8000 = 32768)
Anchor point (AVDP)Fixed logical sector 256; backup near the end of the volume
Descriptor integrityEach descriptor carries a tag with an 8-bit TagChecksum and a 16-bit DescriptorCRC
Directory recordsFile Identifier Descriptors point to File Entry / Extended File Entry ICBs
Write methodsPlain build (rewritable/HDD), VAT build (write-once CD-R/DVD-R), spared build (CD-RW/DVD-RW)
Maximum file size16 EiB (per the ICB extent structure)
Compatibility modeUDF Bridge — an ISO 9660 CD001 volume alongside UDF on the same disc
Related extensions.iso, .img, .nrg, .bin, .mdf
Specification URLosta.org/specs/
File signature (volume recognition)
4E 53 52 30 32 ("NSR02") / 4E 53 52 30 33 ("NSR03")

A UDF image has no fixed magic at offset 0. The system area (sectors 0–15) is reserved, so the first bytes are blank or hold a boot record. Identification starts at the Volume Recognition Sequence, which begins at sector 16 (byte offset 0x8000 = 32768). There a run of Volume Structure Descriptors carries 5-byte ASCII standard identifiers: BEA01 (Beginning Extended Area), then NSR02 or NSR03 (the NSR descriptor that actually marks a UDF volume; NSR03 appears from UDF 2.50), then TEA01 (Terminating Extended Area). Each identifier sits at byte 1 of its descriptor, after a 1-byte structure type. Presence of an NSR descriptor guarantees an Anchor Volume Descriptor Pointer at fixed logical sector 256 (0x100), with a backup near the end of the volume. Many discs also record an ISO 9660 CD001 identifier in the same area for compatibility (“UDF Bridge”), so one image can match both.

What is a UDF file?

UDF stands for Universal Disk Format, the file system defined by the Optical Storage Technology Association (OSTA) and first published as UDF 1.00 in October 1995. It is a profile of the international standard ECMA-167, published in parallel as ISO/IEC 13346, which specifies volume and file structure for write-once and rewritable media using non-sequential recording. OSTA created UDF to replace ISO 9660, the older CD file system, and to give a single layout that Windows, macOS and Linux could all read on DVD, Blu-ray, HD DVD, packet-written CD-RW, and large-file interchange media.

A file carrying the .udf extension is almost always a disc image: a sector-by-sector copy of a disc whose internal file system is UDF, kept as one file for backup, mounting or burning. In that sense it is the UDF counterpart of an ISO file. Because both are optical-disc images, the two extensions are largely interchangeable in practice; DVD and Blu-ray images are frequently saved as .iso even though the file system inside them is UDF. The sections below describe what that internal structure actually contains, descriptor by descriptor, as ECMA-167 lays it out.

The ECMA-167 volume model and the 2048-byte sector

ECMA-167 describes a volume as a numbered sequence of logical sectors. On optical media the logical sector size is 2048 bytes, matching the physical block of a CD, DVD or Blu-ray, so logical and physical addressing line up. Everything in the format is addressed by sector number, and all multi-byte integer fields are recorded little-endian.

The standard splits a volume into three families of data: a Volume Recognition Sequence that announces which file systems are present, a Volume Descriptor Sequence that describes the physical volume and its partitions, and a logical layer (the File Set and the directory tree) that holds the actual files. A reader walks these in order: recognise the volume, find the anchor, read the descriptors, locate the file set, then traverse directories. The overall on-disc layout looks like this:

Sector    Contents
0 - 15    System area (reserved; boot record on bootable images)
16 ...    Volume Recognition Sequence: BEA01, NSR02/NSR03, TEA01
256       Anchor Volume Descriptor Pointer (AVDP)  [fixed]
...       Main Volume Descriptor Sequence
              Primary Volume Descriptor  (PVD)
              Partition Descriptor       (PD)
              Logical Volume Descriptor  (LVD)
              Unallocated Space Descriptor (USD)
              Logical Volume Integrity / Terminating descriptors
...       File Set Descriptor -> root directory ICB
...       File Entry / Extended File Entry ICBs + File Identifier Descriptors
...       File data (stored uncompressed in the partition)
N-256     Backup Anchor Volume Descriptor Pointer (near end of volume)

NSR02 and NSR03: the Volume Recognition Sequence

UDF does not put a magic number at byte 0. Identification starts at sector 16 (byte offset 0x8000, decimal 32768), where the Volume Recognition Sequence begins. It is a run of Volume Structure Descriptors, each starting with a 1-byte structure type followed by a 5-byte ASCII standard identifier, then a version byte and descriptor-specific data. The sequence ends at the first descriptor that is not a recognised UDF/ISO structure.

The identifiers that matter for UDF are BEA01 (Beginning Extended Area), the NSR descriptor, and TEA01 (Terminating Extended Area). The NSR descriptor is the one that actually declares a UDF file system: its identifier is NSR02 for UDF 1.02 through 2.00, and NSR03 from UDF 2.50 onward, which added the metadata-partition features for Blu-ray and HD DVD. When a reader sees an NSR descriptor here, it knows two things: the volume carries UDF, and there is an Anchor Volume Descriptor Pointer waiting at sector 256.

offset  size  field
  0      1    Structure Type
  1      5    Standard Identifier   e.g. "BEA01", "NSR02", "NSR03", "TEA01"
  6      1    Structure Version
  7    ...    (structure-specific)

Discs built for maximum compatibility also record an ISO 9660 CD001 Primary Volume Descriptor in the same area. Such a disc is a UDF Bridge: an old drive or OS reads the ISO 9660 side, a modern one reads UDF. This is why a single image can validly match both an ISO 9660 signature and a UDF one.

The Anchor Volume Descriptor Pointer at sector 256

The Anchor Volume Descriptor Pointer (AVDP) is the fixed entry point into the descriptor structure. ECMA-167 requires it at logical sector 256, with a redundant copy in the last sector of the volume and/or 256 sectors from the end, so that a scratch on one region does not make the volume unreadable. The AVDP is small: it holds two extent pointers, each a length in bytes plus a starting sector, giving the location of the Main Volume Descriptor Sequence and its backup Reserve copy.

Because the anchor is at a constant address, mounting software never has to scan the whole disc to bootstrap; it reads sector 256, follows the extent to the descriptor sequence, and proceeds. The AVDP is itself a tagged descriptor, so it is validated by the same tag/checksum mechanism described below before its pointers are trusted.

The descriptor tag: TagIdentifier, checksum and CRC

Every structural descriptor in UDF begins with a common 16-byte descriptor tag. The tag names what the descriptor is and lets a reader verify it before use, which matters on optical media where a single flipped bit is common. The fields are:

offset  size  field
  0      2    TagIdentifier        which descriptor this is (numeric)
  2      2    DescriptorVersion    2 for UDF 1.x/2.0x, 3 for UDF 2.50+
  4      1    TagChecksum          8-bit sum of the other 15 tag bytes, mod 256
  5      1    Reserved
  6      2    TagSerialNumber
  8      2    DescriptorCRC        CRC-16 (CCITT) over the descriptor body
 10      2    DescriptorCRCLength  number of bytes the CRC covers
 12      4    TagLocation          the sector this descriptor should live at

The TagChecksum is a simple modulo-256 sum of the 15 remaining tag bytes, a fast sanity check on the tag itself. The DescriptorCRC is a 16-bit CRC over the descriptor body, guarding the payload. TagLocation records where the descriptor is supposed to be, so relocated or misread blocks are caught. The TagIdentifier values are constants defined by ECMA-167:

TagIdentifierDescriptor
1Primary Volume Descriptor (PVD)
2Anchor Volume Descriptor Pointer (AVDP)
3Volume Descriptor Pointer
4Implementation Use Volume Descriptor
5Partition Descriptor (PD)
6Logical Volume Descriptor (LVD)
7Unallocated Space Descriptor (USD)
8Terminating Descriptor
256File Set Descriptor
257File Identifier Descriptor
261File Entry
266Extended File Entry

The Volume Descriptor Sequence: PVD, PD, LVD and USD

The Main Volume Descriptor Sequence, reached through the AVDP, is a list of tagged descriptors that together define the volume and its partitions. Four of them carry the load.

The Primary Volume Descriptor (TagIdentifier 1) names the volume and the volume set it belongs to, and records its position in a multi-disc set. The Partition Descriptor (5) describes a contiguous run of sectors that forms a partition: its starting location, its length in sectors, and an access type (read-only, write-once, rewritable, overwritable). The Logical Volume Descriptor (6) is the bridge from physical to logical: it declares the logical block size (2048 on optical), the character set, a partition map that says how logical addresses translate into physical partitions, and a pointer to the File Set Descriptor that roots the directory tree. The Unallocated Space Descriptor (7) tracks which volume space is free. A Terminating Descriptor (8) closes the sequence. A separate Logical Volume Integrity Descriptor records whether the volume was closed cleanly and holds counters such as the next unique file ID.

The File Set Descriptor and File Entry ICBs

The File Set Descriptor (TagIdentifier 256), located through the Logical Volume Descriptor, is the anchor of the file layer. It records the character sets in use, a logical volume and file set identifier, and, critically, the address of the root directory's ICB. From there the directory tree unfolds.

An ICB (Information Control Block) is UDF's equivalent of an inode. Each file and directory is described by a File Entry (TagIdentifier 261) or, from UDF 2.00 onward, an Extended File Entry (266) that adds fields such as a creation time and a stream directory pointer. A File Entry holds the object's type and permissions, its length, timestamps, the link count, and one or more allocation descriptors that list the extents (sector runs) holding the file's data. Because the data is described by extents, a file can be fragmented across the partition, and very small files can even be stored inline in the ICB itself.

File Entry (ICB)
  DescriptorTag        TagIdentifier = 261
  ICBTag               file type, flags, strategy
  Uid / Gid / Permissions
  FileLinkCount
  RecordFormat / InformationLength   (file size in bytes)
  Access / Modification / Attribute times
  AllocationDescriptors[]            -> extents of file data

Directory contents are stored as a series of File Identifier Descriptors (TagIdentifier 257). Each FID gives one directory entry: characteristics flags (for example, whether the entry is a subdirectory or a parent .. link), the length of the file identifier, the name itself in the volume's character set, and the address of the ICB that describes that named object. Traversing a directory means reading its File Entry, following the extents to the run of FIDs, and for each FID resolving the referenced File Entry. This tag-and-ICB design is what lets UDF support hard links, streams and large files that ISO 9660 could not.

UDF revisions, profiles and write methods

OSTA publishes UDF as a series of revisions, each a tighter profile of ECMA-167 aimed at particular media. The line runs 1.02 (August 1996, standard DVD-Video discs), 1.50 (February 1997, which introduced the Virtual Allocation Table for packet-written CD-R/RW and sparing tables), 2.00 (April 1998, adding stream files, named streams and access-control lists), 2.01 (March 2000, a clarification release), 2.50 (April 2003, which added the Metadata Partition and became the Blu-ray/HD DVD baseline and switched the recognition identifier to NSR03), and 2.60 (March 2005, adding the Pseudo-OverWrite method for sequential rewritable discs).

ECMA-167 supports three build methods that decide how the file system is laid down. A plain build assumes random read/write and suits hard drives, DVD-RAM and DVD+RW. A VAT build uses the Virtual Allocation Table to add files incrementally to write-once media (CD-R, DVD-R), remapping logical blocks so the disc can be appended to without rewriting the whole structure. A spared build uses a sparing table for defect management on rewritable media (CD-RW, DVD-RW), transparently redirecting bad blocks. Packet writing on rewritable discs, as popularised by the Mount Rainier standard, is what makes drag-and-drop “use the disc like a big floppy” possible on top of UDF.

For an image file, none of this changes how you open it: it is a passive container. A .udf image mounts natively on macOS and on Windows 8 and later (renaming to .iso is often enough for Explorer to associate it), and on Linux with mount -t udf -o loop. Tools such as 7-Zip read the UDF tree directly to extract files without mounting or burning. Related raw-image extensions you may see for the same disc content include .iso, .img and .nrg.

Frequently asked questions

Why does UDF have both NSR02 and NSR03 identifiers?

The NSR descriptor in the Volume Recognition Sequence declares the UDF structure version a reader must support. NSR02 covers UDF 1.02 through 2.00. NSR03 was introduced with UDF 2.50 because that revision added the Metadata Partition (used for Blu-ray and HD DVD), and a pre-2.50 reader must not assume it can parse those newer structures. The identifier is a version gate, not just a label.

Why is the Anchor Volume Descriptor Pointer at a fixed sector?

Placing the AVDP at logical sector 256 (with a backup near the end of the volume) means mounting software can find the descriptor sequence without scanning the disc, and can still recover if one anchor is damaged. Everything else in the volume is located by following pointers that start from that anchor.

Is a UDF image the same as an ISO?

Almost. Both are optical-disc images; the difference is the internal file system, UDF versus ISO 9660. DVD and Blu-ray images use UDF but are commonly still named .iso, and the two are interchangeable for mounting and burning. A UDF Bridge disc carries both file systems at once for backward compatibility.

References