bachem001's DE-CD-WRITING-HOWTO
Stefan Bachem   cd-writing-howto ( et ) linux-kochbuch.de
v0.0.2 , 22.03.2005

Dieses Dokument erklaert das Brennen von CD-Rs unter Linux
______________________________________________________________________

Inhalt


1. Einfuehrung
1.1 Copyright, Lizenz, Nutzungsbedingungen (eng)
1.2 Verfuegbarkeit
1.3 Empfohlene Literatur
1.4 Terminologie
1.5 Unterstuetzte CD-Brenner
1.6 Unterstuetzte "features"
1.7 Mailing Listen (eng)
2. Konfiguration eines Linux Systems um CDs zu Brennen. 
2.1 Schnell Start

--- under Construction ---
2.1.1 Spezielles ueber SCSI Brenner (under Construktion)
2.1.2 Spezielles ueber Parallel Port Brenner (under Construktion)
2.1.3 Kompilation von fehlenden Kernel Modulen (under Construktion)
2.2 Beschaffung der Software (under Construktion)
2.2.1 Kommandozeilen Programme (under Construktion)
2.2.2 Graphische Bedienoberflaechen (under Construktion)
--- ---

3. Brennen von CD-Rs
3.1 Brennen von CD-ROMs (Reine Daten CD)
3.1.1 Erstellen der Image Datei
3.1.2 Test des CD-Images
3.1.3 Das CD Image auf die CD Brennen
3.1.4 Multisession CD
3.1.5 CD-RW
3.1.6 Verschiedenes (z.b Kopierarten)
3.2 Brennen von Audio CDs
3.2.1 Brennen von Audio CDs (TAO)
3.2.1 Brennen von Audio CDs (DAO)
3.2.2 cdparanoia
3.2.3 misc (z.b Kopierarten)
3.3 Mixed mode CD-ROMs
3.4 CD+
3.5 Bootfaehige CDs
3.6 VCD/SVCD




1. Einfuehrung

Dieser Text beschraenkt sich derzeit auf die Kernel Versionen 2.4.x oder
aelter mit ide-scsi Unterstuetzung.
Die Besonderheiten von Kernel 2.6.x sind derzeit nicht enthalten.
(Da hatt sich einiges geaendert)

Viele Leute brennen CD-ROMs unter Linux weil es sicher und einfach ist.
Keine Bluescreens whaerend des Brennprozesses und keine Kopfschmerzen ueber
die richtige Hard- und Software Zusammenstellung. Es funktioniert einfach
wenn das System einmal vernuenftig aufgesetzt und konfiguriert wurde.
Diese HOWTO erklaert das Setup, wie die Daten auf die CD-R Medien gebracht
werden und gibt einen Ueberblick ueber die verschiedenen Programme.
Der Schwerpunkt liegt dabei ausdruecklich auf den Kommandozeilen basierten
Programmen.

1.1.  Copyright, Lizenz und Nutzungsbedigungen

Dieses Dokument basiert teilweise auf einer Uebersetzung der CD-WRITING-HOWTO 
Version 2.9.3 vom 23.07.2000 von Winfried Truemper 
Verantwortlich dafuer ist:
Stefan Bachem 
    
Copyright Stefan Bachem 2005.
Copyright Winfried Truemper 1996-2000.

Weiterverteilung und Nutzung dieser HOTO ist im Rahmen der GNU GPL in der
jeweils neuesten Version erlaubt.
Auf die Richtigkeit des Inhalts gibt es keine Garantie oder Gewaehrleistung.
Der Autor uebernimmt keine Juristische Verantwortung oder irgendeine
Haftung fuer Folgen die auf fehlerhafte Angaben zurueckgehen.

Die Lizenz unter der die Originale CD-Writing-HOWTO veroeffentlicht 
wurde erlaubt ausdruecklich die Uebersetzung und Modifikation.
Sie ist fuer mich an der Stelle an der es heisst:
"promote products derived from this software" aber etwas unverstaendlich.

Deshalb hier der Original Text.
"Redistribution and use, with or without modification, are permitted
provided that the name of the author may not be used to endorse or
promote products derived from this software without specific prior
written permission. In this sense, translations are welcome and need
not to be authorized by me.
The author disclaims all warranties with regard to this document,
including all implied warranties of merchantability and fitness for a
certain purpose; in no event shall the author be liable for any
special, indirect or consequential damages or any damages whatsoever
resulting from loss of use, data or profits, whether in an action of
contract, negligence or other tortious action, arising out of or in
connection with the use of this document.
Short: read and use at your own risk. No money-back guarantee."
			      
1.2   Verfuegbarkeit

Die jeweils aktuellste Version diese Dokuments findet sich unter:
http://www.linux-kochbuch.de/linux/bachem001-de-cd-writing-howto.html

1.3.  Empfohlene Literatur

Die Lektuere von dem oder den Handbuecher/n der jeweils genutzten 
Linux Distribution ist eigentlich immer erforderlich, spaetestens aber
dann wenn z.b ein neuer Kernel installiert werden muss.

Die CD-R FAQ http://www.fadden.com/cdrfaq/ ist eine generelle FAQ ueber
beschreibare compact-disks (CD-R), CD-Brenner und die erforderliche Software.
Da CD-Brenner normalerweise auch genutzt werden um CD-ROMs zu lesen, ist es
je nachdem auch sinnvoll auch die Linux CD-ROM HOWTO, die Linux SCSI HOWTO
und die Linux Kernel HOWTO zu lesen.

1.4.  Terminologie

CD-ROM ist die Abkuerzung fuer "Compact Disc Read Only Memory" 
ein Speichermedium auf dessen Oberflaeche mit einem optischen Laser 
mikroskopische Loecher erzeugt werden. Die Loecher repraesentieren die
Bits aus denen die gespeicherten Informationen bestehen. Sie sind so klein
das davon einige Milliarden auf die Disk passen. Deshalb ist die CD-ROM
ein Massenspeicher Medium.

Die Bezeichnung CD-R steht als Abkuerzung fuer CD-ROM recordable(beschreibbar).
Gemeint ist damit eine CD die noch keine mikroskopischen Loecher auf der 
Oberflaeche hatt. Die Oberflaeche ist Leer.
Im inneren einer CD-R ist eine spezielle chemische Schicht in die Loecher
eingebrannt werden koennen. 
Das wird gemacht indem der Laser der die Loecher normalerweise nur Abtastet
mit mehr Energie Arbeitet und so die Loecher in die Oberflaeche brennt.
Das kann bei einer CD-R nur einmal gemacht werden. Es ist moeglich
bestimmte Bereiche auszusparen um sie spaeter zu beschreiben, damit
erzeugt man einen sog. Multi Session CD.

Die CD-ROM rewriteable(wiederbeschreibar) kurz: CD-RW wurde entwickelt um
die beschraenkungen der CD-R Medien zu umgehen. Der Laser eines CD-RW Brenner's
ist in der Lage sowohl Vertiefungen in die Oberflaeche zu brennen als auch 
die Oberflaeche wieder in den Ursprungszustand zurueckzuversetzen. (Loeschen)
Das ist moeglich weil der Laser keine echten Loecher in die Oberflaeche
brennt so das es moeglich ist die Vertiefung nachher wieder einzuebnen und
so wieder die urspruengliche Flaeche wiederherzustellen.

Das Verfahren ist vergleichbar mit der Vorgehensweise bei Eishocky Spielen. 
Wenn der Spieler(Der Laser) ueber das Eis(CD-R Oberflaeche) laeuft 
hinterlaesst er Spuren darauf. Diese Spuren sind die Aufzeichnung dessen 
was whaerend Runde passierte. Zwichen den Spielrunden faehrt dann ein 
Fahrzeug ueber die Eisflaeche und glaettet die Spuren indem es die
oberste Schicht des Eises schmilzt und diese kurz danach wieder gefriert.
Auf diese Art sind die Aufzeichnungen aus der Vorrunde geloescht und eine 
neue Runde kann beginnen. 
Die wissentschaftliche Bezeichnung fuer verdampfen, kondensieren, schmelzen
und frieren ist "phase change" (Zustandwechsel), deshalb werden CD-RW
Brenner auch als "phase change devices" bezeichnet.

