Make your own free website on Tripod.com
Unter Linux eine CD erstellen (cdrecord) Zurück zu den Tutorien
Programm/usr/bin/cdrecord
Das brennen einer CD gliedert sich in Linux in zwei Teile auf
  • 1. Erstellen einer Image-Datei
  • 2. Schreiben des Images auf CD
Die beiden Schritte können jedoch miteinander verbunden werden (Pipes machen´s möglich).

Bevor man jedoch los-legen kann, muß Linux jedoch den Brenner erkannt haben, was in der Regel heutzutage kein Problem mehr darstellen sollte. An dieser Stelle möchte ich jedoch nicht näher auf die Installation eines Brenners eingehen und verweise dafür auf die CD-WRITING-HOWTO.
Läuft dann alles soweit kann das brennen beginnen. Zuerst muß man also ein Image erstellen, dazu braucht man entweder das Programm mkisofs bzw. das Programm mkhybrid wobei der unterschied in den unterstützten Erweiterungen zum ISO9660 Standard liegt. Ich persönlich benutze in der Regel mkisofs.
Ich kopiere also zuerst alle Dateien, welche ich brennen möchte in eine Verzeichnisstruktur, welche ich speziell dafür anlege (meistens /tmp/burn) und lasse dann das Programm mkisofs ein Image aus den enthaltenen Objekten erstellen:
mkisofs /tmp/burn > /tmp/out.img.
Danach brenne ich das Image durch einen Aufruf von cdrecord:
cdrecord -v speed=2 dev=0,0 out.img
und nach einigem Warten (mein Brenner ist nur double-speed) ist die CD fertig.
Bis hierher wurde der einfachste Workflow beschrieben, aber Linux währe nicht Linux, wenn es nicht noch andere Wege gäbe. Was spätestens nach dem erstellen der cd auffallen dürfte ist die Tatsache, daß alle langen Datei-Namen automatisch gemäß8.3 Konvention umbenannt wurden. Natürlich lässt sich daran was ändern: Beim Aufruf von mkisofs gibt es nämlich einige Parameter, die ich im Beispiel oben der Einfachheit halber unterschlagen habe. Beispielsweise erstellen mkisofs mit dem Parameter -R ein ISO9660 Dateisystem mit RockRidge Erweiterungen und mit dem Parameter -J ein Joliet-Dateisystem. Darüberhinaus ist es auch möglich kombinierte CD-Rom´s zu erstellen (Aufruf mit -R und -J). Es gibt noch weitere Parameter, ein Blich in die man-Page von mkisofs lohnt sich. Eine weitere Möglichkeit ist das erstellen von Boot-fähigen CDs mit mkisofs, dazu benötigt man das Image einer Bootfähigen Diskette. Dieses Image kopiert man in den Verzeichnisbaum, welchen man brennen möchte und ruft dann mkisofs mit dem Parameter -b gefolgt von der Datei, welche das Disketten-Image beherbergt und den Parameter -c gefolgt von der catalog-Datei, diese Datei wird im Image automatisch von mkisofs erzeugt und ihr Name darf sich nicht mit dem einer anderen Datei im Image überschneiden.
Das Programm cdrecord hat glücklicher Weise nicht so viele Aufruf-Parameter, die wichtigsten sind:
  • -dummy (simuliert das schreiben)
  • speed=X (setzt die Schreibgeschwindigkeit auf X-Fach)
  • dev=X,Y,Z (benutzt Gerä an SCSI-Bus X (optional), Target Y und Lun Z zum schreiben der CD.)
  • (ist natürlich ganz wichtig, der Name der Image-Datei, - fü stdin)
Das Problem bei dem bis hier beschriebenen Verfahren ist der zusätzliche Speicherplatzbedarf durch die Image-Datei. Die beiden Schritte lassen sich allerdings wie bereits oben erwähnt mittels Pipe kombinieren:
mkisofs -R /tmp/burn | cdrecord -dummy -v speed=2 dev=0,0 -
Dieser Befehl schreibt das Image auf die Standard-Ausgabe und benutzt die Standard-Ausgabe des ersten Befehls (mkisofs) zur Standard-Eingabe des zweiten (cdrecord). Cdrecord wird durch den Dateinamen - angehalten, die Dateien von der Standard-Eingabe statt aus einer Datei entgegen-zunehmen.
Zwei kurze Hinweise noch zum Schluß:
1.:Wenn man ein ISO9660-Image einsehen möchte, bevor man die CD brennt, kann man das Image direkt mounten, dazu benötigt man support für ein Loopback-Device im Kernel. Man kann dann das Image mit dem Befehl
mount -tiso9660 <Image-Datei> /mnt -o loop
mounten.
2.:Möchte man eine CD 1:1 kopieren, kann man das Image direkt auslesen, also Quell-CD einlegen,
dd if=/dev/<CD-ROM-Device> of=/tmp/out.img
und fertig ist das CD-Abbild.
ENDE.