ISO-FS (CDROM-Dateisystem) erzeugen: mkisofs -o outputfile.iso -R path ... Schreibt Pfade path ... nach outputfile.iso. outputfile.iso kann anschlie�end z.B. loopback-gemounted werden (Dateisystemspez. "iso9660"). Weglassen von "-o outputfile.iso" => File geht nach stdout "-R" bewirkt, dass dem ISO-FS Metadaten nach dem Rock-Ridge-Standard hinuzgefuegt werden. Dies erm�glicht: - lange Dateinamen (ISO9660 unterst�tzt nur 8.3) - uid,gid,Rechtebits - Symlinks Mit "-R" werden uid,gid, Rechtebits 1:1 von den Quellfiles �bernommen. Mit "-r" statt "-R" werden die Dateien word-readable und mit uid, gid = 0,0 gespeichert (und noch einige andere Kleinigkeiten, siehe man mkisofs) Directories werden ins Root-Verz. des ISO-FS geschrieben, z.B.: mkisofs -o outputfile.iso -R /home/olaf/test/ => /home/olaf/test/ wird zum Root-Verz. des ISO-FS deshalb VARIATION: mkisofs -o outputfile.iso -R -graft-points test/=/home/olaf/test/ ... => Verz. /home/olaf/test/ wird nach /test ins ISO-FS kopiert zus. interessante Optionen (nicht getestet, siehe "man mkisofs"): -A <id> -- CD-Titel <id> -b <eltorito_boot_image> Image Bootf�hig machen, <eltorito_boot_image> bezeichnet ein 1.2- 1.44- oder 2.88-MB-Floppyimage (z.B. eine lilo-Bootfloppy) -C last_sess_start,next_sess_start Fuer Multi-Session-CDs (siehe Manpage) =========== cdrecord Schreiben eines ISO-Images auf eine CDRW cdrecord -v -speed=6 dev=0,1,0 -data image.iso Oder (Multi-Session, s.u.) cdrecord -v -speed=6 -multi dev=0,1,0 -data image.iso 0,1,0 ist die SCSI-ID des Brenners (s. /proc/scsi), -v = verbose, -speed=6 stellte 6fach-Brenngeschwindigkeit ein, -data (im Ggs. zu "-audio") sagt, dass ein Datentrack geschrieben werden soll, image.iso ist das zu schreibende Image. Die SCSI-ID kann alternativ auch in der Umgebungsvariable $CDR_DEVICE stehen. Ein *nix-artiger Ger�tetreiberstandard f�r CD-Brenner scheint nicht zu existieren; man muss dauernd direkt im Userspace mit diesen komischen SCSI-IDs herumhantieren. Und Brennprogramme (z.B. cdrecord) m�ssen mit UID 0 laufen. cdrecord baut folgerichtig alle Securitychecks, die normalerweise der Kernel macht, im Userspace nach (Test, ob die Real-UID des cdrecord-Prozesses die Erlaubnis hat, die iso-Files zu lesen). Generell: Eine CD enth�lt einen oder mehrere "Tracks". Dies k�nnen Daten- oder Audio-Tracks sein. Bei handels�blichen Audio-CDs ist jeder Titel ein Audio-Track. Anzeigen des "Inhaltsverzeichnisses" (Auflistung der Tracks) einer CD: cdrecord -toc dev=0,1,0 ungetestet: Schreiben von Audio-Tracks cdrecord speed=<number> dev=0,1,0 -audio file1.wav file2.wav ... (cdrecord erkennt die WAV-Files als solche (16bit/44.1kHz/stereo erforderlich) und extrahiert die reinen Audiodaten. Rohe Audio-Datenfiles ohne Header k�nnen auch �bergeben werden, s. Manpage. Jede Datei wird zu einem Audio-Track) ungetestet: Pipen von mkisofs nach cdrecord (keine Erzeugung einer isofs-Datei): mkisofs -R /master/tree | cdrecord -v fs=6m speed=2 dev=0,1,0 -data - fs=6m setzt die FIFO-Schreibqueue von 4 auf 6MB hoch, um Timing-Probleme zu verhindern. Bei viel Load oder langsamer Maschine sollte man den Weg �ber ein explizites iso-File w�hlen. Blanken (Loeschen aller Tracks) einer CD-RW: cdrecord blank=fast speed=4 dev=0,1,0 Multi-Session-CDs brennen: Option "-multi" fuer cdrecord brennt die Tracks so, dass sp�ter weitere Tracks angeh�ngt werden k�nnen. Eigentlich sollte man wohl immmer "-multi" verwenden, da damit keine Nachteile verbunden zu sein scheinen (die CDs sind trotzdem noch f�r CDROM/DVD-Laufwerke lesbar). TODO: Audio-CDs und Standalone-CD-Player testen. Z.B.: cdrecord -v -multi speed=6 dev=0,1,0 -data track1.iso Datentracks (ISO-Filesysteme), die in der 2ten,dritten,... Session gebrannt werden, m�ssen mit der mkisofs-Option "-C <n1,n2>" erstellt werden. <n1,n2> wird durch Aufruf von cdrecord -msinfo dev=0,1,0 gewonnen. Es werden zwei Zahlen (irgendwelche Sektornummern, siehe Manpage) ausgegeben, die mkisofs in das erzeugte Filesystems mit einpflegt. mkisofs ben�tigt zus�tzlich das in der vorherigen Session geschriebene ISO-FS, um das neue FS damit zusammenzuf�hren ("mergen") zu k�nnen. Z.B.: mkisofs -o track2.iso -R -C `cdrecord -msinfo dev=0,1,0` -M track1.iso -graft-points cvsroot/=/home/olaf/cvsroot test/=/home/olaf/test cdrecord -v -multi speed=6 dev=0,1,0 -data track2.iso Die Filesysteme track1.iso und track2.iso stehen jetzt "gemerged" auf der CD. Man kann bei -M auch direkt das Brennerdevice angeben (es wird dann der zuletzt geschriebene Track ausgelesen): mkisofs -o track3.iso -R -C `cdrecord -msinfo dev=0,1,0` -M 0,1,0 -graft-points wstk/=/home/olaf/wstk-2.4 cdrecord -v -multi speed=6 dev=0,1,0 -data track3.iso Die Filesysteme track1.iso, track2.iso und track3.iso stehen jetzt "gemerged" auf der CD. N�tzliche Option (ungetestet): -dummy Doku: The CD-Recorder will go through all steps of the recording process, but the laser is turned off during this procedure D.h. alle Probleme (incl. Timing, zu hohe Schreibgeschw., etc.) sollten auch hier auftreten, aber der Rohling wird nicht anger�hrt. =========== Tools: isoinfo -- Anschauen von ISO-Images/-Devices z.B.: isoinfo -J -l -i /dev/cdrw Inhalt von in /dev/cdrw eingelegter Joilet-CD listen isoinfo -R -l -i file.iso Inhalt von in file.iso befindlichem RockRidge-ISO-FS listen =========== TODO: cdrdao cdrdao disk-info --driver generic-mmc --device 0,1,0 ^^^^^^^^^^^^^^ --device bus,id,lun -- s. /proc/scsi CD kopieren (1:1, alle Tracks) von /dev/dvd.sg nach /dev/cdrw.sg (SCSI-Notation "x,x,x" von oben ist alternativ auch angebbar): cdrdao copy --source-device /dev/dvd.sg --device /dev/cdrw.sg --driver generic-mmc-raw --source-driver generic-mmc-raw --speed 6 (erzeugt zun�chst Imagedatei im aktuellen Verzeichnis, brennt dieses dann auf die Ziel-CD. Option "--on-the-fly" piped direkt, ohne Imagedatei)back to linux
(C) 1998-2017 Olaf Klischat <olaf.klischat@gmail.com>