Diese HOWTO behandelt die Vorgehensweise beim Brennen von CD-Rs und
CD-RWs.

1.5 Unterstuetzte Brenner
Laut:
http://cdrecord.berlios.de/old/private/cdwriters-2.0.html
Unterstuetzt cdrecord alle SCSI-3/mmc und ATAPI/mmc kompatiblen Brenner.
Auch liest man dort das anscheinend alle Brenner die seit 1999 erstmals 
produziert wurden mmc Kompatibel sind und damit unterstuetzt werden.
Auf dieser Seite befindet sich auch eine umfangreiche Liste von 
Brenner Modellbezeichnungen von denen bekannt bzw berichtet worden ist das 
sie mit cdrecord funktionieren.

Interessanter ist vermutlich:
http://cdrecord.berlios.de/old/private/cdr-unsup-2.0.html
Dort werden die (wenigen) Modelle aufgelistet die ausdruecklich nicht
unterstuetzt werden.

Sollte ihre Hardware nicht unterstuetzt werden ist es trotzdem moeglich 
Linux zu nutzen um ein CD Image zu erstellen. Das koennte sinnvoll sein
da z.b Brennprogramme fuer Dos unter umstaenden nicht in der Lage sind
RockRidge Extensions zu haendeln. (Unix artiges Dateisystem fuer CDROMs)
Ein unter Linux erzeugtes CD Image kann dann immer noch mit einem
anderen Betriebssystem gebrannt werden.

1.6 Unterstuetzte "features"
Grundsaetzlich muss zwichen zwei Programmarten Unterschieden werden:
Brennprogramm und Datenformatierungsprogramme.

       Unterstuetzte Features         cdrecord        cdrdao
       -----------------------------------------------------------
       IDE/ATAPI                      ja              ja
       Parallel Port                  ja              ja
       CD-RW                          ja              ja
       Audio CD                       ja              ja
       Data CD-ROM                    ja              teilweise
       Multisession                   ja              ja
       TAO (track at once)            ja              ja
       DAO (disk at once)             ja              ja

              
       Frueher war cdrdao das einzige unter Linux nutzbare Programm mit 
       dem es moeglich war Audio-CDs zu erzeugen ohne das 2 Sekunden Pausen 
       zwichen den einzelnen Tracks vorhanden sind. 
       (wie es der Red Book Standart vorsieht)
       Dazu muss die CD-R im disk-at-once Modus geschrieben werden.
       Mittlerweile kennt cdrecord einen -dao Schalter der auch dazu 
       fuehrt das die einzelnen Tracks ohne die Pause gebrannt werden. 
       Das ist fuer Audio CDs, bei denen auch zwichen den eigentlichen 
       Musikstuecken Musik/Geraeusche zu hoeren sind (z.b liveaufnahmen) 
       sehr Wichtig. 
       cdrdao verwendet zur Kommunikation mit dem Brenner die gleichen 
       Bibliotheken (libschilly) wie cdrecord.
       Derzeit scheint cdrdao keine Funktionen zu haben die mit 
       cdrecord und Zusatzprogrammen wie cdda2wav/cdparanoia nicht moeglich
       sind. Unterschiede gibt es hauptsaechlich bei der Bedienung/im Handling.
       (Details dazu in Kapitel 3)

       Abgesehen von cdrecord und cdrdao gibt es noch ein weiteres Brennprogramm
       fuer Linux - cdwrite. Es wird schon seit den spaeten 90er Jahren 
       nicht mehr weiterentwickelt und ist mittlerweile voellig Outdated.
       Ich erwaehne es an dieser Stelle nur der vollstaendigkeit halber.


Die Programme die fuer die Organisation der Daten auf dem Medium 
verantwortlich sind. ("Erzeugung das Dateisystems")

       Feature         mkisofs         mkhybrid        mkvcdfs
       -------------------------------------------------------
       ISO 9660        ja              ja              nein
       RockRidge       ja              ja              nein
       El Torito       ja              ja              nein
       HFS             nein            ja              nein
       Joliet          ja              ja              nein
       Multisession    ja              ja              nein
       CD-Extra        ja              ja              nein
       Video-CD        nein            nein            ja

  Der groesste Unterschied zwichen einem ISO 9660 Dateisystem und einem
  Dateisystem wie Reiserfs oder Extendet Filesystem 2 (ext2) ist das man 
  dieses Dateisystem nicht mehr veraendern kann wenn es einmal geschrieben 
  wurde.
  Andere Einschraenkungen des ISO 9660 Dateisystems sind:
    
  - Nur 8 Ebenen mit Unterverzeichnissen sind Erlaubt. 
    (gezaehlt wird vom Obersten Verzeichniss)

  - Maximale laenge der Dateinamen: 32 Zeichen

  - max. Kapazitaet: 650 MB

  RockRigde ist eine Erweiterung um laengere Dateinamen und tiefere
  Verzeichnissstrukturen fuer das ISO 9660 Dateisystem zu ermoeglichen.
  Wenn eine CD-ROM mit RockRigde Erweiterungen unter Linux gelesen wird,
  dann werden alle bekannten Eigenschaften wie Besitzer, Gruppe, 
  Zugriffsrechte oder Symbolische Links vorhanden.
  ("fuehlt sich an wie ein Unix Dateisystem")
  Diese Erweiterungen sind nicht Sichtbar wenn die CD-ROM unter Dos oder
  den verschiedenen Windows Varianten gelesen wird.
  
  Multisession heisst das mehrere voneinander unabhaengige Datenimages 
  einzeln auf die noch nicht geschlossene (Fixierte) CD geschrieben 
  werden. Die CD wird erst nach dem Brennen der letzten Session Fixiert
  und unterscheidet sich dann erstmal nicht von einer "normalen" 
  Daten CD. Da fuer jede Session die komplette TOC neugeschrieben werden
  muss steht geht nutzbarer Speicherplatz verloren.
  
  El Torito wird genutzt um Bootfaehige CDs zu erzeugen. Damit das 
  Funktioniert muss es vom jeweiligen PC Bios unterstuetzt werden.
  Einfach gesagt werden dabei die ersten 1.44 MB (oder 2.88MB / 1.2 MB)
  der CD genutzt ein vom Nutzer bereitgestelltes bootfaehiges
  Floppy Image abzulegen. Mit Hilfe dieses Images kann die CD dann vom 
  Bios wie eine (virtuelle) Floppy-Disk behandelt und gestartet werden.
  Das hatt zur Folge das auf das echte(physische) Floppy-Disk A:
  (bzw /dev/fd0) whaerend des Boot Vorgangs nicht zugegriffen werden kann.
  
  HFS ermoeglicht es einem Macintosh die CD-ROM zu lesen als waere es 
  ein HFS Laufwerk. (das MacOS eigene Dateisystem)

  Joliet ermoeglicht lange Dateinamen fuer die neueren Windowssystem
  (95,98,NT,w2k,xp). Zurzeit ist mir keine Moeglichkeit bekannt die
  langen Dateinamen auch unter Dos und Win 3.11 verfuegbar zu machen.
  (TRANS.TBL????)

  Video-CDs(vcd) koennen direkt in einem DVD Player Abgespielt werden.
  
  In Section 2.8 finden sich Links ueber die die beschriebene Software
  gefunden werden kann.
  

  1.7.  Mailing Lists

  If you want to join the development team (with the intention to
  actively help them), send e-mail to cdwrite-request@other.debian.org
  and put the word subscribe in body of the message.

  
  2. Konfiguration eines Linux Systems um CDs zu Brennen. 
  
  Dieser Abschnitt behandelt die folgenden CD Brenner Arten:
  SCSI, IDE/ATAPI und Geraete fuer den Parallel Port.
  USB Brenner werden mittlerweile auch unterstuetzt darauf wird hier aber
  derzeit nicht eingegangen.
  
  Nicht SCSI Brenner benoetigen um mit den Linux Kernel Versionen
  2.0.x / 2.2.x / 2.4.x Betrieben werden zu koennen einen Treiber (ide-scsi)
  der dafuer sorgt das sie wie echte SCSI Geraete ansprechbar sind. Auf der
  einen Seite ist eine solche Vereinheitlichungstrategie einfach
  ("alles ist SCSI"). Andererseits muessen deshalb Programme wie CD-Player 
  oder das mount Programm (bzw. /etc/fstab) Neukonfiguriert werden damit diese
  wieder normal Funktionieren.
  z.b Wenn ein ATAPI CD-Brenner normalerweise ueber die Geraete Datei
  /dev/hdc angesprochen wurde dann wird er wahrscheinlich nach der 
  Aktivierung des ide-scsi Treibers als /dev/scd0 angesprochen werden.
  
  Wenn die Hardware und der Rest des Linux Systems erfolgreich konfiguriert
  wurde zeigt das Kommando:
  $ cdrecord -scanbus
  eine Liste von Geraeten auf dem SCSI Bus an. Das Ziel dieses Kapitel 
  ist eine Konfigurationsanleitung zu geben mit deren Hilfe schlussendlich
  etwas zu sehen ist wie:

  Cdrecord release 1.7a1 Copyright (C) 1995-1998 Joerg Schilling
       scsibus0:
             0,0,0) 'Quantum ' 'XP34300         ' 'F76D' Disk
             0,1,0) 'SEAGATE ' 'ST11200N        ' '8334' Disk
             0,2,0) *
             0,3,0) 'TOSHIBA ' 'MK537FB/        ' '6258' Disk
             0,4,0) 'WANGTEK ' '5150ES SCSI 36  ' 'ESB6' Removable Tape
             0,5,0) 'EXABYTE ' 'EXB-8500-85QUE  ' '0428' Removable Tape
             0,6,0) 'TOSHIBA ' 'XM-3401TASUNSLCD' '3593' Removable CD-ROM
             0,7,0) *
       scsibus1:
             1,0,0) 'Quantum ' 'XP31070W        ' 'L912' Disk
             1,1,0) *
             1,2,0) *
             1,3,0) 'TEAC    ' 'CD-R55S         ' '1.0H' Removable CD-ROM
             1,4,0) 'MATSHITA' 'CD-R   CW-7502  ' '4.02' Removable CD-ROM
             1,5,0) *
             1,6,0) 'YAMAHA  ' 'CDR400t         ' '1.0d' Removable CD-ROM
             1,7,0) *

        Dieses Beispiel stammt von Joerg Schilling und zeigt insgesamt
	vier CD-Brenner. -scanbus zeigt auch alle anderen Geraete auf
	dem SCSI Bus wie z.b normale CD-Rom Laufwerke und Festplatten.
	In der letzten Spalte sieht man die SCSI Beschreibung des 
	jeweiligen Geraets. Anhand dieser Beschreibung koennen normale
	CD-Roms nicht umbedingt von Brennern unterschieden werden.
	Die Produkt Identifikation (mittlere Spalte) enthaelt haeufig
	Hinweise ueber die Moeglichkeiten des Geraets mit 
	Buchstaben wie R, -R oder -RW .

