# Universal Disk Format

Universal Disk Format (UDF) is an open, vendor-neutral file system for computer data storage for a broad range of media. In practice, it has been most widely used for DVDs and newer optical disc formats, supplanting ISO 9660. Due to its design, it is very well suited to incremental updates on both write-once and re-writable optical media. UDF was developed and maintained by the Optical Storage Technology Association (OSTA).
In engineering terms, Universal Disk Format is a profile of the specifications known as ISO/IEC 13346 and ECMA-167.

## Usage

Normally, authoring software will master a UDF file system in a batch process and write it to optical media in a single pass. But when packet writing to rewritable media, such as CD-RW, UDF allows files to be created, deleted and changed on-disc just as a general-purpose filesystem would on removable media like floppy disks and flash drives. This is also possible on write-once media, such as CD-R, but in that case the space occupied by the deleted files cannot be reclaimed (and instead becomes inaccessible).
Multi-session mastering is also possible in UDF, though some implementations may be unable to read disks with multiple sessions.

## History

The Optical Storage Technology Association standardized the UDF file system to form a common file system for all optical media: both for read-only media and for re-writable optical media. When first standardized, the UDF file system aimed to replace ISO 9660, allowing support for both read-only and writable media. After the release of the first version of UDF, the DVD Consortium adopted it as the official file system for DVD-Video and DVD-Audio.
UDF shares the basic volume descriptor format with ISO 9660. A "UDF Bridge" format is defined since 1.50 so that a disc can also contain a ISO 9660 file system making references to files on the UDF part.

### Revisions

Multiple revisions of UDF have been released:
* Revision 1.00 (24 October 1995). Original Release.
* Revision 1.01 (3 November 1995). Added DVD Appendix and made a few minor changes.
* Revision 1.02 (30 August 1996). This format is used by DVD-Video discs.
* Revision 1.50 (4 February 1997). Added support for CD-R/W Packet Writing and (virtual) rewritability on CD-R/DVD-R media by introducing the Virtual Allocation Table (VAT) structure. Added sparing tables for defect management on rewritable media such as CD-RW, and DVD-RW and DVD+RW. Add UDF bridge.
* Revision 2.00 (3 April 1998). Added support for Stream Files, Access Control lists, Power Calibration, real-time files (for DVD recording) and simplified directory management. VAT support was extended.
* Revision 2.01 (15 March 2000) is mainly a bugfix release to UDF 2.00. Many of the UDF standard's ambiguities were resolved in version 2.01.
* Revision 2.50 (30 April 2003). Added the Metadata Partition facilitating metadata clustering, easier crash recovery and optional duplication of file system information: All metadata like nodes and directory contents are written on a separate partition which can optionally be mirrored. This format is used by some versions of Blu-rays and most HD-DVD discs.
* Revision 2.60 (1 March 2005). Added Pseudo OverWrite method for drives supporting pseudo overwrite capability on sequentially recordable media. Has read-only compatibility with UDF 2.50 implementations.$^{:10}$ (Some Blu-rays use this format.)
UDF Revisions are internally encoded as binary-coded decimals; Revision 2.60, for example, is represented as 0x0260.$^{:23}$ In addition to declaring its own revision, compatibility for each volume is defined by the minimum read and minimum write revisions, each signalling the requirements for these operations to be possible for every structure on this image. A "maximum write" revision additionally records the highest UDF support level of all the implementations that has written to this image.$^{:34}$ For example, a UDF 2.01 volume that does not use Stream Files (introduced in UDF 2.00) but uses VAT (UDF 1.50) created by a UDF 2.60-capable implementation may have the revision declared as 0x0201, the minimum read revision set to 0x0150, the minimum write to 0x0150, and the maximum write to 0x0260.

## Uses

While UDF was primarily developed for optical discs, it is also able to operate on other media such as hard disk drives and flash storage.
UDF was for well over a decade the only open-specification and cross-platform-supported file system without a file size limitation of 4 GiB (roughly 4.3 GB), until the open-sourcing of exFAT in 2019. "Cross-platform" here means supported by all three majorly used operating systems, Windows and Mac OS and Linux.

