CDs Brennen mit Linux

ArticleCategory: [Es gibt verschiedene Artikel Kategorien]

Applications

AuthorImage:[Ein Bild von Dir]

[Photo of the Authors]

TranslationInfo:[Autor und Übersetzer]

original in en Katja and Guido Socher 

en to de Katja Socher 

AboutTheAuthor:[Eine kleine Biographie über den Autor]

Katja ist die deutsche Redakteurin von LinuxFocus. Sie mag Tux, Film & Fotografie und das Meer. Ihre Homepage findet sich hier.

Guido ist ein langjähriger Linuxfan und er mag Linux, weil es von ehrlichen und offenen Leuten entwickelt wurde. Dies ist einer der Gründe, warum wir es Open Source nennen. Seine Homepage ist auf linuxfocus.org/~guido.

Abstract:[Hier sollte eine kleine Zusammenfassung stehen]

In diesem Artikel beschreiben wir, wie man unter Linux CDs brennen kann.

ArticleIllustration:[Das Titelbild des Artikels]

[Illustration]

ArticleBody:[Der eigentliche Artikel. Überschriften innerhalb des Artikels sollten h2 oder h3 sein.]

Vielleicht hast du Katja's Artikel Eine ganz neue Welt in unserer letzten Ausgabe gelesen und hast die Tour mit Tux gemacht. Und jetzt hast du viele Bilder und viel Musik, die du mit nach Hause nehmen möchtest und fragst dich, wie du das machen kannst. Das Brennen einer CD ist eine gute Lösung und in diesem Artikel erzählen wir dir, wie du das machen kannst.

Was du dafür brauchst

Hardware setup:
Natürlich muß Linux auf deinem Rechner laufen und du brauchst einen CD Brenner für den Job.
Wenn du einen SCSI CD Brenner besitzt, stehen die Chancen sehr gut, daß der Brenner sofort vom Kernel erkannt wird. Du mußt nur überprüfen, ob dein SCSI hostadapter von Linux unterstützt wird (siehe die Hardware-Datenbank hierfür). Alle SCSI CD Brenner arbeiten unter Linux.
Bei einem ATAPI/IDE Brenner mußt du deinen Brenner durch Konfiguration einer SCSI Emulation wie ein SCSI Gerät aussehen lassen, auch wenn die Hardware physisch über den IDE Bus verbunden ist. Wie dies geht, ist z.B. in der README.atapi Datei von xcdroast beschrieben und wir empfehlen dir, das CD Writing HOWTO unter http://www.linuxdoc.org/ zu lesen.
Für USB Brenner siehe das USB-CD Writer HOWTO unter mobilix.org/linux_usb_cd.html.
Da wir beide nur Erfahrung mit SCSI Brennern haben, könnten wir nur das wiederholen, was wir dort gelesen haben.

Software zum Brennen von CDs:
Zum Brennen von CDs braucht man die folgenden Programme:

  1. cdrecord: dies ist das Program, das tatsächlich mit dem CD Brenner kommuniziert.
  2. mkisofs: du brauchst es zum Erstellen von DatenCDs. Es wird benutzt, um ein Dateisystemimage für die CD, ISOimage genannt, zu erstellen.
  3. cdda2wav: dies wird gebraucht, um digitale Audiodaten von AudioCDs zu lesen.