--- under Construction ---	
2.1 Schnell Start
--- ---
--- under Construction ---	
2.1.1 Spezielles ueber SCSI Brenner
--- ---
--- under Construction ---	
2.1.2 Spezielles ueber Parallel Port Brenner
--- ---
--- under Construction ---	
2.1.3 Kompilation von fehlenden Kernel Modulen
--- ---
--- under Construction ---	
2.2 Beschaffung der Software
--- ---
--- under Construction ---	
2.2.1 Kommandozeilen Programme
--- ---
--- under Construction ---	
2.2.2 Graphische Bedienoberflaechen
--- ---


3. Brennen von CD-Rs
3.1 Brennen von CD-ROMs (Reine Daten CD)
3.1.1 Erstellen der Image Datei
3.1.2 Test des CD-Images
3.1.3 Das CD Image auf die CD Brennen
3.1.4 Multisession CD
3.1.5 CD-RW
3.1.6 Verschiedenes (z.b Kopierarten)
3.2 Brennen von Audio CDs
3.2.1 Brennen von Audio CDs (TAO)
3.2.1 Brennen von Audio CDs (DAO)
3.2.2 cdparanoia
3.2.3 misc (z.b Kopierarten)
3.3 Mixed mode CD-ROMs
3.4 CD+
3.5 Bootfaehige CDs
3.6 VCD/SVCD


3. Brennen von CD-Rs

"Wenn du dich in Rauch verwandelst sollte ich nicht aufhoeren Geige zu
 Spielen solange du Brennst."
 (Der Roemische Herrscher Nero ueber das brennen seiner eigenen Classic CDs,
 64 n. Chr. . Er hatt das vollstaendig missverstanden und brannte Rom nieder)


Die Erstellung von CD-Roms vollzieht sich unter Linux in 2 Schritten: 

- Zustammenstellen der gewuenschten (Quell)Daten (Dateien, Musik oder beides)
  in (meistens) grosse Datendateien mit einem speziellen Format 

- Das Brennen der erstellten Datendatei(en) auf die CD-R mittels cdrecord/cdrdao


Dieses Kapitel beschreibt die Schritte fuer Daten und Audio CDs im Detail.


3.1 Brennen von CD-ROMs (Reine Daten CD)

Das sammeln der Daten die spaeter auf eine CD Gebrannt werden soll
dauert ueblicherweise Laenger als man denkt. Bedenke das fehlende
Daten nicht mehr zu einer CD hinzugefuegt werden koennen wenn die
CD Gebrannt und Abgeschlossen(fixiert) wurde. Das gilt genauso fuer
die CD-RW, die kann derzeit auch nur im ganzen beschrieben und geloescht 
werden. Die Moeglichkeit Multisession CDs zu brennen ist keine Option
fuer einzelne Dateien. Dass verbraucht sehr viel Platz fuer ein komplett
neues Inhaltsverzeichniss(TOC, Table of Contents).

--- under Construction ---
--- Ist das noch aktuell? Ich glaube nicht ---
UDF is not ready yet for Linux.
--- ---

Ebenso muss beruecksichtigt werden das ein Teil des freien Platzes auf
der CD fuer Informationen ueber das ISO-9660 Dateisystem(ueblicherweise
ein paar MB) verbraucht werden.
620 MB Daten Passen ueblicherweise immer auf eine 650 MB CD-R und
670 MD Daten auf eine 700 MB CD-R.
Nach erfolgreicher Erstellung eines ISO Images mit mkisofs gibt dieses 
noch die genaue Groesse die die Image Datei auf dem CD-R Medium benoetigt
aus. Ist diese groesse als 650 bzw 700 MB muss die Menge der 
(Quell)Daten Reduziert werden und das ISO Image neu erstellt werden.

--- Ueberbrennen?  Groessenangaben mkisfs/cdrecord ---
       Under Construction
       
3.1.1 Erstellen der Image Datei

Jedes Speicher Medium, egal ob Floppy Disk, Festplatte oder CD benutzt
werden kann muss es mit einem Dateisystem versehen werden. (Fomatieren)
Das Dateisystem ist verantwortlich fuer die Organisation und Zusammenspiel
der Dateien die auf dem Medium gespeichert werden.

