BlackBoard » Sonstiges » Bildung » [Linux] CDs brennen auf der Shell » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen [Linux] CDs brennen auf der Shell
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Black Star Black Star ist männlich
Der Pate [Admin]


images/avatars/avatar-2158.jpg

Dabei seit: 11.12.2001
Beiträge: 2.282
Herkunft: /dev/stderr

[Linux] CDs brennen auf der Shell       Zum Anfang der Seite springen

Neuste Version jeweils hier:
http://black-star.homedns.org/projects/tuts/cdr-shell/
Anmerkungen an mich

Version 0.2:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
Tutorial - Brennen auf der Shell
================================

 0. Motivation
 1. Voraussetzungen
 2. Formate
 3. Kernel/Modul-Einstellungen
 4. Daten-CD (isos)
 5. (S)Video-CD
 6. Cue/Bin, Toc/Img Sheets
 7. Ogg/Mp3 --> CD-DA
 8. Direkt-Kopie
 9. Umgang mit Images
10.Changelog/Verfasser/....


0. Motivation
=============
Die berechtigte Frage ist: "Welcher Bloedmann brennt auf der Shell, wenn es
irgendwelche bunten GUIs fuer die verschiedenen Brennmethoden gibt?"
Die Frage ist zunaechst richtig, aber es brennen viele *nixer auf der Shell,
da es schnell und einfach (*g*) geht und stabil ist. Bis ich mich durch 17 verschiedene
Einstellungsmenus geklickt habe, habe ich einen Brennbefehl von 50-70 Zeichen
3mal eingetippt.
Ausserdem gibt es auch heutzutage immer noch Shell-Liebhaber, zu denen auch
ich gehoere.
Abgesehen davon ROCKT die Shell \o/ (und es macht Eindruck bei neben dir sitzenden
Kumpels, die keine Ahnung davon haben, wie geil Linux ist)


1. Voraussetzungen
==================
 * Kernel mit Unterstuetzung fuer ide-scsi-Emulation.
  Sollte in jedem Standard-Kernel bereits implementiert sein.
  (Bald allerdings nicht mehr -  ide-scsi-Emulation ist gerade dabei auszusterben)
 * cdrecord ([URL]http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html[/URL])
  Sollte bei den meisten Distris im cdrtools Paket enthalten sein.
 * mkisofs (sollte in cdrtools zu finden sein)
 * cdrdao ([URL]http://cdrdao.sourceforge.net/[/URL])
 * vcdimager ([URL]http://www.vcdimager.org/[/URL])
 * mp3burn
  Perl-Script zum on-the-fly Brennen von ogg/mp3-Files als CD-DA
  Die beste Version dieses Skriptes ist meiner Ansicht nach das der Debian-Distribution
  apt-get install mp3burn fuer Debian-User, alle anderen muessen suchen ;)
  (Warnung an gentoo-User: Das gentoo-mp3burn Script ist nicht halb so gut wie das Debian-Script)
 * vcdxgen/vcdxbuild
  Suche das Paket in deiner Distri, wo diese beiden Scripte enthalten sind -
  Ich hab grad leider keine Ahnung ;)


