Ein Image (engl. “Bild, Abbild”) ist die Abbildung eines Filesystems in einer Datei. Auf CD-ROMs sind Daten in einem speziellen Dateisystem organisiert, das sich von den auf Festplatten verwendeten unterscheidet; daher kann man die Daten nicht einfach einzeln auf die Scheibe kopieren. Die Kommandos dd und mkisofs helfen beim Erstellen dieser Images, die sich anschließend probeweise mounten und auf eine CD brennen lassen.
Zu Befehl
Auch wenn sich viele Dinge bequem über grafische Oberflächen wie KDE oder GNOME regeln lassen – wer sein Linux-System richtig ausreizen möchte, kommt um die Kommandozeile nicht herum. Abgesehen davon gibt es auch sonst viele Situationen, in denen es gut ist, sich im Befehlszeilendschungel ein wenig auszukennen.
CD-Image auslesen
Eigentlich steht die Abkürzung des Programmes dd für “convert and copy” – cc ist allerdings schon für den C-Compiler vergeben. Das Tool überträgt Daten zwischen verschiedenen Speichermedien und führt auf Wunsch auch Konvertierungen der Daten durch. Dabei kopiert dd nicht nur einzelne Dateien, sondern kann auch direkt auf Devices zugreifen. So lassen sich neben ganzen Festplatten oder Partitionen auch CD-ROMs kopieren.
Die Optionen werden ohne vorangehenden Bindestrich übergeben. Es lassen sich die Blockgrößefür die Ein- und Ausgabedatei und die Anzahl der zu kopierenden Blöcke bestimmen. Den Boot-Sektor von der ersten Festplatte sichern Sie beispielsweise mit:
asteroid:~# dd if=/dev/hda of=bootsektor bs=512 count=1
Die Option if (“infile”) bestimmt die Eingabedatei (default ist die Standardeingabe); of (“outfile”) bezeichnet die Zieldatei. Mit dem Parameter bs (“blocksize”) geben Sie die Blockgröße an; count legt fest, wieviele Blöcke kopiert werden sollen. Im Klartext bedeutet der Aufruf also: Kopiere von der ersten IDE-Platte (/dev/hda) in eine Datei namens bootsektor den ersten Block (count=1), der 512 Bytes groß ist (bs=512).
Weitere Anwendungsmöglichkeiten sind z. B. das Erstellen einer Boot-Diskette, indem der Kernel (vmlinuz) auf eine Diskette kopiert wird:
asteroid:~# dd if=/vmlinuz of=/dev/fd0
Mit einer solchen Diskette lässt sich das Linux-System auch noch starten, nachdem eine spätere Windows-Installation den Boot-Sektor überschrieben hat. Der einfachste Weg zum Kopieren einer reinen Daten-CD ist:
asteroid:~# dd if=/dev/cdrom of=bla.iso 1349272+0 records in 1349272+0 records out
Hierfür muss die CD nicht gemountet sein – dd ist unabhängig von der Art der Daten auf der CD. Nur eine Audio-CD darf es nicht sein, Musik wird mit anderen Programmen ausgelesen (cdda2wav).
Mach Dir ein Bild!
Sollen Daten zunächst selbst gesammelt und dann auf eine CD geschrieben werden, muss aus diesen ein ISO-Image erstellt werden. Hier kommt das Kommando mkisofs (“make ISO9660 filesystem”) ins Spiel. Das Programm erzeugt eine Datei nach den ISO9660-Richtlinien.
Der einfache Aufruf, um Daten aus einem Verzeichnis in ein Image zu schreiben, lautet:
mkisofs [parameter] -o datei.iso /tmp/daten
Die Option -o bestimmt die Ausgabedatei, in die das Image geschrieben wird (hier datei.iso); gelesen wird aus /tmp/daten. Die gängigsten Parameter, die Sie immer wieder verwenden werden, sind -r und -J – Rockridge– und Joliet-Erweiterungen. So stellen Sie sicher, dass die CD auch unter Windows-Betriebssystemen gelesen werden kann. Statt der Option -r darf auch -R an dieser Stelle stehen. Hier wird ebenfalls Rockridge genutzt, aber Rechte und Dateieigentümer bleiben erhalten – die richtige Wahl also, wenn beispielsweise ein Backup eines /home-Verzeichnisses für den eigenen Rechner angelegt werden soll.
Boot-fähige CDs
Eine weitere wichtige Option ist -b zum Anlegen einer Boot-CD. Die Datei, welche durch -b spezifiziert wird, muss 1,2 MB, 1,44 MB oder 2,88 MB groß und das Image einer Bootdiskette sein – Voraussetzung ist natürlich, dass innerhalb der ersten 512 Bytes der Boot-Sektor liegt. Zusätzlich sollten Sie immer auch die Option -c verwenden, die relativ zum Root-Verzeichnis der CD eine (noch nicht vorhandene) Datei angibt, die als Boot-Katalog erzeugt wird, z. B. mkisofs -c images/boot.cat.
Mit der Option -V setzen Sie eine VolumeID, also den “Namen” der CD, z. B. -V "Backup vom 01. Dezember 2002". Typische LinuxUser-Heft-CD-Images werden beispielsweise mit der folgenden Befehlszeile erzeugt:
mkisofs -V "LU 01-2003" -J -r -P "Linux New Media" \ -b Boot/cdrom.img -c Boot/boot.cat \ -o lu-2003-01.iso lu01/
isolinux
Die Möglichkeiten, die ein 1,44 MByte großes Boot-Disk-Image bietet, sind beschränkt – sollen neben dem Kernel noch Module auf dieses Image, wird es eng. Eine Alternative bietet das Isolinux-System (http://syslinux.zytor.com/iso.php), das eine Weiterentwicklung des Boot-Loaders SysLinux für Disketten ist. Über eine Konfigurationsdatei kann ein beliebiger Kernel aktiviert werden, der auf dem CD-Dateisystem liegt. Auch RAM-Disks, die beim Linux-Start geladen werden sollen, lassen sich hier direkt von der CD laden. Das Boot-Menü von Isolinux wird über eine Konfigurationsdatei isolinux/islinux.cfg eingerichtet, in der (ähnlich wie in der LILO-Konfiguration) Abschnitte der Form
label linux kernel vmlinuz append initrd=disk.rdz ramdisk_size=32000 root=/dev/ram3 vga=788 automatic=method:cdrom
zu finden sind. Dabei liegen der Kernel vmlinuz und die RAM-Disk disk.rdz im Verzeichnis /isolinux der CD-ROM; es können auch Unterverzeichnisse von /isolinux verwendet werden.
Ein CD-Image mit Isolinux-Bootloader wird nun über den folgenden mkisofs-Aufruf erzeugt:
mkisofs -J -r -b isolinux/isolinux.bin \ -c isolinux/boot.cat \ -no-emul-boot -boot-load-size 4 \ -boot-info-table \ -o output.iso verzeichnis/
Auf der sicheren Seite
Bevor Sie das neue Image mit dem Programm Ihrer Wahl brennen (z. B. cdrecord oder X-CD-Roast), können Sie es auf eventuelle Fehler untersuchen. Mit dem Befehl mount lassen sich nicht nur Datenträger, wie z. B. Festplatten oder CDs, in das Linux-Dateisystem einbinden, sondern auch ISO-Images zur Verfügung stellen. Als Administrator root mounten Sie ein solches Image mit dem Aufruf:
asteroid:~# mount -o loop bla.iso /mnt/tmp/
Eventuell braucht das Kommando noch Hilfestellung bei der Wahl des Dateisystems; in diesem Fall fügen Sie eine weitere Option -t iso9660 hinzu. Das Image lässt sich mit dem Befehl umount /mnt/tmp wieder unmounten.
Glossar
-
Blockgröße
-
Ein Block ist eine fortlaufende Ansammlung von Bytes auf einem Datenträger. Bestimmte Geräte organisieren ihre Daten in diesen Blöcken (“block devices”), im Gegensatz zu anderen Geräten, die zeichenorientiert arbeiten (“character devices”) und bei denen jeweils einzelne Bytes gelesen oder geschrieben werden.
-
ISO
-
Linux unterstützt mehrere Typen von Dateisystemen. Dazu gehören nicht nur die eigenen, wie z. B. ext2, ext3 oder reiserfs, sondern auch vfat- und ntfs-Dateisysteme, wie sie unter Windows verwendet werden. ISO 9660, wie der komplette Name lautet, ist der Standard für die Verwaltung von Dateien auf CD-ROMs. Ursprünglich wurden nur kurze Dateinamen unterstützt; die Rockridge– und Joliet-Erweiterungen heben diese Beschränkung auf.
-
Rockridge
-
Die Rockridge Extensions erweitern das ISO-CD-Dateisystem um Unix-typische Dateiinformationen wie Besitzer und Gruppe, Zugriffsrechte (Lesen, Schreiben, Ausführen) und symbolische Links. Dadurch ist ein Kopieren von Daten aus einem Unix-Dateisystem auf eine CD ohne Informationsverlust möglich. Außerdem erlaubt Rockridge längere Dateinamen.
-
Joliet
-
Von Microsoft kommt eine alternative Erweiterung des ISO9660-Dateisystems namens Joliet, die ebenfalls lange Dateinamen zulässt.






Hier wird wieder mit viel Werbung auf der Seite um den heißen Brei geredet, aber einem nicht erklärt wie man aus einem Bootbaren DD Image wieder eine bootbare .iso Datei bekommt. Seher sehr schade ☹️, das wäre mal ein Artikel !
Das wäre ein sehr kurzer: Die per dd ausgelesene Datei ist das ISO-Image. Wenn es Dich glücklicher macht, kannst Du einfach die Endung “.iso” anhängen.
Sorry, das ist völliger Quatsch ! Man kann nicht einfach wie bei WINDOWS mal eben eine Dateiendung ändern und schon ändert sich das komplette Filesystem im File !
Das DD Image ist ein DD von einem alten bootbaren USB Stick mit einem mini Linuxsystem (kein GUI etc.)
Eine .iso ist aber ISO9660 Format oder ?
Nein, das ist kein Quatsch beziehungsweise Du wirfst da mehrere Dinge durcheinander – oder mir fehlen einfach Informationen, was Du genau erreichen willst. Aber nacheinander: Das Programm(!) dd liest einfach Bit für Bit einen Datenträger aus. Wenn Du also mit dd eine CD oder DVD in eine Datei schreibst, dann hast du ein exaktes Abbild dieser CD oder DVD. Die wiederum nutzt das ISO9660-Format, ergo handelt es sich bei der Datei um ein ISO-Image. Du kannst dieser Datei also gerne die Endung “.iso” geben, aber auch ohne die Endung ist es ein ISO-Image – das Du wieder auf eine CD… Mehr »