Die ueblichen Programme zum erstellen von Dateisystemen auf 
Festplattenpartitionen schreiben einfach eine leeres Dateisystem auf 
die Platte. Das wird dann vom Betriebssystem eingebunden(mounten)
und mit je nach Bedarf mit den Dateien der Nutzer gefuellt.
Eine CD-R ist nur einmal beschreibbar und wenn man ein leeres Dateisystem
darauf schreibt dann bleibt sie leer bis ans Ende ihrer Tage.
Das gilt ebenfalls fuer CD-RW den die muss ja auch immer komplett geloescht
werden.

Es wird also ein Programm benoetigt das ein Filesystem erzeugt und dabei
auch direkt die gewuenschten Daten einfuegt.
Das Programm heisst mkisofs. 
Ein Nutzungsbeispiel sieht so aus:

$ mkisofs  -r   -o cd_image   private_sammlung/
                `---------'   `-----------------'
                   |               |
           Schreibe Ausgabeut   nimm den Inhalt dieses
           (Image Datei) nach   Verzeichniss als Inhalt

Die Option 'r' setzt die Zugriffrechte fuer alle Dateien auf der CDs
so das sie fuer jeden Lesbar sind und aktiviert die Rockrigde Erweiterungen.
Diese Option sollte immer genutzt werden wenn man sich nicht ganz 
sicher ueber die Zugriffrechte ist. 
Hinweis: Ohne '-r' bekommt der mount Point der CD die Rechte die das
Verzeichniss private_sammlung hatte, d.h unter Umstaenden kann 
auf anderen Systemen nur noch der root User darauf zugreifen.

mkisofs versucht alle Dateinamen auf das 8.3 format das von Dos verwendet
zu mappen um die hoechstmoegliche Kompatibilitaet zu ereichen.
Wenn dabei Namenskonflikte auftreten (verschiedene Dateien haben den gleichen
8.3 Namen), werden Nummern in den Dateinamen verwendet und Informationen
ueber die gewaehlten Dateinamen werden auf STDERR (ueblicherweise der 
Bildschirm) ausgegeben.
Unter Linux werden diese 8.3 Dateinamen nie zu sehen sein. Linux
nutzt die Rockrigde Erweiterung. Diese enthalten die Original 
Dateiinformationen (zugriffrechte, Dateiname usw). 

Um eine Wesentlich Windows freundlichere CD-Rom zu erzeugen sollte
die Option -J (MS Joliet extensions) von mkisofs oder das Programm
mkhybrid verwendet werden.
Um HFS CD-ROMs fuer Macintoshs zu erzeugen sollte man zuerst mal die
Man Page von mkhybrid Lesen die die verschiedenen Optionen und Moeglichkeiten
auflistet.

Nun wundert man sich vieleicht darueber warum mkisofs seine Ausgabe nicht
direkt auf den Brenner schreibt. Dafuer gibt es 3 Gruende:

- mkisofs weiss nichts darueber wie ein CD-Brenner angesprochen wird.

- Es kann sein das Image vor dem Brennen getestet werden muss.

- Auf langsamen Computern wuerde das nicht funktionieren.

Es gibt die Moeglichkeit eine Daten CD-R in einem Schritt zu erzeugen,
sie wird weiter unten Beschrieben.

Man koennte auch auf die Idee kommen, eine extra Partition (ohne Dateisystem)
fuer das Image zu nutzen. Davon ist allerdings abzuraten. Sollte man sich 
vertippen, kann es sein dass man die falsche Partition Ueberschreibt. 
Dem Autor ist das schon passiert. Ausserdem ist es Platzverschwendung, da 
das Image nach dem Brennen sowieso geloescht werden kann. 
Andererseits spart die Benutzung eine extra Partition Zeit, 
da man nicht immer 650 MB an Dateien loeschen muss. 

3.1.2 Test des CD-Images

Linux hatt die faehigkeit Dateien ins Dateisystem einzubinden (mounten)
als ob es sich dabei um Festplatten Partitionen handelt.
Diese Moeglichkeit ist sehr nuetzlich um den Aufbau der Directory
Struktur und die Dateizugriffsrechte auf dem CD-Image zu ueberpruefen.
Auch wenn die CD-Medien heutzutage relativ Preiswert sind, der Brennprozess
dauert immer noch seine Zeit und es ist auf jedenfall besser vorher
noch schnell zu ueberpruefen ob das Image ist, wie gewollt.

Um die Datei cd_image die mit weiter oben erzeugt wurde auf das Verzeichniss
/cdrom zu mounten muss folgendes Kommando ausgefuehrt werden:

$ mount -t iso9660 -o ro,loop=/dev/loop0 cd_image /cdrom

Nun ist es moeglich die Dateien unterhalb des Verzeichnisses
/cdrom zu ueberpruefen. Sie erscheinen exakt so als waeren sie auf 
einer echten CD. Um das Image wieder aus dem Dateisystem zu entfernen(umount),
reicht es einfach:

$ umount /cdrom

einzugeben. 
Achtung: Bei alten Linux Kerneln so bis ca 2.0.31 kann es
sein das die letzte Datei auf /cdrom nicht komplett lesbar ist.
Abhilfe schafft hier nur die Verwendung einer neueren Kernels.
z.b 2.0.36 . Bei Kernelversionen 2.2.x und 2.4.x tritt dieser Fehler
nicht mehr auf.

--- under Construktion ---
--- macht es Sinn das heutzutage noch reinzunehmen?? ---
Note:

Some ancient versions of mount are not able to deal with
loopback devices. If you have such an old version of mount,
then upgrade your Linux-system.  Several people have already
suggested putting information about how to get the newest
mount utilities into this HOWTO. I always refuse this.  If
your Linux distribution ships with an ancient mount, report
it as a bug.  If your Linux distribution is not easily
upgradable, report it as a bug.

If I include all the information that is necessary to work
around bugs in badly designed Linux distributions, this
HOWTO would be a lot bigger and harder to read.
--- ---

3.1.3 Das CD Image auf die CD Brennen

This section only covers writing data CDs in TAO mode, because it is
the most frequently used mode for data. For more information about the
differences of TAO and DAO, please see the chapter about audio CD-Rs.

--- under Construktion ---
--- Ist das noch Aktuell?? ---
If you use DAO mode with the tool cdrdao, then remember to add a dummy
audio track at the end of the TOC file (see the README).
--- ---

Jetzt bleibt nicht mehr viel zu tun. Wenn es noch nicht passiert ist,
ist jetzt ein guter Zeitpunkt das Kommando:

$ cdrecord -scanbus

auszufuehren.
Damit klar ist als welches SCSI Device der CD-Brenner angesprochen 
werden muss.
Es gibt weitere Moeglichkeiten an diese Informationen heranzukommen.
Darauf wird hier aber ausdruecklich nicht eingegangen.

Vor Nennung des letzten Kommandos, seien sie gewarnt, CD-Brenner muessen
mit einem konstanten Datenstrom gefuettert werden. Der Brennprozess
darf nicht unterbrochen werden ansonsten wird die CD unbrauchbar.

Es ist einfach den Datenstrom zu unterbrechen, z.b indem man eine grosse
Datei loescht. Beispiel: Wenn eine alte CD-Image Datei von 650MB Groesse
geloescht wird muss der Kernel Informationen ueber 650.000 Bloecke auf
der Festplatte aktualisieren. (angenommen das die Block Groesse des 
Dateisystems 1Kbyte betraegt)
Das erfordert einige Zeit und belastet die Festplatte unter Umstaenden so
das der Datenstrom kurzfristig Abreisst.
Taetigkeiten wie das Lesen von E-Mail, Surfen im WWW oder auch die
Neukompilation eines Kernels beintraechtigen auf modernen Rechnern den
Brennvorgang nicht sonderlich.

