cdrecord ist ein Kommandozeilenprogramm zum Brennen von CDs und Löschen von CDRWs. Es ist mit einigen anderen Tools manchmal auch im Paket cdrtools enthalten.

Es ist wohl das meist portierte Brennprogramm überhaupt, da es auf rund 30 Plattformen läuft, von Amiga bis Windows. Dazwischen ist natürlich auch Linux, so dass es sich zu dem bekanntesten Brennprogramm der Linux-Welt entwickelt hat. Mit GUIs wie k3b und xcdroast ist cdrecord auch mit einer komfortablen GUI verwendbar.

Homepage: http://cdrecord.berlios.de/old/private/cdrecord.html

Freshmeat: http://freshmeat.net/projects/cdrecord

Lizenz: GPL

Siehe auch CdBrennen.

Tipps & Tricks

Ein paar kleine Tipps, um das Programm als User ausführen zu können.

Problem: Brenner wird von den cdrecord-GUIs nur als root gefunden, als user kein Brennen möglich

Leider gibt es immer wieder mal das Problem, dass man nur als root seine Daten brennen kann, weil der Zugriff als User verweigert wird.

Bis zum Kernel 2.6.8 war es so üblich, dass das cdrecord-Binary root gehört, und von einer Gruppe ausgeführt und gelesen werden darf, in der sich die user befinden.

Beim Kernel 2.6.8 gibt es dort aber Probleme, sodass man dazu gezwungen ist, als root zu brennen. Näheres zu der Problematik: http://k3b.plainblack.com/index.pl/news2

Bei den älteren Kerneln muss die suid gesetzt sein (das 4xxx-Bit bei Chmod) Diesen Zustand kann man erreichen, indem man mit groupadd <gruppe> eine Gruppe anlegt (z.B. Name der Gruppe: cdrecord) und den User dort hineinsetzt (adduser <name> <gruppe>)

Dann muss man sich natürlich noch auf das Binary stürzen:

chown root:cdrecord /usr/bin/cdrecord

Das legt fest, dass root der Besitzer des Binaries ist, und es zu der Gruppe cdrecord gehört.

chmod 4750 /usr/bin/cdrecord

Das gibt "others" gar keine Rechte, der gruppe Lese- und Ausführungsrechte, und dem Besitzer die vollen Ausführungs-, Schreibe- und Leserechte. Die 4 steht für suid. Das gewährleistet, dass der User die Datei als Besitzer ausführt, auch wenn er nicht root ist, weil er zu der Gruppe gehört.

Ein ls -l /usr/bin/cdrecord sollte nun soetwas liefern:

-rwsr-x---  1 root cdrecord 373171 2004-08-06 22:55 /usr/bin/cdrecord

Nun sollte die Verwendung von cdrecord als user reibungslos funktionieren, solange man nicht den 2.6.8 oder 2.6.8-1 -Kernel verwendet.

Mini-Howto

IDE-SCSI-Emulation Einrichten

Eigentlich ein Thema, das durch den 2.6er Kernel an Aktualität verloren hat, da die Emulation nicht mehr nötig ist, sondern die IDE-Brenner direkt unterstützt werden (mit cdrecord dev=/dev/cdrom ...). Sollte man den 2.4er Kernel verwenden wollen, sollte man wie folgt vorgehen:

Wenn man das trotzdem in den Kernel einbauen möchte, sollte man bei make menuconfig wie folgt vorgehen: "Enhanced IDE/MFM/RLL disc/cdrom/ tape/floppy support" muss auf Y gestellt werden und "SCSI emulation support" muss auf M oder Y gestellt werden. Sollte man sich für M entscheiden, muss man das entsprechende Modul vor Verwendung mit Modprobe laden.

Im Hauptmenü Bei "SCSI support" wählt man die Option "SCSI support" mit Y oder M, ebenso die Optionen "SCSI CD-ROM support" und "SCSI generic support".

Wenn man Lilo verwendet, sollte man noch in die lilo.conf bei der Zeile append="" das Argument hdX=ide-scsi eintragen.

CDs löschen

eine einfache CD brennen (ISO-Image)

Zuerst sollte man nachsehen, welches Device der Brenner überhaupt verwendet. Dazu verwendet man cdrecord -scanbus (bei älteren Versionen von cdrecord war es --scanbus) Sollte das irgendwie zu einer Meldung wie dieser hier führen, sollte man cdrecord -scanbus dev=ATA oder -scanbus dev=ATAPI probieren.

cdrecord: Permission denied. Cannot open '/dev/sg1'. Cannot open SCSI driver.
cdrecord: For possible targets try 'cdrecord -scanbus'. Make sure you are root.
cdrecord: For possible transport specifiers try 'cdrecord dev=help'.

Im Endeffekt sollten durch die scanbus-Option alle CD/DVD-R /RW - Laufwerke aufgelistet werden. Ungefähr in dem Stil:

0,0,0 0) 'E-IDE ' 'CD Brenner ' ' ' Removable CD-ROM

0,0,0 ist dann Die Hardwareschnittstelle, die man cdrecord zum Brennen angeben muss.

Mit

cdrecord -v speed=x dev=0,0,0 /pfad/zum/iso/meineDaten.iso

brennt man z.B. ein Iso-Image.

-v speed=24 gibt an, wie schnell man seine CD brennen will. Natürlich sollte man die Möglichkeiten der Hardware nicht übersteigen.

dev=0,0,0 gibt die Schnittstelle an, die wir mit -scanbus abgefragt haben.

/pfad/zum/iso/meineDaten.iso ist hier der Pfad zum Iso-Image.

Es gibt noch ein paar mehr nennenswerte Optionen

Es gibt auch bei cdrecord noch zahlreiche Optionen:

-eject Die CD wird nach dem erfolgreichen Brennvorgang ausgeworfen

-multi Für Multisession-CDs immer angeben. (Bei der letzten Session natürlich nicht)

Um ein Iso-Image zu erstellen, sollte man mkisofs nehmen.

Audio-CDs brennen

Man kann mit cdrecord auch Audio-CDs brennen. Allerdings nur .wav dateien. Oder ähnliche unkomprimierte Formate.

cdrecord -v speed=x dev=0,0,0 -pad -audio a.wav b.wav

Cd on-the-fly mit mkisofs und cdrecord kopieren

Das kann man so machen:

mkisofs -R -T -V MeineCD /cdrom | cdrecord -v speed=x dev=0,0,0 -

cdrecord (zuletzt geändert am 2007-12-23 22:49:29 durch localhost)