## Specifications

The UDF standard defines three file system variations, called "builds". These are:
* Plain (Random Read/Write Access). This is the original format supported in all UDF revisions
* Virtual Allocation Table, also known as VAT (Incremental Writing). Used specifically for writing to write-once media
* Spared (Limited Random Write Access). Used specifically for writing to rewritable media

### Plain build

Introduced in the first version of the standard, this format can be used on any type of disk that allows random read/write access, such as hard disks, DVD+RW and DVD-RAM media. Metadata (up to v2.50) and file data is addressed more or less directly. In writing to such a disk in this format, any physical block on the disk may be chosen for allocation of new or updated files.
Since this is the basic format, practically any operating system or file system driver claiming support for UDF should be able to read this format.

### VAT build

Write-once media such as DVD-R and CD-R have limitations when being written to, in that each physical block can only be written to once, and the writing must happen incrementally. Thus the plain build of UDF can only be written to CD-Rs by pre-mastering the data and then writing all data in one piece to the media, similar to the way an ISO 9660 file system gets written to CD media.
To enable a CD-R to be used virtually like a hard disk, whereby the user can add and modify files on a CD-R at will (so-called "drive letter access" on Windows), OSTA added the VAT build to the UDF standard in its revision 1.5. The VAT is an additional structure on the disc that allows packet writing; that is, remapping physical blocks when files or other data on the disc are modified or deleted. For write-once media, the entire disc is virtualized, making the write-once nature transparent for the user; the disc can be treated the same way one would treat a rewritable disc.
The write-once nature of CD-R or DVD-R media means that when a file is deleted on the disc, the file's data still remains on the disc. It does not appear in the directory any more, but it still occupies the original space where it was stored. Eventually, after using this scheme for some time, the disc will be full, as free space cannot be recovered by deleting files. Special tools can be used to access the previous state of the disc (the state before the delete occurred), making recovery possible.
Not all drives fully implement version 1.5 or higher of the UDF, and some may therefore be unable to handle VAT builds.

### Spared (RW) build

Rewriteable media such as DVD-RW and CD-RW have fewer limitations than DVD-R and CD-R media. Sectors can be rewritten at random (though in packets at a time). These media can be erased entirely at any time, making the disc blank again, ready for writing a new UDF or other file system (e.g., ISO 9660 or CD Audio) to it. However, sectors of -RW media may "wear out" after a while, meaning that their data becomes unreliable, through having been rewritten too often (typically after a few hundred rewrites, with CD-RW).
The plain and VAT builds of the UDF format can be used on rewriteable media, with some limitations. If the plain build is used on a -RW media, file-system level modification of the data must not be allowed, as this would quickly wear out often-used sectors on the disc (such as those for directory and block allocation data), which would then go unnoticed and lead to data loss. To allow modification of files on the disc, rewriteable discs can be used like -R media using the VAT build. This ensures that all blocks get written only once (successively), ensuring that there are no blocks that get rewritten more often than others. This way, a RW disc can be erased and reused many times before it should become unreliable. However, it will eventually become unreliable with no easy way of detecting it. When using the VAT build, CD-RW/DVD-RW media effectively appears as CD-R or DVD+/-R media to the computer. However, the media may be erased again at any time.
The spared build was added in revision 1.5 to address the particularities of rewriteable media. This build adds an extra Sparing Table in order to manage the defects that will eventually occur on parts of the disc that have been rewritten too many times. This table keeps track of worn-out sectors and remaps them to working ones. UDF defect management does not apply to systems that already implement another form of defect management, such as Mount Rainier (MRW) for optical discs, or a disk controller for a hard drive.
The tools and drives that do not fully support revision 1.5 of UDF will ignore the sparing table, which would lead them to read the outdated worn-out sectors, leading to retrieval of corrupted data.
An overhead that is spread over the entire disc reserves a portion of the data storage space, limiting the usable capacity of a CD-RW with e.g. 650 MB of original capacity to around 500 MB.