Beachten sie bitte das kein Brenner den Laser repositionieren kann,
wenn es zu Erschuetterungen gekommen ist. Es ist also unmoeglich, 
die genaue Stelle zu finden an der der Brennvorgang fortgesetzt 
werden muesste. Starke Erschuetterungen oder andere mechanische
Beeinflussungen fuehren daher fast immer zu unbrauchbaren CDs.

Wenn sie nun in eine schwarze Robe gekleidet, Mental vorbereitet
und in dem Raum in dem der Rechner mit dem CD-Brenner steht exakt soviele 
Kerzen angezuendet haben wie das Ergebniss der Rechnung:
SCSI ID des CD-Brenner * SCSI Revision des CD-Brenner

bleibt nur noch zwei Verse aus der ASR-FAQ 
(newsgroup alt.sysadmin.recovery) aufzusagen 
und zu guter Letzt eingeben:

$ SCSI_BUS=0   # uebernommen von listing 1 "scsibus0:"
$ SCSI_ID=6    # uebernommen listing 1 "TOSHIBA XM-3401"
$ SCSI_LUN=0
$ cdrecord -v speed=2 dev=$SCSI_BUS,$SCSI_ID,$SCSI_LUN \
           -data  cd_image

# das gleiche wie oben, nur kuerzer:
$ cdrecord -v speed=2 dev=0,6,0  -data  cd_image

Im ersten Beispiel sind der besseren Lesbarkeit halber die Werte des
CD-Brenners in drei Umgebungsvariablen mit den Namen 
SCSI_BUS, SCSI_ID, SCSI_LUN abgelegt worden.

In Zeiten wo alle ausser mir 3GHz Computer besitzen, ist es moeglich den
Output von mkisofs direkt in cdrecord zi Pipen:

$ IMG_SIZE=`mkisofs -R -q -print-size private_collection/  2>&1 \
       | sed -e "s/.* = //"`
$ echo $IMG_SIZE
$ [ "0$IMG_SIZE" -ne 0 ] && mkisofs -r  private_collection/  \
       |cdrecord  speed=2  dev=0,6,0 \
       tsize=${IMG_SIZE}s  -data  -
       #nicht das s   --^         ^-- lese die Daten von STDIN
       #vergessen
       
Das erste Kommando ist ein Vorlauf der nur dazu dient die Groesse des Images
zu bestimmen. (Damit das funktioniert ist die mkisofs Version aus dem 
cdrecord Packet noetig). Es muessen alle Parameter angegeben werden die
auch fuer das eigentliche Image verwendet werden. (z.b -J oder -hfs). 
Es kann sein das ihr Brenner die groessen Angabe nicht benoetigt dann kann der
Vorlauf entfallen.
Die ausgegebene Groesse muss ueber den -tsize Parameter an cdrecord uebergeben
werden. (im Beispiel wird dies ueber die Variable IMG_SIZE gemacht).
Das zweite Kommando ist eine Sequenz von mkisofs und cdrecord die ueber
eine Pipe verbunden werden.

3.1.4 Multisession CD-R

Um eine Multisession CD zu erzeugen muss zusaetzlich der -multi Schalter
verwendet werden. Manche CD-Brenner unterstuetzen CD-Rom XA mode 2 oder
session-at-once (SAO) nicht, dann muss der -data switch hinzugefuegt werden.

Die Erzeugung des Daten Images fuer die erste Session ist nahezu Identisch
mit der fuer eine "normale" Daten CD.
Zu beachten ist allerdings das fuer die Positionierung der Daten bzw die
erstellung der Directory Herarschie etwas anders vorgegangen werden muss.
Wenn die Dateien fuer jede session jedesmal in ein neues Verzeichniss 
ohne weitere Unterverzeichnisse geschrieben werden dann fuehrt das dazu
das es auf der CD-R nachher alle Dateien in einem Verzeichniss liegen.

Wenn aber zum Beispiel zuerst mal ein Hauptverzeichniss mit dem Namen
backup angelegt wird und innerhalb von diesem fuer jede weitere session
ein weiteres Verzeichniss (z.b backup1, backup2 usw) dann entsteht eine
Verzeichnissherarchie die so aussieht:

backup
   /-------/ backup1
           / backup2
	   / backup-xxx

Erstes Image erstellen:
$ mkisofs -r -o cd_image backup/
Brennen mit:
$ cdrecord -v -data -multi dev=0,6,0 cd_image

Fuer das zweite und alle folgenden Images die auf die CD-R geschrieben werden
sollen muss zuerst die sog. 'multi session info' von der CD-R ausgelesen 
werden. Ausgelesen wird sie mit cdrecord und muss dann an mkisofs uebergeben
werden. Mit diesen Informationen ist cdrecord dann in der Lage die
neue Session hinzuzufuegen.

Zweites und weitere Images(Sessions):
$ SINF=$(cdrecord -msinfo dev=0,6,0)
$ mkisofs -r -o cd_image -C $SINF -M /dev/scd0 backup/
wiederum schreiben mit:
$ cdrecord -v -data -multi dev=0,6,0 cd_image

Wenn man ein multisession Gebrannte CD-R direkt nach dem Brennen
mounted kann es sein das es so aussieht als ob die letzte Session 
gar nicht hinzugefuegt worden war. In diesem Fall hilft es den Brenner
zu oeffnen und wieder zu schliessen. Das zwingt den Brenner die TOC der 
CD-R neu einzulesen. Dann erscheinen auch die zuletzt gebrannten Daten
so wie es sein soll.

Wenn die letzte Session auf die CD-R geschrieben werden soll
und die CD Finalisiert werden sind die Prozedur und Kommandos die gleichen
wie fuer die zweite Session. Nur das hier der -multi switch eben weggelassen
wird. Das veranlasst cdrecord dann die CD nach dem Schreibvorgang zu 
Fixieren(Finalisieren). Danach koennen der CD-R keine weiteren Daten mehr 
hinzugefuegt werden.

Anmerkung: Wenn sie Daten zu einer multisession CD-R hinzufuegen wollen
die urspruenglich mit anderen Programmen wie z.b Nero erstellt wurde,
sollten sie erst die Man Page von mkisofs lesen und dabei besonders
die Option -force-rr beachten.


3.1.6 CD-RW

Kommandos , Vorgehensweise , Reihenfolge und das Handling der Daten
sind fuer eine CD-RW Identisch mit dem fuer eine normale CD-R.
Bevor es allerdings moeglich ist neue Daten auf eine bereits beschriebene
CD-RW zu schreiben muss diese zuersteinmal mit cdrecord geloescht werden.

Um die CD-RW schnell zu loeschen(nur ein Paar Sekunden)
$ cdrecord dev=0,6,0 blank=fast -force 

Um die CD-RW gruendlicher zu loeschen:
$ cdrecord dev=0,6,0 blank=all -force
Die Zeitdauer ist bei diesem Kommando abhaengig vom Brenner.

Weitere Details ueber das Handling von CD-RW finden sich in 
der cdrecord Man Page.

3.1.7 Diverses

Um eine 1:1 Kopie von einer normalen (nicht kopiergeschuetzten) Daten CD
in 2 Schritten zu erstellen.
Zuerst das Original Auslesen:
$ dd if=/dev/scd0 of=./cdimage.img
und dann das so erhaltene Image auf CD-R Brennen:
$ cdrecord -v -tao dev=0,6,0 cdimage.img

Zur Erstellen einer 1:1 Kopie in 2 Schritten kann auch das Programm readcd 
genutzt werden.
Auslesen mit:
$ readcd dev=0,6,0 f=cdimage.img
Schreiben mit:
$ readcd dev=0,6,0 -w f=cdimage.img

