[[Vorlage(Getestet, general)]]

{{{#!vorlage Wissen
[:Pakete installieren: Installation von Programmen]
[:Terminal: Ein Terminal öffnen]
[:Datenträger#Wie-heissen-die-Datentraeger: Wie heißen die Datenträger]
}}}
[[Inhaltsverzeichnis(1)]]

[wikipedia:Universal_Disk_Format:UDF] (Universal Disk Format) ist ein [:Dateisystem:] für optische [:Datenträger:] wie CDs oder DVDs und dient dort als Ersatz für ISO 9660. Auf kommerziellen DVD-Videos kommt in der Regel UDF zum Einsatz. UDF eignet sich aber auch für wiederbeschreibbare Datenträger wie [:DVD-RAM:DVD-RAMs] und kann für weitere Datenträger eingesetzt werden (siehe [#Beispiele Beispiele]).

Vorteile:
 * ISO-Standard (ISO 13346)
 * Kompatibilität zu vielen Betriebssystemen
 * Unterstützung von [wikipedia:Packet-Writing:] (um einen optischen Datenträger wie eine Diskette oder Festplatte beschreiben zu können)
 * Partitionsgröße bis zu 2 TiB
 * Dateigröße bis 16 EiB (ISO 9660: 2 GiB, FAT: 4 GiB)
 * Lange Dateinamen (bis 254 Zeichen)
 * Unterscheidung von Groß- und Kleinschreibung
 * Unicode-Dateinamen
 * Unterstützung für Metadaten wie Besitzer und POSIX-Berechtigungen
 * Unterstützung für erweiterte Dateiattribute
 * Unterstützung für Access-Control-Lists
 * [:ln#Hardlinks: Hard Links]
 * [:ln#Symbolische-Verknuepfungen: Symlinks]
 * keine maximale Verzeichnistiefe, Pfadlänge bis 1023 Byte

= Installation =
Das folgende Paket muss installiert werden [1]:

{{{#!vorlage Paketinstallation
udftools, universe
}}}

= Verwendung =
Ab Linux Kernel 2.6.x wird Lesen und Schreiben auf UDF-Dateisysteme direkt unterstützt. Es wird allerdings mindestens die Kernel-Version 2.6.22 empfohlen. Alle aktuellen Ubuntu-Versionen enthalten neuere Kernel-Versionen.

Im oben genannten Paket sind folgende Werkzeuge enthalten:

 * '''cdrwtool''' - Aktionen für CD-RWs, wiederbeschreibbare DVD-Medien und DVD-RAMs (hauptsächlich, um ein Medium zu löschen oder für [wikipedia:Packet-Writing:] zu formatieren)
 * '''mkudffs''' - wird verwendet, um ein UDF-Dateisystem auf einem Gerät zu erstellen. Mit Gerät ist hier ein Eintrag in '''/dev/''' gemeint, z.B. '''/dev/sdx'''. Mit der Option `bs=BLOCKGRÖSSE` wird die Anzahl der Blöcke gesetzt. Die Blockgröße ist je nach Medium unterschiedlich, z.B. `2048` für optische Datenträger oder `512` für USB-Sticks.
 * '''pktsetup''' - [sourceforge:packet-cd:Pktsetup] {en} wird verwendet, um Packet-Writing mit CDs oder DVDs zu ermöglichen

Zur praktischen Nutzung an dieser Stelle zwei Beispiele. Für optische Datenträger siehe [:DVD-RAM:].

== Versionen und Kompatibilität ==
Von UDF gibt es verschiedene Versionen. Mit neueren Versionen wurde vor allem die Fähigkeit, für wiederbeschreibbare Medien eingesetzt zu werden, dazugenommen bzw. verbessert (Quelle: [wikipedia:Universal_Disk_Format#Versionen:Wikipedia]):

 * 1.00 (24.10.1995) für CD-ROM
 * 1.01 (03.11.1995) erste Ergänzungen für DVD
 * 1.02 (30.08.1996) Standard-Format der Video-DVD
 * 1.50 (04.02.1997) Standard-Format für wiederbeschreibbare Daten-DVD (DVD-RAM, DVD+-RW)
 * 2.00 (03.04.1998) Standard-Format für Videoaufzeichnung
 * 2.01 (15.03.2000) Bugfix zu 2.00
 * 2.50 (30.04.2003) Standard-Format für [wikipedia:Blu-ray_Disc#Technik:BD-RE]
 * 2.60 (01.03.2005) Standard-Format für [wikipedia:Blu-ray_Disc#Technik:BD-R]

Dabei gilt aber nicht, je neuer desto besser - man muss sich das zum jeweiligen Medium passende Format auswählen. Die Version wird über die mkudffs-Option `--udfrev=VERSION` gesetzt. Beispiel: für die Version 1.5 nutzt man `--udfrev=0x0150` (Standard bei mkudffs).

UDF ist kompatibel zu Linux, Windows, Mac OS X, Solaris, FreeBSD und AmigaOS, wobei folgende Einschränkungen bestehen:

 * Manche Betriebssysteme (z.B. ältere Windows-Versionen wie XP) unterstützen nur die UDF-Versionen 1.02 und 1.50 bzw. 2.0
 * Windows hat Probleme mit [:ln#Symbolische-Verknuepfungen: Symlinks]
 * Windows unterstützt UDF auf Festplatten oder USB-Sticks nicht

== Beispiele ==
 * ISO-Abbild im UDF-Format erstellen [2]: {{{#!vorlage Befehl
mkdir ~/udf-test                                      ## Test-Ordner erzeugen
genisoimage -udf -o ~/test.iso ~/udf-test             ## ISO-Datei erstellen
rmdir ~/udf-test                                      ## Test-Ordner löschen
}}} erzeugt ein UDF-Dateisystem der Version 1.5 in die Datei '''test.iso'''. Dies kann mit {{{#!vorlage Befehl
file ~/test.iso
}}} überprüft werden. [:mount:] ist in der Lage, UDF-Dateisysteme einzubinden: {{{#!vorlage Befehl
sudo mount -t udf -o loop ~/test.iso /media/cdrom
}}} Dieser Befehl hängt die Datei in '''/media/cdrom/''' ein.
 * Einen USB-Stick formatiert man folgendermaßen mit UDF: {{{#!vorlage Befehl
sudo dd if=/dev/zero of=/dev/sdx bs=512                   ## Reset
sudo mkudffs --media-type=hd --blocksize=512 /dev/sdx     ## UDF Schreiben
}}} Mit der Option `--vid=LABEL` kann man zusätzlich einen Namen vergeben und ''sdX'' bezeichnet das zu verwendende Gerät, wobei `X` entsprechend angepasst werden muss [3].

= Links =
 * [github:pali/udftools:Projektseite] {en} und Quellcode der udftools
  * [man:mkudffs:Manpage zu mkudffs] {en}
  * [sourceforge:linux-udf:Linux-UDF] {en} - ehemalige Projektseite auf SourceForge
 * [http://unix.stackexchange.com/questions/107883/creating-udf-image-in-linux Creating UDF image in Linux] {en}
 * [http://www.osta.org/specs/ UDF-Specifications] {en} der Optical Storage Technology Association

#tag: System, Dateisystem