13.5CDs und DVDs brennen

Mittlerweile verschwinden CD- und DVD-Laufwerke aus PC- und Notebook-Angeboten wie vor mehr als einem Jahrzehnt die Diskettenlaufwerke. Wenn Sie doch noch über einen CD- oder DVD-Brenner verfügen (vielleicht auch als externes Gerät mit USB-Anschluss), dann gelingt das Brennen einer CD am einfachsten mit dem KDE-Programm K3B oder mit dessen Gnome-Pendant Brasero. Diese Programme verbergen alle technischen Details hinter einer Benutzeroberfläche. Das nicht mehr gewartete Programm burncdda bietet selbst für die Textkonsole eine simple Benutzeroberfläche.

In diesem Abschnitt stelle ich Ihnen in Kurzform die wichtigsten Kommandos vor, die hinter den Kulissen dieser Benutzeroberflächen zum Einsatz kommen. Dabei konzentriere ich mich auf das Erstellen von Daten-CDs oder -DVDs und gehe nicht auf Audio-CDs oder Video-DVDs ein.

ISO-Images

Bevor Sie eine Daten-CD oder eine -DVD brennen können, brauchen Sie ein sogenanntes ISO-Image. Diese Datei enthält die zu brennenden Daten im internen Format des optischen Datenträgers. In der Regel werden Sie zum Erzeugen von ISO-Dateien genisoimage einsetzen (ehemals mkisofs).

Mit dem Kommando genisoimage schreiben Sie alle Dateien eines oder mehrerer Verzeichnisse in eine ISO-Datei. Das für CDs vorgesehene Format ISO-9660 verwendet einen eigenen, sehr limitierten Zeichensatz, der nur wenige Nicht-ASCII-Zeichen zulässt. Um diesen Mangel zu umgehen, gibt es mehrere Erweiterungen zum ISO-Standard – die Rockridge-Extension für Linux und die Joliet-Extension für Windows. Größtmögliche Kompatibilität erreichen Sie, wenn Sie beim Kommando genisoimage mit den Optionen -r und -J beide Erweiterungen aktivieren.

Das folgende Kommando schreibt alle Dateien innerhalb des /master-Verzeichnisses in die Datei /tmp/master.iso. Das Verzeichnis master ist selbst kein Verzeichnis im ISO-Image. Das ISO-Image bekommt den Namen Linux (Option -V). Wenn Sie aus dem ISO-Image eine CD brennen, gilt diese Zeichenkette als CD-Name.

user$ genisoimage -o /tmp/master.iso -r -J -V Linux /master

Das zweite Beispiel ist dem ersten ähnlich, allerdings wird diesmal eine ISO-Datei für eine boot-fähige CD/DVD erstellt:

user$ genisoimage -o /tmp/master.iso -r -J /master -b images/boot.img \ -c boot.catalog

Im dritten Beispiel ist das Verzeichnis master nun selbst ein Verzeichnis im ISO-Image (Option -graft-points):

user$ genisoimage -o /tmp/master.iso -r -graft-points /master=/master

Wenn Sie eine Daten-CD oder -DVD (keine Audio-CD!) unverändert kopieren möchten, reicht ein einziges dd-Kommando aus, um die erforderliche ISO-Datei zu erzeugen. Statt /dev/cdrom müssen Sie den Device-Namen Ihres CD- oder DVD-Laufwerks angeben, der je nach Distribution variiert.

user$ dd if=/dev/sr0 of=/usr/local/iso.img bs=1M

Mit dem sogenannten Loopback-Device des Linux-Kernels können Sie eine Datei als Dateisystem betrachten und mit mount in den Verzeichnisbaum einbinden. Die Loopback-Funktion ist im Kernelmodul loop versteckt. Falls das Modul nicht automatisch geladen wird, müssen Sie eventuell mit modprobe nachhelfen. Das folgende Kommando bindet das in der Datei master.iso enthaltene ISO-Dateisystem im Read-Only-Modus in den Verzeichnisbaum ein:

root# mkdir /iso-test root# mount -t iso9660 -o loop,ro /tmp/master.iso /iso-test/

Über das Verzeichnis iso-test können Sie jetzt den Inhalt der zukünftigen CD-ROM überprüfen.

CDs und DVDs brennen

Bevor Sie die im Folgenden beschriebenen Kommandos einsetzen können, müssen Sie wissen, unter welchem Device-Namen Sie Ihr Laufwerk ansprechen. In der Regel lautet der richtige Device-Name /dev/sr0, mitunter auch /dev/scd0.

DVD+RWs und DVD-RWs im Modus Restricted Overwrite müssen vor der ersten Verwendung formatiert werden. Diese Aufgabe übernimmt dvd+rw-format:

user$ dvd+rw-format /dev/sr0

Bei CDs sowie bei nur einmal beschreibbaren DVDs (also DVD+R, DVD-R) entfällt der Formatiervorgang.

Das Kommando wodim (ehemals cdrecord) schreibt eine ISO-Datei auf einen CD- oder DVD-Rohling:

root# wodim -v speed=16 dev=/dev/scd0 iso.img

Auf schnellen Rechnern können Sie genisoimage und wodim mit einer Pipe verbinden. Dadurch sparen Sie den Platz für das ISO-Image:

root# genisoimage -r /master | wodim -v speed=16 dev=/dev/scd0 -

Bei DVDs (aber nicht bei CDs) können Sie anstelle von wodim auch das Kommando growisofs aus dem Paket dvd+rw-tools einsetzen. Es bietet eine Menge zusätzlicher, DVD-spezifischer Optionen.

growisofs greift intern auf genisoimage zurück. Deswegen sind die meisten Optionen mit diesem Kommando identisch. Das folgende Kommando speichert den Inhalt des Verzeichnisses daten auf einer DVD. Die genisoimage-Optionen -r und -J bewirken, dass die DVD lange Dateinamen entsprechend den Rockridge- und Joliet-Erweiterungen aufweist. Statt des Device-Namens /dev/srn müssen Sie je nach Distribution /dev/scdn angeben.

user$ growisofs -r -J -Z /dev/sr0 daten/

Eine zweite Session fügen Sie so hinzu (Option -M statt -Z):

user$ growisofs -r -J -M /dev/sr0 nochmehrdaten/

Normalerweise übergibt growisofs alle Optionen außer -Z bzw. -M an genisoimage und schreibt das Ergebnis von genisoimage dann direkt auf die DVD. Wenn Sie ein bereits existierendes ISO-Image schreiben möchten, lautet die Syntax -Z device=isodatei:

user$ growisofs -Z /dev/sr0=daten.iso

CDs/DVDs verifizieren

Das folgende Kommando vergleicht den Inhalt der CD/DVD mit dem Inhalt des master-Verzeichnisses Datei für Datei und Byte für Byte. Sämtliche Unterschiede werden in die Datei diff.log im Heimatverzeichnis geschrieben. Statt /media/dvd müssen Sie das Verzeichnis angeben, an dem die CD/DVD in Ihren Verzeichnisbaum eingebunden ist.

root# diff -qrd /master /media/dvd/ >& ~/diff.log

Wenn Sie eine DVD erhalten und nicht wissen, um welchen DVD-Typ es sich handelt, ob die DVD schon beschrieben ist und wenn ja, in welchem Modus und mit wie vielen Sessions, ermitteln Sie diese Informationen mit dvd+rw-mediainfo:

user$ dvd+rw-mediainfo /dev/sr0 INQUIRY: [_NEC ][DVD_RW ND-1300A ][1.07] GET [CURRENT] CONFIGURATION: Mounted Media: 1Ah, DVD+RW GET PERFORMANCE: Speed Descriptor#0: 00/221280 Reading@7.8x Writing@2.3x READ DVD STRUCTURE[#0h]: Media Book Type: 92h, DVD+RW book [revision 2] Media ID: RICOHJPN/W01 Legacy lead-out at: 221280*2KB=453181440 ...