2. Kernel/Modul-Einstellungen
=============================
!-- veraltet -- bei ATAPI weiter lesen -- das hier nur benutzten, wenn ATAPI fehlschlaegt --!
Achtung: Dies ist jetzt auf 2.4er Kernel bezogen. Sowohl fuer den
2.4er Kernel als den 2.6er gilt, dass die ide-scsi-Emulation offiziell
veraltet ist. Sie ist jedoch nach wie vor die einfachste Moeglichkeit
CD-Brenner ans Laufen zu kriegen, da das direkte Brennen auf ATAPI-
Devices noch in den Kinderschuhen steckt.
Fuer den 2.4er Kernel testen, ob `modprobe ide-scsi' funktioniert.
Wenn ja, siehts schon mal gut aus.
Jetzt mit `cdrecord -scanbus' testen, ob dein Brenner bereits erkannt wird.
Wenn ja, dann kann der Rest uebersprungen werden. Du solltet nun nur noch
dafuer sorgen, dass das ide-scsi-Modul von nun an automatisch geladen wird.
Wie das funktioniert entnimmst du bitte den Docs zu deiner Distribution.
Fuer den Fall, dass das Laden von ide-scsi nicht ausreicht, musst du deine
Kernel-Parameter anpassen:
Fuer lilo-user in der append-Zeile der /etc/lilo.conf folgendes einfuegen:
hdX=ide-scsi <-- das X steht fuer das CD-Rom-LW, das scsi-emuliert werden soll.
Sollte die append Zeile kommentiert sein (mit einem # davor), dann
entkommentiere diese. Sollten dort bereits einer oder mehrere Parameter stehen,
dann lass die Finger davon und fuege einfach das hdX=ide-scsi mit einer
Leerstelle getrennt an:
append="irgendein=Parameter noch=einer hdX=ide-scsi hdY=ide-scsi"
Jetzt ist alles klar. Speichern, `lilo' ausfuehren, neu starten, cdrecord -scanbus.
Jetzt sollte alles gehen. Wenn nicht - Pech gehabt;) Wende dich an Comunities/
Newsgroups/Google.
GRUB-User muessen folgendes aendern:
In der /boot/grub/grub.conf die passende Kernel-Zeile raussuchen und
einfach mit einer Leerstelle getrennt hdX=ide-scsi anfuegen.
(mit X=a,b,c,d,... - was halt dein Brenner ist)
Jetzt auch speichern, neu starten, cdrecord -scanbus, beten.

Da jetzt alles klar sein sollte, fahren wir fort mit dem Brennen selbst.

ATAPI-Brennen:
Es ist seit laengerem auch moeglich direkt ueber den ATA-Bus zu brennen,
ohne scsi-Emulation. Dieser Weg ist offiziell der bessere, da die scsi-Emulation
immer eine Improvisation war.
Zunaechst checken, dass das ide-scsi Modul nicht geladen wurde.
# lsmod | grep ide-scsi
Bleibt die Ausgabe leer, wurde das Modul nicht geladen und wir koennen
fortfahren. Ist es geladen, muss es entladen werden --> # rmmod ide-scsi
Moeglicherweise ist ein Neustart erforderlich, du musst jedoch vorher sicher
gehen, dass das Modul nicht automatisch geladen wird. Wie das bei deiner
Distribution geht, entnimmst du bitte den Handbuechern/Docs/Howtos.
Da wir jetzt sicher sein koennen, dass der Brenner ueber IDE ansprechbar ist
machen wir einen scan:
# cdrecord dev=ATAPI -scanbus
Dies sollte gehen - wenn nicht hast du leider Pech gehabt.
Zum Brennen dann als device ATAPI:/dev/hdX oder ATAPI:x,y,z
wobei x,y,z aus dem scan zu entnehmen sind.
Dies geht leider nur mit cdrecord. cdrdao ist noch nicht in der Lage direkt
ueber ATAPI zu brennen, obwohl es auf die Bibliotheken von cdrecord
zugreift. Man kann entweder alle cdrdao-Images in isos umwandeln (s.u.)
oder auf die scsi-Emulation zurueckgreifen (s.o.), was sicher einfacher und
schneller geht. Aber auf lange (oder kurze) Sicht ist das ide-scsi-Modul dem
Untergang geweiht.


3. Formate
==========
Die Frage ist jetzt, was wollen wir brennen?
Im wesentlichen gibt es fuer CDs 3 Formate:
  (i) Daten
 (ii) Audio
(iii) (S)Video

(i) Daten liegen entweder in einem Verzeichnis zum Brennen oder in fertigen Images.
Fuer das Verzeichnis siehe Punkt 4
Fuer die Images ist wichtig zu wissen, um was fuer eines es sich handelt.
iso-Images erkennt man an der Endung iso - Siehe hierzu Punkt 4
cue/bin-Images sind so genannte RAW-Images. Erkennen kann man sie an
der cue-Datei. Dort ist beschrieben, wie das bin-Image gebrannt werden soll.
Die cue-Datei ist eine kleine Text-Datei und kann bei Bedarf editiert werden
Es ist auch moeglich, dass die bin-Datei auf img endet.
Auch toc/img toc/bin sind moeglich. Zu allen cues und tocs siehe Punkt 5 und 6.
(ii) Audio-CDs werden mit dem CD-DA (Compact Disc Digital Audio) Format gebrannt
Dazu benutzen wir cdrecord. Da fuer die meisten das direkte Brennen von
ogg/mp3-Dateien interessant sein duerfte, beschreibe ich diesen Vorgang genauer
unter Punkt 7.
(iii) (S)Video-CD erstellen wir, indem wir mit vcdimager ein toc/img-Image erstellen
und dieses dann mit cdrdao brennen. Hierzu siehe Punkt 5.


4. Daten-CDs
============
  (i) Daten auf der Platte
 (ii) Daten als iso
(iii) Daten als cue/bin, toc/img,.....

(i) Am einfachsten ist es, wenn man den Verzeichnisbaum, den man auf
die CD packen will genauso in einem Verzeichnis auf der Platte liegen hat.
Es ist auch moeglich mehrere Verzeichnisse, die ueber die Platte verstreut
liegen zu brennen, jedoch erfordert dies ein wenig Uebung.
Der Weg solche Daten zu brennen ist, (1) ein iso-Image daraus zu erstellen
und (2) das Image zu brennen.
Wir gehen jetzt davon aus, das alle Daten in /tmp/burn liegen, also /tmp/burn
das Wurzel-Verzeichnis der zukuenftigen CD sein wird.
Achtung: burn/ wird nicht mit auf der CD erscheinen!
Jetzt erstellen wir ein iso-Image, mit dem Rock Ridge Format, und weil wir nett
sind, auch als Joilet, da sonst die armen M$-User die CD nicht lesen koennen.
# mkisofs -r -J -o /tmp/meineCD.iso /temp/burn/
Jetzt muessen wir nur noch die CD brennen.
# cdrecord -v dev=x,y,z driveropts=burnfree speed=X -eject /tmp/meineCD.iso
Das -v steht fuer verbose, also ausfuehrlich, so dass wir sehen koennen, was passiert.
Bei dev=x,y,z traegst du ein, was sich bei `cdrecord -scanbus' fuer deinen Brenner
ergibt. (Meistens dev=0,0,0)
driveropts=blah,blub sind Anweisungen, die an den Treiber zum Brennen uebergeben
werden. burnfree steht fuer Burn-Proof, d.h. verhindern von Buffer-Underruns.
Eine Liste der moeglichen Treiber-Optionen bekommst du ueber:
# cdrecord dev=x,y,z driveropts=help -checkdrive
Jetzt mag sich mancher fragen, ob es notwendig ist, so lange zu warten und ob
man den Vorgang nicht abkuerzen kann, und diese Frage ist berechtigt:
Unter *nix steht uns ein maechtiges Werkzeug zur Verfuegung, die/das/kA Pipe (|)
Dadurch pipen wir Daten von einer Anwendung in die naechste hinein.
Bsp: `tail -n 400 /var/log/syslog | less -' <-- tail gibt uns die letzten 400 Zeilen des
syslogs und das less bekommt ueber die Pipe das, was es anzeigen soll.
Das - ist das Zeichen fuer less, dass es seine Infos ueber eine Pipe bekommt.
Genauso geht das mit mkisofs/cdrecord.
Der Befehl sieht dann so aus:
# mkisofs -r -J /tmp/burn | cdrecord -v dev=x,y,z driveropts=burnfree speed=X -eject -
Weitere nuetzliche Spielereien sind:
-overburn (falls du die CD ueberbrennen willst)
-dummy (mit abgeschaltetem Laser)
.... -- eine Liste aller Optionen mit `cdrecord --help'


5. (S)VCDs
==========
Ich gehe jetzt mal davon aus, dass die Video-Informationen in einer sauberen
mpeg-Datei vorliegen. Daraus erstellen wir jetzt ein Image und brennen dieses.
Hierbei steht uns leider keine Pipe zur Verfuegung.
Image erstellen:
# vcdxgen -l LABEL -t vcd2 -o /tmp/vcd.xml Film1.mpg Film2.mpg ......
Hier wird jetzt eine xml-Datei (/tmp/vcd.xml) erstellt, die Infos zum Image enthaelt.
Ausserdem haben wir noch den Namen LABEL fuer die CD ausgewaehlt.
Als Typ haben wir vcd2 (default). Erlaubt sind: vcd1, vcd2, svcd, hqvcd.
Fuer eine Liste aller moeglichen Einstellungen: `vcdxgen --help'
Nun erstellen wir das Image:
# vcdxbuild --cdrdao-file=/tmp/vcd /tmp/vcd.xml
Jetzt erstellt vcdxbuild ein cdrdao-kompatibles toc/img-Image in /tmp mit den
Einstellungen aus /tmp/vcd.xml.
Image brennen:
Cue/Bin, Toc/Img Images brennen wir mit cdrdao:
# cdrdao write --device x,y,z --driver mein-brenner-treiber:burnfree --speed X --eject /tmp/vcd.toc
write bedeutet schreiben ;) - benutze simulate, falls du nur testen willst.
--device x,y,z  ist das gleiche wie bei cdrecord - rausfinden mit `cdrdao scanbus'
--driver <Treiber>:<Treiber-Anweisungen>. Den Treiber deines Brenner suchst
du dir hier raus: [URL]http://cdrdao.sourceforge.net/drives.html[/URL]
!Das ist wichtig! Falscher Treiber --> geht nicht oder Rohling im *rsch.
Mit cdrdao gibt es z.Zt.  keine mir bekannte Moeglichkeit die Treiber-Anweisungen
rauszufinden. Mit `cdrecord dev=x,y,z driveropts=help -checkdrive' kommst du an die
passenden Anweisungen.
Der Rest sollte klar sein.
Beispiel:
# cdrdao write --device 0,0,0 --driver generic-mmc-raw:burnfree --speed 8 --eject /tmp/vcd.toc
Weitere nuetzliche Einstellungen sind:
--overburn - wenn du mehr als 702MB auf einen Rohling packen willst
(und weisst, was du tust)
Anmerkung:
vdxbuild ist ein Script, das auf vcdimager zurueckgreift.
vcdimager kann kleinere Fehler in mpg-Streams ausbuegeln, ist jedoch halbwegs
machtlos bei ernsteren Problemen.
Da hilft nur mit transcode o.ae. drueberbuegeln.


6. Cue/Bin Toc/Img
==================
Bin oder Img-Images sind so genannte RAW-Images (Roh-Abbilder), die mit Hilfe der
Informationen aus der Cue oder Toc-Datei im Disc-at-Ones Modus auf die CD
getoastet werden. Das vorgehen ist fuer Cue/Bin und Toc/Img gleich.
# cdrdao write --device x,y,z --driver mein-brenner-treiber:burnfree --speed X --eject <cue oder toc>
Hier ist eigentlich alles identisch zum Teil 5, also gucke bitte dort weiter.


7.  Ogg/Mp3 -> CDDA
===================
Mit dem Debian-Script mp3burn ist das eigentlich ein Kinderspiel
benutzt wird es so:
# mp3burn -o <cdrecord-Anweisungen> [-p Playlist|mucke1.mp3 mucke2.mp3 .....]
Also entweder eine Leerstellen-getrennte Liste der Mp3/Ogg Dateien oder
mit -p eine Playlist.
Beispiel:
# mp3burn -o "-v dev=0,0,0 driveropts=burnfree speed=8 -eject" -p /meine/Playlist.m3u
oder
# mp3burn -o "-v dev=0,0,0 driveropts=burnfree speed=8 -eject" lied1.mp3 lied2.mp3 lied3.mp3 ...
Das mp3burn Script sollte im Netz via Google zu finden sein (apt-get install mp3burn fuer
Debian-User)
Einfach irgendwo hinspeichern und hoffen, dass alle passenden Perl-Module installiert
sind. Wie du etwaige Probleme loest beschreibe ich vielleicht spaeter einmal hier.


8. Direkt-Kopie
===============
Kopieren im Raw-Modus geht sehr schoen mit cdrdao.
(i) on-the-fly:
Die Syntax ist:
# cdrdao copy --device x,y,z --driver <dein Brenner Treiber>:burnfree \
 --source-device a,b,c --source-driver <dein Lese-LW Treiber> \
 --speed X --eject --on-the-fly ;
--device, --driver, --source-device, --source-driver, --speed und --eject sollten
klar sein (siehe 5 und 6)
--on-the-fly bedeutet, dass die Daten von der Quell-CD direkt auf den Rohling fliessen,
ohne dass die ganze CD zwischengespeichert wird. Wenn die Quell-CD sauber ist
und dein Rechner schnell ist, sollte das kein Thema sein.
Wenn du kein on-the-fly willst und auf deinem jetzigen Dateiensystem
(da wo du gerade cdrdao ausfuehrst), kannst du mit --datafile <FILE> festlegen,
wo zwischengespeichert werden soll.
Weiter interessante Sachen sind --read-subchan rw_raw. Auf diese Weise lassen
sich von bestimmten CDs Sicherheitskopien anfertigen.
(ii) mit Hilfe eines Images:
Der Vorteil dieser Methode ist, dass uns mehr Optionen zum Auslesen der
Quell-CD zur Verfuegung stehen.
# cdrdao read-cd --device x,y,z --driver <treiber> --datafile <image-name>
Diese Optionen sollten klar sein.
Zusaetzlich kann man noch --read-raw und --read-subchan rw_raw anfuegen, wenn
man Probleme beim Erstellen einer Sicherheitskopie hat.
Ausserdem laesst sich bei wehrhaften AudioCDs mit --paranoia-mode [0..3] die
Vertraeglichkeit gegenueber Abweichungen vom CDDA-Format einstellen.
Ich selbst habe hiermit noch nicht so viele Erfahrungen gesammelt, aber du
kannst mir gerne deine uebermitteln.
Das erstellte Image laesst sich dann mit den oben genannten Methoden vertoasten.


9. Umgang mit Images
====================
  (i) isos
 (ii) cue/bin
(iii) andere Images

(i) isos enthalten ein gueltiges Dateiensystem, sind also ohne weiteres mountbar.
Das laesst sich auch sehr einfach bewerkstelligen:
# mount -o loop mein.iso /mein/mountpunkt
Jetzt kannst du ueber /mein/mountpunkt direkt auf das iso-Image zugreifen und auch
Aenderungen vornehmen, sofern die Rechte auf das iso richtig gesetzt sind und das
iso (rw) gemountet wurde. (read-write - nachgucken mit `mount')

(ii) cue/bin-Sheets sind leider ohne gueltiges Dateiensystem, da sie ein rohes Abbild
der CD darstellen. Daher muss aus dem cue/bin ein iso gemacht werden, dass sich dann
wie in (i) mounten und mit cdrecord brennen laesst.
Das Programm dazu heisst bin2iso und bekommt man hier:
[URL]http://users.andara.com/~doiron/bin2iso/[/URL]
Benutzt wird es einfach so:
# bin2iso <meine.cue>
Danach hat man ein brauchbares iso-Image vorliegen.
Eine andere schoene Sache an bin2iso ist, dass es cue-Files erzeugen kann, wenn diese
fehlen.
# bin2iso <neue.cue> -c <bin-ohne-cue.bin>
Ein weiteres Programm fuer cue/bin -> iso ist bchunk ([URL]http://hes.iki.fi/bchunk/[/URL])
# bchunk foo.bin foo.cue foo

(iii) Manchmal kommt es vor, dass man uns Linux-Usern Nero-Images anbieten will.
Zu erkennen sind diese an der Endung nrg. Dazu gibts das Tool nrg2iso
[URL]http://gregory.kokanosky.free.fr/v4/linux/nrg2iso.en.html[/URL]
# nrg2iso image.nrg neues-image.iso
Das wars.


10. Infos zum Tut/Verfasser
===========================
Changelog:
 * v 0.1 2004-01-04 19:00 - erste vorab-Version
 * v 0.2 2004-01-05 14:07 - hoffentlich alle Typos gefixed

Verfasser:
 Ulrich Jansen - the.last.eclipse(at)web(dot)de - [URL]http://black-star.homedns.org/projects/tuts/cdr-shell[/URL]

Alle gegebenen Hinweise/Tipps unter Vorbehalt und ohne Gewaehrleistung.
Der Verfasser ist nicht fuer verbrannte Rohlinge/CD-Brenner/Computer/Benutzer/.... haftbar zu machen ;)

Copyleft 2004 - Ulrich Jansen


__________________
vescere bracis meis

05.01.2004 14:41 Black Star ist offline E-Mail an Black Star senden Homepage von Black Star Beiträge von Black Star suchen
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
BlackBoard » Sonstiges » Bildung » [Linux] CDs brennen auf der Shell

Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH