Warum sollte man sich mit einem Kommandozeilen-basierten Tool zum CD-Brennen auseinander setzen, wenn es doch entsprechende grafische Anwendungen (wie etwa Xcdroast) gibt? Hierauf gibt es mehrere Antworten.
- Geschwindigkeit: Bei der Verwendung der im Folgenden beschriebenen Tools
mkisofsundcdrecordkönnen Sie mit ein bis zwei kurzen Befehlen sämtliche Dateien eines bestehenden Verzeichnisses auf eine Daten-CD oder eine Reihe von WAV-Dateien auf eine Audio-CD brennen. Probieren Sie es aus: So schnell geht es mit keinem GUI-Tool. - Kontrolle: Ein Argument, das allgemein den Einsatz von Kommandozeilen-Tools befürwortet, ist die vollständige Kontrolle über die zu erledigende Aufgabe. Da Sie dem Programm datailliert über Optionen mitteilen, was es tun soll, bleiben Überraschungen aus.
- Ressourcen: Selbst ein uralter Rechner, der mit einem aktuellen ATAPI- oder SCSI-CD-Brenner ausgestattet wurde, kann als Brenn-Rechner eingesetzt werden. Dazu muss er keine aktuelle Grafikkarte verwenden, sondern kann durchaus im Textmodus eingesetzt werden. Selbst ohne Monitor geht es, wenn über eine Netzwerkanbindung der Login von einem anderen Rechner möglich ist.
- Aus Prinzip: Freunde der Shell werden für alle Aufgaben eine Möglichkeit suchen, diese in der Konsole auszuführen… Auch die grafischen Brennprogramme tun nichts anderes als über mehr oder weniger gelungene Dialoge Parameter zu erfragen, die dann an genau die gleichen (Konsolen-) Tools übergeben werden. Das Verständnis dieser Tools ist in jedem Fall sinnvoll, denn auch beim Einsatz eines grafischen Frontends werkeln ja im Hintergrund die hier beschriebenen Programme – sollte also einmal etwas nicht funktionieren, ist spätestens dann eine Auseinandersetzung mit
mkisofsundcdrecordnotwendig.
Daten-CDs
Die einfachste Variante des Brennens einer Daten-CD ist die Sicherung eines vollständigen Unterverzeichnisses (mit weniger als 650 MB Inhalt im Fall einer Standard-CD/R). Um etwa das Verzeichnis /tmp/datencd/ vollständig auf CD zu brennen, könnten Sie eine Variante der beiden folgenden Befehle verwenden:
mkisofs -r -J -o /tmp/datencd.iso /tmp/datencd/ cdrecord -v dev=0,4,0 speed=4 /tmp/datencd.iso
Was passiert hier? mkisofs ("make ISO9660 filesystem") erzeugt ein sogenanntes ISO-Dateisystem – vielleicht erinnern Sie sich daran, dass in Ihrer Mount-Konfigurationsdatei /etc/fstab für das CD-ROM-Laufwerk der Dateisystemtyp ISO9660 vorgegeben ist; in diesem Format sind alle Daten-CDs für Windows- und Unix-Rechner beschrieben. Der Aufruf mkisofs -o /tmp/datencd.iso /tmp/datencd/ würde streng nach ISO-Standard ein CD-Imagenames /tmp/datencd.iso erzeugen, das alle Dateien aus dem Unterverzeichnis /tmp/datencd/ enthält. Der ISO-Standard ist allerdings beschränkt, was die Namensgebung und weitere Dateisystem-Features (wie etwa Unix-Zugriffsrechte und symbolische Links) angeht; ein "ordentliches" Dateisystem, das sowohl unter Linux/Unix als auch Windows gut lesbar ist, erhalten Sie nur, wenn Sie das ISO-konforme Inhaltsverzeichnis um die sogenannten "Rockridge-Extensions" (für Unix) und "Joliet Extensions" (für Windows) ergänzen – genau das leisten die Optionen -r und -J.
Im zweiten Schritt wird das soeben erstellte CD-Image mit dem Befehl cdrecord auf einen CD-Rohling geschrieben. Die beiden Parameter ohne "-" legen fest, welches Gerät (der CD-Brenner) verwendet werden soll und welche Brenngeschwindigkeit gewünscht wird. Im Detail bedeutet dies:
dev=0,4,0: Der Brenner hängt am ersten SCSI-Controller (gezählt wird ab 0), hat die SCSI-ID 4 und die LUN (Logical Unit Number) 0. Die LUN ist bei Brennern immer 0. Wenn Sie nicht wissen, welche SCSI-ID Ihr Brenner hat, verwenden Sie den Befehlcdrecord -scanbus. Zur Verwendung von ATAPI-Brennern finden Sie weiter unten mehr Informationen.speed=4: Das ist einfach; brennen mit vierfacher Geschwindigkeit. Der zusätzliche Parameter-vsteht für "verbose" (ausführlich) und gibt während des Brennvorgangs regelmäßig eine Statusmeldung aus, wieviel Prozent der CD bereits fertiggestellt wurden. Am Ende des Aufrufs steht der Dateiname des CD-Images.
On the fly
Es ist auch möglich, ein Verzeichnis direkt auf die CD zu brennen, ohne vorher 650 MB Plattenplatz zu belegen. Dazu wird die Ausgabe von mkisofs einfach über eine Pipe an cdrecord übergeben; dazu wird mkisofs ohne Angabe einer Output-Datei (-o file) aufgerufen und schreibt das ISO-Image einfach in die Standardausgabe:
mkisofs -r /tmp/datencd | cdrecord -v fs=6m speed=4 dev=0,4,0 -
Das Minus-Zeichen am Ende des Befehls ist notwendig, da cdrecord so versteht, dass es die Daten aus der Standardeingabe und nicht aus einer Datei lesen soll. Hier soll ein Puffer von 6 MB (Option fs=6m) garantieren, dass es zu keinem Buffer Underrun kommt. Solche Buffer Underruns, die zur Zerstörung des Rohlings führen, sind aber unter Linux recht unwahrscheinlich, da das Betriebssystem über ein gutes Multitasking verfügt. Selbst mit heftigsten Aktivitäten anderer Programme ist es mir bisher noch nicht gelungen, cdrecord aus dem Takt zu bringen. Bei anderen Betriebssystemen, deren Multitasking schwächer ist, sind "verbrannte" Rohlinge allerdings an der Tagesordnung, da kann schon ein Start des Screensavers für Probleme sorgen… Lediglich auf sehr leistungsschwachen oder ungewöhnlich massiv ausgelasteten Rechner wäre ein derartiges Versagen unter Linux denkbar, aber auch dafür hat die Industrie mittlerweile Abhilfe geschaffen: Geräte mit BURN-Proof-Technik verhindern zuverlässig Buffer Underruns. cdrecord unterstützt diese Technik; mehr dazu ab Seite 24.