Es ist moeglich eine Daten CD in einem Schritt zu Kopieren, aber Vorsicht
das ist ein sensibler Prozess der schnell zu defekten CDs fuehren kann.

Grundsaetzlich funktioniert:
$ cdrecord -v -tao -isosize dev=0,6,0 /dev/hdc
                   |------| |-------| |------|
                       |         |         |
             holt sich zuerst    |    device von dem die Daten 
	     die groesse des     |    gelesen werden sollen
             Images cdrecord     |    
	     braucht das      CD-Brenner
                              Device

Auf einem Modernen Rechner z.b einem XP2400+ o.ae sollte das funktionieren.

Aber nochmal, vorsicht, ich habe einige CD-R Medien geschrottet als ich das
auf aelteren PCs ausprobiert habe.
Simulieren sie den Brennvorgang zuerst durch hinzufuegen der -dummy Funktion
bevor sie den echten Brennvorgang Starten.
Aber selbst ein erfolgreicher dummy run bietet bei einer 1:1 Kopie in 
einem Schritt keine 100% Funktionssicherheit auf alten Rechnern.
(das ist mir auch Passiert)

Als ich das zum ersten Mal diese Kopierart auf einem P1-200MMX ausprobierte 
weigerte sich cdrecord erstmal zu Starten. Es verabschiedete sich mit der 
Meldung das das System zu langsam fuer 52x Brennen (max Brenn Geschwindigkeit)
sei. 24x waere O.K . Aber ohne das hinzufuegen von `driveropts=burnfree` 
weigerte sich cdrecord weiterhin zu Starten.
Das sah dann so aus:
$ cdrecord -v -tao -isosize driveropts=burnfree dev=0,6,0 /dev/hdc

Beim Versuch mit -dummy funktionierte das wunderbar, aber der echte 
Brennversuch scheiterte dann mit einem buffer Underrun und Schottete 
die CD-R.

Beim naechsten Versuch ohne -dummy setzte ich einen groesseren Datenpuffer
fuer cdrecord. (groesser als 12MB sollte man ihn lt. cdrecord Docu nicht
machen)

$ cdrecord -v -tao -isosize fs=12m driveropts=burnfree dev=0,6,0 /dev/hdc

Aber auch hier kam es wieder zu einem buffer underrun der die CD-R Schrottete,
Das setzen einer niedrigeren Geschwindigkeit mit der `speed= ` Option hatte
keinen Effekt. Es hatt den Anschein als ob dieser MSI Brenner nicht in der
Lage war langsamer als 24x zu Brennen.

Ich keine einen Brenner(nicht meiner) der eine Option namens:
forcespeed
kennt. Ich denke mal das sich das Problem damit loesen liesse.

Wenn cdrecord startet zeigt es unter anderem auch diese Optionen an.

Etwas uebersichtlicher ist es mit:
$ cdrecord dev=0,6,0 driveropts=help -checkdrive
Informationen ueber die CD-R und den Brenner werden ausserdem mit:
$ cdrecord -atip dev=0,6,0
angezeigt.


3.2.  Brennen von Audio CDs

Die Vorgehensweise fuer das Brennen von Audio CDs ist der oben 
beschriebenen fuer Daten CDs recht Aehnlich.
Sie haben die Wahl zwichen zwei verschiedenen Techniken: DAO oder TAO.
TAO(track at once) ist fuer Musik nicht so praktisch, da zwichen den 
einzelnen Musikstuecken Hoerbare Luecken vorhanden sind.
Trotzdem wird TAO zuerst beschrieben da es ist etwas einfacher zu 
Haendeln ist und DAO ist nicht umbedingt mit allen Brennern moeglich.

Im Vergleich, der Hauptunterschied zwichen einer daten CD-R und einer
Audio CD-R ist das Datenformat der Image Datei(en).
ISO-9660(oder ein beliebiges anderes Dateisystem) ist nicht nutzbar
da kein Audio CD Abspielgeraet in der Lage ist mit diesem oder anderen
Dateisystemen umzugehen. Stattdessen muessen die Daten als
"16 bit stereo Aufnahme in PCM Kodierung at 44100 samples/second (44.1 kHz)"
geschrieben werden.
Ein Programm das in der Lage ist ihre Sounddateien in dieses erforderliche
Format zu Konvertieren ist sox. z.b so:

$ sox  killing-my-software.wav  killing-my-software.cdr

Dieses Kommando konvertiert das lied killing-my-software vom WAV Format
ins CDR audio-format. Weitere Informationen ueber Formate die mit
sox konvertiert werden koennen finden sie auf der Man Page.
Weil das manuelle Konvertieren von Sounddateien sehr viel Festplattenplatz
beansprucht wurde cdrecord mit einer Integrierten Konvertierung ausgestattet.
Wenn die Sound Dateien also als .wav oder .au vorliegen und es sich um
"stereo, 16 bit, 44.1 kHz" Daten handelt koennen diese Daten ohne eine
vorherige manuelle Konvertierung ins CDR format benutzt werden.
Allerdings muss die Groess der Audiodateien ueber 705.600 Byte liegen 
und ein ganzzahliges Vielfaches von 2352 sein. Wenn die Dateien diese 
Bedingung nicht erfuellen, muss dennoch auf sox zurueckgegriffen werden.

Es gibt verschiedene Programme audio Tracks von einer CD auf die
Festplatte zu transferieren. z.b cdparanoia (siehe Kapitel 3.2.2)
mpg123(siehe Kapitel 3.2.1) oder cdda2wav .

Folgender Befehl:

$ cdda2wav dev=0,0 -B -Owav 

liest alle Audio Tracks der CD die im Laufwerk mit der SCSI ID 0 liegt 
aus und speichert sie in einzelnen Dateien auf der Festplatte 
(audio_xx.wav und audio_xx.inf). Die audio_xx.inf Dateien werden fuer
das Brennen im DAO Modus gebraucht.

Um einen einzelnen Track auszulesen:
$ cdda2wav dev=0,0 -t2 -Owav

Liest das 2te Stueck von der CD und schreibt die Daten in eine 
Datei(audio.wav) .

Mit:
$ cdda2wav dev=0,0 -t2+7 -B -Owav
werden die Tracks 2 bis 7 ausgelesen auf die Platte geschrieben.
Das Auslesen von mehreren Tracks ohne die -B Option macht wenig Sinn
wenn es darum geht eine eigene Collection zusammenzustellen. 
Ohne -B werden die Daten alle in eine Datei(audio.wav) geschrieben und
koennen nur noch am Stueck gebrannt werden.


3.2.1.  Writing audio CDs (TAO)

Eine Audio CD die im TAO Modus erstellt wurde besteht aus seperaten 
Audiodateien die nacheinander einzeln auf die CD geschrieben wurden. 
Wenn auf der zu erstellenden Audio CD-R, 10 verschiedene Titel enthalten sein 
sollen dann muessen dafuer vorher entsprechend 10 Audiodateien erstellt 
werden.

Cdrecord schreibt Datendateien als audio wenn beim Programmstart
die option -audio angegeben wird.
Die anderen Optionen sind normalerweise identisch mit denen die beim 
Brennen von Daten CDs verwendet werden.
Diese 3 Kommandos machen alle drei das gleiche, sie nutzen lediglich 
unterschiedliche Audio Datenformate/Dateien:

$ cdrecord -v dev=0,6,0  -audio  track1.cdr track2.cdr...
$ cdrecord -v dev=0,6,0  -audio  track1.wav track2.wav...
$ cdrecord -v dev=0,6,0  -audio  track1.au  track2.au...


---
Hierbei entsteht nach jedem Audio-Track eine zweisekündige Pause. 
(Standart laut RED BOOK Format).
Ein bekanntes Format, das nicht direkt von cdrecord verarbeitet werden kann,
ist MPEG Layer 3 (mp3). Um MP3-Dateien in das CDR-Format umzuwandeln, 
koennen Sie das Kommando "mpg123 --cdr - track1.mp3 > track1.cdr" verwenden. 
Die Option --cdr stellt sicher, das die Tracks ins richtige Format codiert
werden. Aeltere Versionen von mpg123 verlangen statt - die Option -s, 
um auf die Standardausgabe zu schreiben.
Die andere Richtung (WAV zu MP3 konvertieren) kann mit LAME erreicht werden
(extrahieren sie die Tracks mit cdda2wav von der Audio-CD und wandeln
diese mit LAME nach MP3 um).

Um eine CD aus mehreren MP3-Dateien zu erstellen, koennen Sie die 
folgenden Befehle verwenden:

---
#!/bin/bash
for I in *.mp3
do
mpg123 --cdr - "$I" | cdrecord -audio -pad -nofix -
done
cdrecord -fix
--- ---

Am besten schreibt man diese Befehle in eine Datei (z.B. mp3_2_audio.sh), 
ein sogenanntes Shellskript. Speichern diese Datei dann in Ihrem 
Homeverzeichnis. Dann geben sie den Befehl chmod 700 $HOME/mp3_2_audio.sh ein.
Dadurch wird das Skript ausführbar. Wechselnsie dann in das Verzeichnis 
mit den MP3-Dateien. Wenn sie jetzt $HOME/mp3_2_audio.sh eingeben, 
werden alle MP3-Dateien in diesem Verzeichnis als Audio-CD gebrannt. 
Die Gesamtspieldauer der MP3-Dateien darf hierbei nicht ueber 74 Minuten
liegen. 
mpg123 ist bei verwendung der --wav und --au Schalter auch in der lage
.wav und .au Dateien zu erzeugen.


Abhaengig von der Geschwindigkeit Ihres Rechners und dem 
verwendeten Brenner muss die Brenngeschwindigkeit vielleicht mit der 
cdrecord-Option speed=1 herabgesetzt werden.
Wenn Sie z.B. vierfache Brenngeschwindigkeit waehlen (speed=4), so muss
ihr Rechner die MP3-Dateien in vierfacher Geschwindigkeit abspielen koennen
Wenn Sie Zweifel haben, versuchen Sie einen Testlauf mit der Option -dummy.
Dabei bleibt der Laser abgeschaltet.

3.2.2.  DAO

Wenn sie die Pausen zwichen den Audio-Tracks beseitigen wollen, muessen sie 
ihre Audio-CDs im Disk-At-Once (DAO) Modus brennen. 

Urspruenglich war das nur mit cdrdao moeglich. Mittlerweile geht es aber auch
mit cdrecord. (-dao Schalter)

cdrdao verwendet dabei eine einzelne image Datei(data.bin, .wav Format)
und die Informationen ueber die Laenge der einzelnen Stuecke sowie 
Uebergaenge zwichen den einzelnen Stuecken etc. in einer 
Konfigurationsdatei. (cd.toc)

Die data.bin kann dabei von cdrdao (mit read-cd) selbst oder mit 
cdparanoia oder anderen Programmen (z.b brec) erstellt werden.

Die cd.toc kann entweder mit cdrdao (read-toc) ausgelesen
werden oder mittels eines Texteditors selber erstellt werden.
Das ist z.b erforderlich wenn man alte Langspielplatten ueber die
Soundkarte Digitalisiert hatt. Die Daten liegen dann meistens in einer
einzelnen .wav Datei vor. Wenn man diese Datei einfach so auf eine CD-R 
brennt ist es nicht moeglich die einzelnen Tracks anzuwaehlen.


Eine cd.toc koennte z.b so aussehen:
----
CD_DA
TRACK AUDIO
FILE "live.wav" 0 5:0:0
INDEX 3:0:0
TRACK AUDIO
FILE "live.wav" 5:0:0 5:0:0
TRACK AUDIO
FILE "live.wav" 10:0:0 5:0:0
INDEX 2:0:0
----

Die Audiodaten sind in diesem Beispiel in der Datei live.wav abgelegt.
Gebrannt wird das dann mit dem gleichen Kommando (write) 
wie beim Kopieren einer CD etwas weiter unten.

Um eine CD mit cdrdao zu kopieren muss zuerst die Quell CD ausgelesen werden.

$ cdrdao read-cd --device 0,6,0 --driver generic-mmc cd.toc

Damit werden die Kontrol Informationen in die cd.toc und die
vollstaendigen Audio Daten in die Datei data.bin geschrieben.
Diese Daten koennen dann durch ausfuehren von:

$ cdrdao write --device 0,6,0 --driver generic-mmc cd.toc

im gleichen Verzeichniss auf eine andere CD-R geschrieben werden.

Das Auslesen von Audio CDs die sich in einem sehr schlechten Zustand 
befinden kann dazu fuehren das Daten verfaelscht werden oder verloren gehen.
Ich benutze cdparanoia (siehe Kapitel 3.2.2) um die Audio Daten solcher
CDs auszulesen. Die cd.toc muss aber trotzdem mit cdrdao ausgelesen werden.
(read-toc).

Hinweis: Sowohl cdrdao als auch cdda2wav verfuegen ueber Schalter wie z.b
         --paranoia-mode . Ich weiss derzeit nicht ob die LeseErgebnisse
	 mit denen von cdparanoia Identisch sind.

Unter:
http://cdrdao.sourceforge.net/drives.html#dt
finden sie eine Liste der Unterstuetzen CD-Brenner die mit cdrdao 
funktionieren und welche --driver Option dafuer gesetzt werden muss.
Auch wenn ihr CD-Brenner nicht auf diese Liste auftaucht ist bei
neueren Geraeten die Chance sehr Gross das er mit dem 
generic-mmc
Treiber funktioniert.

DAO Brennen von Audio CDs mit cdrecord

Dafuer muessen die Audio Daten zuerst mit cdda2wav ausgelesen werden:
$ cdda2wav dev=2,0 -vall -B -Owav

Dies erzeugt fuer jeden Audio Track auf der CD zwei Nummerierte
Dateien - audio_xx.wav und audio_xx.inf .
Die .inf Dateien enthalten hierbei die Kontrollinformationen fuer den
jeweiligen Track.

Gebrannt wird das dann mit:
$ cdrecord dev=2,0 -v -dao -useinfo -text  *.wav


3.2.2 cdparanoia

cdparanoia liest audio Tracks von cdda faehigen cdrom Laufwerken.
Zusaetzlich zum lesen fuegt cdparanoia eine robuste Daten Ueberpruefung
und Fehlerbehandlung hinzu.

Um Informationen ueber die Audio CD im Laufwerk zu bekommen:

$ cdparanoia -v -Q -d /dev/scd0

Das erzeugt dann eine Ausgabe aehnlich dieser:
> cdparanoia III release 9.8 (March 23, 2001)
> (C) 2001 Monty  and Xiphophorus

dem folgen dann einige Informationen ueber das verwendete System und
dessen Konfiguration sowie ein CD Inhaltsverzeichniss wie dieses:

> Table of contents (audio tracks only):
> track        length               begin        copy pre ch
> ===========================================================
> 1.    15087 [03:21.12]        0 [00:00.00]    no   no  2
> 2.    12815 [02:50.65]    15087 [03:21.12]    no   no  2
> 3.    12688 [02:49.13]    27902 [06:12.02]    no   no  2
> 4.    16447 [03:39.22]    40590 [09:01.15]    no   no  2
> 5.    15419 [03:25.44]    57037 [12:40.37]    no   no  2
> 6.    17345 [03:51.20]    72456 [16:06.06]    no   no  2
> 7.    18010 [04:00.10]    89801 [19:57.26]    no   no  2
> 8.    18202 [04:02.52]   107811 [23:57.36]    no   no  2
> 9.    17112 [03:48.12]   126013 [28:00.13]    no   no  2
> 10.    15361 [03:24.61]   143125 [31:48.25]    no   no  2
> 11.    17989 [03:59.64]   158486 [35:13.11]    no   no  2
> 12.    13926 [03:05.51]   176475 [39:13.00]    no   no  2
> 13.    16471 [03:39.46]   190401 [42:18.51]    no   no  2
> 14.    18720 [04:09.45]   206872 [45:58.22]    no   no  2
> 15.    14448 [03:12.48]   225592 [50:07.67]    no   no  2
> 16.    18714 [04:09.39]   240040 [53:20.40]    no   no  2
> 17.    17977 [03:59.52]   258754 [57:30.04]    no   no  2
> 18.    15923 [03:32.23]   276731 [61:29.56]    no   no  2
> 19.    17225 [03:49.50]   292654 [65:02.04]    no   no  2
> TOTAL  309879 [68:51.54]    (audio only)

Um die vollstaendigen Audio Daten von diesem Beispiel auszulesen:
$ cdparanoia -v -d /dev/scd0 span1-19
              |  |---------| |------|
       verbose       |          |
                  Device     Anzahl der auszulesenden Tracks

standartmaessig wirden die Daten in eine Datei namens cdda.wav geschrieben.

Um z.b nur Track Nr. 9 auszulesen
$ cdparanoia -v -d/dev/scd0 span9[28:00.13]-9[03:48]
Auch hier wird die Ausgabe in eine Datei mit dem Namen cdda.wav geschrieben.
Achtung: eine evtl. schon vorhandene Datei gleichen Namens wird ohne 
         weitere Nachfragen ueberschrieben!


3.2.3 misc


1:1 Brennen von audio mit cdrecord. (Daten muessen mit cdda2wav geholt werden)
cdrecord dev= -pad driveropts=burnproof defpregap=0 -eject -v
-dao -useinfo -text *.wav



To copy a complete Audio CD using cdrdao (read toc und write CDR) and 
cdparanoia (get audio Data), there are three steps:

1. Get the cd.toc
$ cdrdao read-toc 


3.3.  Mixed mode CD-ROMs

Der erste Track einer Mixed Mode CD-R ist ein Daten Track. Die danach
folgenden Tracks sind Audio Tracks.
Es bleibt nicht viel zu sagen ueber diese Art von CD-R. Beim Brennen
muss nur der Typ der einzelnen Images mit den Optionen -data und -audio
angegeben werden.
Beispiel:

$cdrecord  -v dev=0,6,0  -data  cd_image  -audio  track*.cdr

Die vorgehensweise beim Kopieren einer mixed mode CD ist Identisch mit
der beim Kopieren einer Audio CD mittels cdrecord oder cdrdao wie es
weiter oben Beschrieben wird.

3.4. CD+
Diese Informationen stammen aus einer Datei Namens README.cdplus die 
zur Dokumentation einer aelteren Version von cdrecord gehoerte.

"Laut www.cd-info.com, ist eine CD+ eine CD mit Sessions.
 Die erste session ist eine Audio Session, die zweite ist eine Data
 Session. Um eine CD+ zu erzeugen muss zuerst die audio Session im multi
 session Modus geschrieben werden und danach die Daten Session geschrieben
 werden"

3.5 Bootfaehige CDs

Ein typische Bootfaehige CD richtet sich nach dem El Torito Standart.
Diese enthaelt neben(bzw auf) dem ISO9660 Dateisystem die Image Datei
einer Bootfaehigen Floppy-Disk.

Fuer ein El Torito CD reicht grundsaetzliche ein Floppy Image, es ist aber
moeglich bis zu 64 verschiedene Boot Images auf einer CD Abzulegen.
Das ermoeglicht dann auch das Starten verschiedener Betriebsystemversionen 
von einer CD-R.

Die Floppy Images koennen von 1.2 MB , 1.44 MB oder 2.88 MB Floppy Disks
sein.

Zuerst muss eine bootfaehige Floppy-Disk erstellt/beschafft werden.
Dann muss von dieser Diskette eine Image Datei erstellt werden.

$ dd if=/dev/fd0 of=bootdisk.img 

Die Erzeugung des CD-Images ist fast Identisch mit der Beschreibung
in Kapitel 3.1.1 bis 3.1.3 . 
Wichtig ist hier aber das die Pfade der Floppy-Image-Dateien an mkisofs 
uebergeben werden, diese Pfade muessen relativ zum Wurzelverzeichniss
des Verzeichnisses angegeben werden in dem die Daten fuer die erstellung
des CD-Images liegen.
Es ist nicht moeglich Floppy-Images einzubinden die irgednwo anders
im Dateisystem abgelegt worden sind.


Fuer dieses Beispiel nehme ich an das die Daten fuer die CD in einem
Verzeichniss gesammelt wurden das backup/ heisst. Die Bootdisk Images
liegen unterhalb dieses Verzeichnisses im Unterverzeichniss boot/.
Sie liegen also in backup/boot/ .

Um ein ISO Image mit einem Boot Image zu erzeugen:
$ mkisofs -b boot/bootfloppy1.img -o cd_image backup
          |---------------------| |---------| |----|
                |                      |        |
	        |                      |      Verzeichniss das die 
	        |                      |      gesammelten Daten enhaelt.
            Name and relativer      Dateiname 
           Pfad zum Floppy image    fuer Ausgabe
		Image

Um ein ISO Image mit drei verschiedenen Boot Images zu erzeugen: 
(alles auf einer Zeile!):
$ mkisofs -b boot/bootfloppy1.img -eltorito-alt-boot -b boot/bootfloppy2.img \ 
  -eltorito-alt-boot -b boot/bootfloppy3.img -c boot/boot.catalog  \
  -o ./cd_image backup/

Die so erzeugten CD Images werden ganz normal mit cdrecord auf die CD-R 
gebrannt wie in Kapitel 3.1.3 beschrieben.

Es sind eine Menge Bios'e im Umlauf deren El Torito Implementation nur sehr
aermlich ist.
Eine Bootfaehige CD wie sie mit dem ersten Beispiel erzeugt wird sollte
mit jedem El Torito faehigen Bios funktionieren.
Wenn sie allerdings eine wie im zweiten Beispiel ausprobieren dann kann es 
passieren das das Startmenue nicht erscheint.
Die Rechner wird sich dann verhalten als ob die CD so erzeugt wurde wie im
ersten Beispiel und immer nur vom ersten Floppy Image Booten.

Ich habe die Multiboot Variante auf einen Desktop PCs ausprobiert und 
da funktionierten sie. Aber bis heute ist mir noch kein Laptop untergekommen
der in der Lage gewesen waere mit einer solchen Multiboot CD umzugehen.

Ein El Torito Bootmenue ist eine aermliche Angelegenheit. Es scheint
unmoeglich zu sein eins zu erzeugen das mehr Informationen enthaelt als
die Groesse der Boot Images.

Ein weg um schoenere/bessere Boot Menue's zu erzeugen ist die Verwendung
von syslinus / isolinux .
Mehr Informationen dazu finden sich unter:
http://syslinux.zytor.com/iso.php

3.6 VCD/SVCD

Um das cue und bin File zu erzeugen:
$ vcdimager -q -t svcd --cue-file=film.mpg.cue --bin-file=film.mpg.bin film.mpg

Auf die CD-R wird das dann geschrieben mit:
$ cdrdao write --device /dev/sg0 --driver generic-mmc --speed 10 film.mpg.cue

Zur Zeit kenne ich keinen Weg um grosse *.mpg Dateien in Stuecke bestimmter
Groesse aufzuteilen.
Das waere erforderlich um einen Film ueber mehrere CD-R zu verteilen.