Alle drei sind im cdrtools Packet enthalten, das man von www.xcdroast.org
oder ftp.fokus.gmd/pub/unix/cdrecord/ herunterladen kann.
Mit diesem Werkzeugen kann man schon unter Benutzung der Kommandozeile CDs brennen. Aber wenn du eine nettere und freundlichere graphische Benutzeroberfläche haben möchtest, brauchst du zusätzlich noch ein Frontend. Es gibt sehr viele Frontends, aber in diesem Artikel reden wir nur über xcdroast (http://www.xcdroast.org) und koncd (http://www.koncd.org/). xcdroast scheint das Frontend mit den meisten Möglichkeiten zu sein und wir mögen koncd, weil es wirklich sehr einfach zu benutzen ist.


Installation

In vielen Fällen wird xcdroast schon auf deinem Rechner installiert sein, aber zumindest mit RedHat ist es mit der pam-library kompiliert worden, was bedeutet, das man immer nach dem root-Paßwort gefragt wird, wenn man eine CD brennen will und wahrscheinlich möchtest du nicht allen Benutzern, die CDs brennen wollen, das root-Paßwort geben. Ein weiterer Nachteil ist, daß ein Start des Programms über ein Netzwerk nicht möglich ist. Deshalb ist es besser, die neueste Version von http://www.xcdroast.org herunterzuladen. Dies sollte einfach sein, da es vorkompilierte Pakete für die meisten gewöhnlichen Distributionen gibt.
koncd kann von www.koncd.org heruntergeladen werden. Neue Versionen von koncd sind von neuen QT/KDE Features abhängig. Wenn du keine Zeit auf das Updaten deiner QT und KDE libraries verwenden willst, kannst du eine ältere Version von koncd benutzen. Für diesen Artikel haben wir koncd-0.7.5 unter redhat 7.1.benutzt.

Brennen von CDs als normaler (nicht-root) Benutzer

Zum brennen von CDs braucht man zuallererst Schreibrechte für die /dev/sg* Geräte, die für die Kommunikation mit der Hardware gebraucht werden. Aber cdrecord benutzt auch einige realtime extensions zum Vermeiden von buffer underruns während des Schreibprozesses, die ebenfalls root-Rechte erfordern. Die beste Lösung ist deshalb, SUID auf cdrecord und cdda2wav zu benutzen. Uhh? SUID? Keine Angst! Du kannst Guido's Artikel über Dateirechte lesen, wenn du Lust hast, aber im Moment reicht es, wenn du die folgenden zwei Befehle eingibst und dann nicht weiter darüner nachdenkst:-)

chmod 4111 /usr/bin/cdrecord
chmod 4111 /usr/bin/cdda2wav

Sei dir darüber im klaren, daß dies ein potentielles Sicherheitsrisiko sein könnte, aber es ist definitiv ein geringeres Sicherheitsrisiko als allen, die eine CD brennen wollen, das root-Paßwort zu geben.
Jetzt kannst du testen, ob dein CD-Brenner richtig erkannt worden ist. Laß einfach:

cdrecord -scanbus

laufen. Wenn alles richtig ist, solltest du etwas ähnliches wie das folgende sehen:

0,6,0 6) 'PLEXTOR ' 'CD-ROM PX-W8220T ' '1.03' Removable CD-ROM

Die Zahlen und die Beschreibung können verschieden sein, abhängig von deiner Hardware.
Alternativ kannst du auch auf den Einstellungen (SETUP) Knopf von xcdroast oder koncd klicken und dort überprüfen, ob dein Brenner richtig erkannt wurde.
So, laßt uns jetzt endlich anfangen, CDs zu brennen.

Allgemeines zum Brennen von CDs

Es gibt vier notwendige Schritte zum Brennen von CDs:
  1. Du mußt die Daten/Musikstücke auswählen, die du auf CD brennen willst
  2. Du mußt einige Einstellungen für die zu brennende CD vornehmen, z.B. mußt du, wenn du eine Audio CD brennen willst, zwischen TAO und DAO Modus wählen oder für eine DatenCD muß man einige Optionen für das Dateisystem auswählen.
  3. Du mußt ein Image directory erstellen mit den Dateien, die du auf CD brennen willst. Wenn du nur einfach eine andere CD duplizieren willst, wirst du "on the fly" brennen, aber sonst muß zuerst ein Image auf der Festplatte erstellt werden.
    Ein image directory ist ein temporärer Speicherplatz für Daten, die auf die CD geschrieben werden. Für Audio CDs sind dies Indexdateien und die wav Dateien, die die Musik enthalten und für DatenCDs ist dies eine große Datei, die ISO image genannt wird.
  4. Du mußt die CD tatsächlich brennen.
CDs müssen im allgemeinen in einem Durchgang geschrieben werden und der Datenfluß darf während des Brennvorgangs nicht gestört werden. Dank der realtime extensions sind buffer underruns, die zu fehlerhaften CDs führen nur ein Problem von Windows Benutzers. Mit Linux braucht man "burn proof" nicht wirklich. Es gibt einen speziellen Speicher namens FIFO innerhalb des CD-Brenners, der kleine Störungen kompensiert, was normalerweise unter Linux ausreicht, um Brennfehler zu vermeiden. Trotzdem solltest du vorsichtig sein und keine Dinge tun, die zuviel CPU Power verbrauchen. Du kannst im Internet surfen, Software kompilieren, ... aber das Löschen einer sehr großen Datei kann ein Problem sein und vielleicht ausreichen, um den Prozess zu stören, was dann eine fehlerhafte CD ergibt. Wenn du dir über mögliche buffer underruns Gedanken machst, kannst du die Option simulation write (dummy write) benutzen, um zuerst zu testen, ob das CD Brennen gehen würde, bevor du wirklich brennst. Bei der Simulation wird der Brennvorgang mit echten Daten getestet, aber der Laser innerhalb des CD Brenners ist abgeschaltet. Es ist immer besser, erst einen Test durchzuführen, als alles noch einmal machen zu müssen.
Die Tatsache, daß du alles auf einmal brennen mußt, bedeutet, daß, wenn du etwas vergessen hast, auch wenn es nur eine einzige kleine Datei ist, du alles noch einmal neu brennen mußt. Es gibt die Möglichkeit der Multisession, wo man später noch etwas hinzufügen kann, aber wir werden hier nicht darüber sprechen, da die CD dann bis sie wirklich fertig ist, auf vielen CD-Spielern nicht abgespielt werden kann und der Preis einer CD so niedrig ist, so daß wir nie einen Grund sahen, es zu benutzen.

Einstellungen (Setup)

Wenn du koncd oder xcdroast startest, wirst du feststellen, daß beide einen Einstellungen (Setup) Knopf haben. Hier kannst du herausfinden, ob dein Brenner korrekt erkannt wurde und generelle Optionen einstellen.
[xcdroast: run as root to configure] Laßt uns das Setup von xcdroast und koncd betrachten:

(Reine) Musik- (Audio) CDs

Hier sollte man sich zuerst ein wenig Gedanken über das Format machen. Wenn das Musikstück von einer anderen CD ist, gibt es kein Problem. Du kannst einfach weitermachen und sie kopieren. Aber ansonsten solltest du beachten, daß cdrecord au und wav Dateien erkennt und automatisch in das richtige Format umwandelt, um es auf deinem CD-Spieler abspielen zu können, aber andere Formate mußt du erst noch in das wav Format umwandeln, wenn du später nicht nur Rauschen auf deiner CD hören willst. Um eine Datei von mp3 nach wav zu konvertieren, kannst du folgendes auf der Kommandozeile eingeben:
mpg123 -w /tmp/song.wav song.mp3
Dies erlaubt dir, normale Audio CDs von mp3 Stücken zu machen. Es nimmt mehr Platz in Anspruch, kann dafür aber auf fast jedem CD-Spieler abgespielt werden.
Wenn du schließlich die CD brennst, kannst du wählen, ob die Kopie im TAO oder DAO Modus sein soll. Im TAO Modus hat man zwei Sekunden Pause zwischen den einzelnen Songs, während dies im DAO Modus nicht der Fall ist, was diesen Modus zum Modus deiner Wahl für Live-Musikaufnahmen macht. TAO= Track at Once und DAO= Disk at Once.
Du kannst eine CD komplett kopieren oder Musikstücke von verschiedenen CDs oder andere Sounddateien, die du z.B. aus dem Internet heruntergeladen hast, mischen.

Laßt uns zuerst sehen, wie man eine CD ohne Änderungen kopieren kann:

[xcdroast Duplicate CD]


Laßt uns nun anschauen, was du tun mußt, wenn du Musikstücke von verschiedenen Orten auf CD brennen willst:

(Reine) Data CDs

Für DatenCDs braucht man ein Dateisystem oder wie häufig gesagt wird, die CD muß formattiert werden. Du mußt entscheiden, welches Dateisystem du haben willst. Diese Entscheidung wird davon abhängen, auf welchem/welchen Betriebssystem(en) du die Daten lesen können willst. Der ISO Standard, der das CD-Dateisystem beschreibt, erlaubt z.B. keine langen Dateinamen. Deshalb gibt es Erweiterungen zu diesem Standard. Für Linux und Unix werden RockRidge extensions benutzt, Microsoft benutzt Joliet Erweiterungen. Mit dem RockRidge Format kann man z.B. Rechte etc., wie du sie bereits von deinem System her kennst, auf der CD haben.
Die empfohlene Lösung ist, RockRidge und Joliet Erweiterungen für dieselbe CD zu benutzen.
Wenn du nur eine CD von einer anderen schon existierenden CD kopieren willst, mußt dir darüber keine Gedanken machen, weil die CD dann schon ein Dateisystem hat und dieses mitkopiert wird:

[xcdroast Master CD]

Wenn du Daten von deiner Festplatte kopieren willst:
[koncd Master CD]

Backup deines home-Verzeichnisses

Grundsätzlich kannst du von allem mit der unter "reine data CDs" beschriebenen Methode ein Backup erstellen.. Wenn die Daten in deinem Home-Verzeichnis zu groß sind, um auf eine CD zu passen, dann mußt du einzelne Unterverzeichnisse auswählen und sie auf eine andere CD brennen..

Tipps und Tricks:

Manchmal ist es nützlich, zu überprüfen, ob das ISO image richtig ist, bevor es auf CD gebrannt wird. Um dies zu tun, kannst du das ISO image so mounten, als wenn es eine echte CD wäre:

Wechle ins root-Verzeichnis root: su -
Erzeuge ein leeres Verzeichnis (bekannt als Mountpunkt): mkdir /tmp/mycd
Mounte das ISO image (verbinde das ISO image mit dem Verzeichnis):
mount -o loop -t iso9660 Image.iso /tmp/mycd
Jetzt kannst du den Befehl ls benutzen, um das CD image zu inspizieren: ls /tmp/mycd
Wenn es in Ordnung aussieht, dann unmounte es: umount /tmp/mycd

... und brenne das Image auf deine CD.

Kommandozeilenwerkzeuge

Oben haben wir zwei grafische Frontends zum Brennen von CDs diskutiert, aber du könntest auch auf der Kommandozeile CDs brennen. Wenn du dir die man page von cdrecord anschaust, siehst du, daß es hunderte von Optionen gibt, uuuhh... sei nicht erschreckt. Es ist viel leichter als es auf den ersten Blick aussieht. Lade die beiden Perlskripte cdrecordeasy und mkisofseasy herunter.
Sie sind in dem Paket easycdscripts (download Seite) enthalten
Packe sie mit dem folgenden Befehl aus:

tar zxvf easycdscripts-0.1.tar.gz

Jetzt führe den Befehl cdrecord -scanbus aus. Schaue auf die Zeile, wo du deinen CD-Brenner siehst und merke dir die Zahlen, die du am Anfang siehst. Es sollte soetwas wie 0,4,0 or 0,6,0 .... sein
Editiere die Datei cdrecordeasy durch Eingeben dieser Zahl hinter der Zeile, die $dev=... enthält. Du findest sie irgendwo am Anfang.
Jetzt ist die Installation unserer beiden kleinen Skripte fertig. Eine DatenCD zu erzeugen, ist jetzt sehr leicht:
  1. Kopiere alle Dateien, die du auf deiner CD haben willst, in ein Verzeichnis (z.B. ~/cdrom). Festplatten sind heutzutage sehr groß und billig und es sollte deshalb kein Problem sein, ein paar hundert MB zu kopieren.
  2. Laß den Befehl: mkisofseasy ~/image.iso ~/cdrom laufen.
    Dies erzeugt ein ISO Image von allen Dateien im Verzeichnis ~/cdrom.
  3. Brenn die CD mit dem Befehl: cdrecordeasy ~/image.iso
Das ist alles. Viel einfacher, als es am Anfang aussah, nicht wahr!? :-)

Viel Spaß beim Brennen deiner CDs!

Referenzen

CD Writing Howto: linuxdoc.org
Linux MP3 CD Burning mini-HOWTO: linuxdoc.org( How to make normal auido CDs from mp3 files )
USB CD howto: mobilix.org/linux_usb_cd.html
A big bootable CD image: http://rescuecd.sourceforge.net/
Various boot CDs and linux on one floppy systems