[.. manche Dinge sind so einfach und selbstverständlich, das es peinlich ist nach diesen zu fragen ..]
mkisofs, cdrecord und mount -o loop
Wir wollen uns ein ISO-Image erstellen und anschließend als virtuelles
Laufwerk nutzen.
Unter Windows benötigen Sie dazu mehrere Programme, wie Alkohol120%, Nero
Burning Rom, Clone-CD, o.ä. Unter Linux wird das alles mal wieder "mitgeliefert"
und ist verhältnismäßig einfach zu bedienen.
Schauen wir uns die Programme kurz an:
(Make ISO Filesystem)mkisofs [-Option] <Dateien> <Pfade>...
Beschreibung:
mkisofs wird verwendet, um eine Imagedatei zu generieren, die anschließend
mittels cdrecord auf einer CD gespeichert ("gebrannt") oder als LoopBack-Device
(unter Windows: virtuelles Laufwerk) eingebunden werden kann. Dabei unterstützt
mkisofs alle gängigen CD-Dateisysteme in vielen Varianten für Unix-,
Windows- und Apple-Computer. Auch das Erzeugen bootfähiger CDs und die
Möglichkeit, "Multisession-CDs" zu erstellen, wird unterstützt.
Im einfachsten Fall schreibt mkisofs seine Ausgaben in den Standard-Ausgabe-Kanal.
Um mit mkisofs zu arbeiten, sollten Sie kurz nachsehen, ob es auch installiert ist. Ein
antares:/# man mkisofs
oder
antares:/# mkisofs --help
wird uns zeigen, ob es vorhanden ist.
Die ManPage und auch die Hilfe zu mkisofs ist für jemanden, der mit dem CDR-Format nicht vertraut ist ziemlich erschlagend; soweit, das er geneigt ist "das Ganze einfach wieder zu vergessen" und sich lieber in seiner Windows-Umgebung seine Images umständlich erstellt.
Gut, wir wollen hier mal die Magie der Sache nehmen und das Geheimnis lüften, welche Optionsschalter für unsere Aufgabe reichen ;-)
antares:/# mkisofs ~ > /tmp/image.iso mkisofs: Symlink /.netscape/lock ignored - continuing. ... Using PPP_L000.;1 for /PPP-logfile (PPP-logfile-error) ... 83,43% done, estimate finish Mo Nov 21 10:10:36 2004 Total translation table size: 0 Total rockridge attributes bytes: 0 Total directory bytes: 345689 Path table size(bites): 2699 Max brk space used 86ba4 11081 extents written (24 Mb)
mkisofs kommentiert das (oft längere Zeit andauernde) Erstellen
der Imagedatei mit einer Schätzung der benötigten Zeit ("...
estimate finish ..."). Bei dem einfachen Befehlsaufruf werden symbolische
Links ignoriert und Dateinamen substituiert, die nicht den einfachen "8+3"-Regeln
(Nur Großbuchstaben, Namen aus acht Zeichen, einem Punkt, weiteren drei
Zeichen) entsprechen.
Durch diverse Optionen kann das Verhalten von mkisofs beeinflußt
werden.
Das Befehlszeilenargument <Dateien> bezeichnet eine oder mehrere
Dateien oder Verzeichnisse, die in einer Imagedatei enthalten sein sollen.
mkisofs verfügt über mehr als einhundert Optionen.
Die folgende Übersicht fasst daher nur die zusammen, die wir für unsere
Aufgabe benötigen.
-r (rational Rock Ridge directory information)
Für die Sicherung langer Dateinamen werden die "Rock Ridge Extensions" verwendet.
Dies ist unter Unix die übliche Art.
-U (Untranslated Filenames)
Deaktiviert alle Formen der Dateinamenkonvertierung. Die so erzeugten Dateisysteme
(Imagedateien) sind unter Linux besonders problemlos lesbar, bereiten aber auf
anderen Betriebssystemen voraussichtlich Schwierigkeiten.
Implizit werden die Optionen -relaxed-filenames, -allow-lowercase,
-L, -l, -N -d, -allow-multidot
und -no-iso-translat aktiviert.
Wollen wir nun ein CD-Image von einer CD erstellen, müssen wir diese mounten (Distributionsabhängig).
antares:/# mount /cdrom
Nun folgt der Befehl um eine einfache Kopie (vgl. auch dd (disk-dump)) der CD zu erstellen und im Image zu speichern:
antares:/# mkisofs -r -U /cdrom > /tmp/cd-image.iso
Dies ist übrigens keine RohDaten-Kopie der CD-R (binäres kopieren) sondern ein mit copy file zu vergleichendes Verfahren.Nicht nur zum Testen des Images sondern auch zum Bereitstellen von ISO-Images als "virtuelle" Geräte kann dann der folgende Befehl verwendet werden.
Erstellen wir uns dafür noch ein Verzeichnis:
antares:/# mkdir -p /mnt/iso/iso-01
(Der Schalter -p sorgt hier dafür, das fehlende Pfade mitangelegt werden)
Nun binden wir das Iso-Image als Loop-Back-Gerät in das neue Verzeichnis
ein:
antares:/# mount -t iso9660 -o loop /tmp/cd-image.iso /mnt/iso/iso-01
antares:/# ls -l /mnt/iso/iso-01
...
Fertig :-)