[Zurück] [Home] [Weiter]         

Unix/Linux-Grundlagen
Tipps & Tricks

[.. 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:

mkisofs

(Make ISO Filesystem)
mkisofs erzeugt eine Imagedatei von einem Dateisystem (oder auch Verzeichnissen)

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.
Wesentlichster Unterschied ist eben die Erstellung einer Datei, die danach auf einen CD-Rohling "gebrannt" werden kann.

mount -o loop

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 :-)

[Zurück] [Home] [Weiter]