## Character set

The UDF specifications allow only one Character Set OSTA CS0, which can store any Unicode Code point excluding U+FEFF and U+FFFE. Additional character sets defined in ECMA-167 are not used.$^{:7.2}$
Since Errata DCN-5157, the range of code points was expanded to all code points from Unicode 4.0 (or any newer or older version), which includes Plane 1-16 characters such as Emoji. DCN-5157 also recommends normalizing the strings to Normalization Form C.
The OSTA CS0 character set stores a 16-bit Unicode string "compressed" into 8-bit or 16-bit units, preceded by a single-byte "compID" tag to indicate the compression type. The 8-bit storage is functionally equivalent to ISO-8859-1, and the 16-bit storage is UTF-16 in big endian. 8-bit-per-character file names save space because they only require half the space per character, so they should be used if the file name contains no special characters that can not be represented with 8 bits only.
The reference algorithm neither checks for forbidden code points nor interprets surrogate pairs, so like NTFS the string may be malformed.$^{:2.1.2,6.4}$ (No specific form of storage is specified by DCN-5157, but UTF-16BE is the only well-known method for storing all of Unicode while being mostly backward compatible with UCS-2.)

## Compatibility

Many DVD players do not support any UDF revision other than version 1.02. Discs created with a newer revision may still work in these players if the ISO 9660 bridge format is used. Even if an operating system claims to be able to read UDF 1.50, it still may only support the plain build and not necessarily either the VAT or Spared UDF builds.
Mac OS X 10.4.5 claims to support Revision 1.50 (see man mount_udf), yet it can only mount disks of the plain build properly and provides no virtualization support at all. It cannot mount UDF disks with VAT, as seen with the Sony Mavica issue. Releases before 10.4.11 mount disks with Sparing Table but does not read its files correctly. Version 10.4.11 fixes this problem.
Similarly, Windows XP Service Pack 2 (SP2) cannot read DVD-RW discs that use the UDF 2.00 sparing tables as a defect management system. This problem occurs if the UDF defect management system creates a sparing table that spans more than one sector on the DVD-RW disc. Windows XP SP2 can recognize that a DVD is using UDF, but Windows Explorer displays the contents of a DVD as an empty folder. A hotfix is available for this and is included in Service Pack 3.
Due to the default UDF versions and options, a UDF partition formatted by Windows cannot be written under macOS. On the other hand, a partition formatted by macOS cannot be directly written by Windows, due to the requirement of a MBR partition table. In addition, Linux only supports writing to UDF 2.01. A script for Linux and macOS called format-udf handles these incompatibilities by using UDF 2.01 and adding a fake MBR; for Windows the best solution is using the command-line tool format /FS:UDF /R:2.01.
Tools for repairing UDF file systems and for modifying their properties have been made for some operating systems. On Windows, the chkdsk tool is able to repair UDF file systems (if not too damaged, like any file system). A similar tool for Linux, udffsck, was under development by Vojtech Vladyka as an extension of fsck, and it was planned to be added to the udftools package. However, it was abandoned by its developer in 2018.
A tool for toggling the write protection flag, udftune, was under development by Johannes Truschnigg in 2023 but could not be merged into the main udftools package because its maintainer Pali Rohár has reportedly lost access to his GitHub account.
Table of operating systems :
| Unless otherwise noted, read and write support means that only the plain UDF build is supported, but not the VAT and spared build. Support for "read" means that a UDF formatted disk can be mounted by the system. It enables the user to read files from the UDF volume using the same interface that is used to access files on other disks connected to the computer. Support for "write" means that, in addition to reading files from a mounted UDF volume, data such as files can be modified, added, or deleted. ||||||||||
| | UDF revision (read + write) | UDF revision (read + write) | UDF revision (read + write) | UDF revision (read + write) | UDF revision (read + write) | Non-plain | Non-plain | |
| Operating system | 1.02 | 1.50 | 2.0x | 2.50 | 2.60 | VAT | Sparing tables | Note |
| AIX 5.2, 5.3, 6.1 | | Yes | Yes | No | No | | | 1.5 is default |
| AmigaOS 4.0 | Yes | Yes | | | | | | |
| BeOS/magnussoft ZETA/Haiku | Yes | Yes | Yes | Yes | Yes | | | |
| OS/2 (including eComStation and ArcaOS) | | | Yes | | | | | Additional fee drivers on OS/2. |
| FreeBSD 5.0 and newer | read only | read only | No | No | No | No | Yes | |
| Linux kernel 2.2 | No | No | No | No | No | No | No | |
| Linux kernel 2.4 | Yes | Yes | Yes | No | No | Yes | Yes | |
| Linux kernel 2.6.0–2.6.25 | Yes | Yes | Yes | No | No | Yes | Yes | Kernel versions prior to 2.6.10 supported fewer media types. |
| Linux kernel 2.6.26 and newer | Yes | Yes | Yes | read only | read only$^{:10}$ | Yes | Yes | Permission-related mounting options added in 2.6.30. Auto-detection of UDF file system on hard disk is supported since version 2.6.30. Auto-detection of UDF file system on disk images was fixed in 4.11. |
| Mac OS 8.1–8.5 | Yes | No | No | No | No | No | No | Some earlier versions of Mac OS, such as 7.5, 7.6, and 8.0 are also supported via third-party utilities, along with additional UDF version support for 8.1 and 8.5. |
| Mac OS 8.6, Mac OS 9 | Yes | Yes | No | No | No | No | No | Additional UDF version support via third-party utilities. |
| Mac OS X 10.0–10.3 | Yes | Yes | No | No | No | No | No | |
| Mac OS X 10.4 | Yes | Yes | Yes | No | No | No | Yes | Can create UDF 1.50 (plain build) volumes using the drutil utility. |
| Mac OS X 10.5 and newer | Yes | Yes | Yes | Yes | read only | Yes | Yes | To create, use newfs_udf utility. |
| NetBSD 4.0 | read only | read only | read only | read only | read only | Yes | Yes | Reading multi-session VAT, spared and metapartition variants from all CD, DVD and BD variants as well as HDD and Flash media. |
| NetBSD 5.0 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Write support for all builds and media including multi-session VAT. Create new with newfs_udf. Limited writing on 2.50/2.60 (due to needing pre-allocated, fixed sized metadata partition). |
| NetWare 5.1 | | | | | | | | |
| NetWare 6 | | | | | | | | |
| OpenBSD 3.8–3.9 | read only | No | No | No | No | No | No | |
| OpenBSD 4.0–4.6 | read only | read only | No | No | No | Yes | No | |
| OpenBSD 4.7 | read only | read only | read only | read only | read only | Yes | Yes | |
| Solaris 7 11/99+ | Yes | Yes | | | | | | |
| Solaris 8/9/10 | Yes | Yes | | | | | | |
| DOS, FreeDOS, Windows 3.11, Windows 95, Windows 95 OSR2+ and other DOS based OS | No | No | No | No | No | No | No | No native support. Filesystems that have an ISO9660 backward compatibility structure can be read. |
| Windows 98, Windows Me | read only and only for CD/DVD optical disks | No | No | No | No | No | No | Additional read/write support via third party utilities |
| Windows 2000 | read only | read only | No | No | No | No | No | Additional read/write support via third party utilities |
| Windows XP/Server 2003 | read only | read only | read only | No | No | Yes | Yes | Additional read/write support via third party utilities |
| Windows Vista | Yes | Yes | Yes | Yes | read only | Yes | Yes | Referred to by Microsoft as Live File System. Requires fake MBR partition on non-optical devices. |
| Windows 7 and newer | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
| Operating system | 1.02 | 1.50 | 2.0x | 2.50 | 2.60 | VAT | Sparing tables | Note |
| | UDF revision (read + write) | UDF revision (read + write) | UDF revision (read + write) | UDF revision (read + write) | UDF revision (read + write) | Non-plain | Non-plain | |