Inhaltsverzeichnis
mkisofs
- ISO-9660 - international standardisiertes Dateisystem für optische Datenträger (z.B.: CD-ROM, DVD-ROM, Blu-ray Disc); Das Ziel dieser Norm ist die Unterstützung verschiedener Betriebssysteme wie z. B. Microsoft Windows, Mac OS und UNIX-Systeme, so dass Daten ausgetauscht werden können.
- 08. Juli 1994: Rock Ridge - Erweiterung von
ISO-9660für Unix-Derivate, es beherscht die Unix-typischen Unix-Dateirechte - 08. Juli 1994: Joliet - ist ein Standard von Microsoft; Es wurde nicht als Erweiterung des ISO-9660-Standards definiert, sondern basiert auf den Datenstrukturen von ISO 9660, die anders als im Standard interpretiert werden.
- Januar 1995: El Torito - Erweiterung von
ISO-9660, damit Computer (die dafür durch ein entsprechendes BIOS eingerichtet sind) direkt von CD-ROM starten können, ohne dass die vorherige Installation eines Betriebssystems auf dem Festplattenlaufwerk erforderlich ist.
- Universal Disk Format -
UFSist der Nachfolger vonISO-9660; Im Vergleich zu ISO 9660 fallen bei UDF einige Beschränkungen weg.
Image bauen
Die APPLICATION_ID ist der Name der CD/DVD (ISO-Image) und darf nicht länger als 128 Zeichen sein!
Das lässt sich so ganz einfach so sicherstellen:
# basename "${APPLICATION_ID}" | cut -c 1-128
simples Daten-Image
# mkisofs -U -r -input-charset iso8859-15 -o datenimage.iso /meine_dateien
simples Audio-Image
# mkisofs -U -r -input-charset iso8859-15 -pad -o audioimage.iso /meine_wav_dateien
ISO-Image auf FreeBSD erstellen
# mkisofs -D -U -R -nobak -A "${APPLICATION_ID}" -pad -input-charset utf8 -o datenimage.iso /meine_dateien
ISO-Image auf Solaris erstellen
# mkisofs -D -U -R -nobak -A "${APPLICATION_ID}" -pad -input-charset iso8859-15 -o datenimage.iso /meine_dateien
oder
# mkisofs -pad -hfs -joliet-long -r -relaxed-filenames -l -N -d -D -o datenimage.iso /meine_dateien
ISO-Image auf Linux erstellen
# mkisofs -D -U -R -nobak -A "${APPLICATION_ID}" -pad -input-charset UTF-8 -o datenimage.iso /meine_dateien
ISO-Images für den Windoofs-Emulator bauen
# mkisofs -D -U -R -J -joliet-long -l -nobak -A "${APPLICATION_ID}" -o windoofsimage.iso /windoofs_dateien
bootfähiges Image bauen
eine bootfähige EL Torito - CD mit mkisofs erstellen
siehe auch: https://www.pks.mpg.de/~mueller/docs/suse10.0/suselinux-manual_de/manual/sec.grub.bootcd.html
als erstes eine bootfähige CD (ich habe die Installations-CD für Ubuntu 18.04.1 LTS / Server / 64 Bit verwendet),
danach kann man den El Torito-Kode auslesen:
> apt install genisoimage > geteltorito /dev/cdrom > eltorito.img Booting catalog starts at sector: 193 Manufacturer of CD: Image architecture: x86 Boot media type is: no emulation El Torito image starts at sector 394922 and has 4 sector(s) of 512 Bytes Image has been written to stdout .... > ls -lha eltorito.img -rw-r--r-- 1 root root 2,0K Sep 19 18:12 eltorito.img
Jetzt haben wir die wichtigste Zutat, um eine bootfähige CD selber erstellen zu können.
Als nächstes erstellen wir uns einen Verzeichnisbaum, der die nötigen Dateien zum booten enthält:
> mkdir -p iso/boot/grub > cp eltorito.img iso/boot/grub > cp /boot/vmlinuz iso/boot/ > cp /boot/initrd iso/boot/ > cp /boot/message iso/boot/
Damit GRUB diese Dateien finden kann, kopieren Sie die Datei menu.lst nach iso/boot/ und ändern Sie darin die Angaben so, dass auf das CD-ROM-Gerät verwiesen wird. Hierzu ersetzen Sie die Gerätebezeichnung für die Festplatte (die in der Form (hd*) vor dem Pfad angegeben ist) durch eine Angabe zum CD-ROM-Laufwerk (cd):
> cp /boot/grub/menu.lst iso/boot/
> vi iso/boot/menu.lst
gfxmenu (cd)/boot/message
timeout 8
default 0
title Linux
kernel (cd)/boot/vmlinuz root=/dev/hda5 vga=794 resume=/dev/hda1 \
splash=verbose showopts
initrd (cd)/boot/initrd
Abschließend legen Sie mit dem folgenden Befehl ein ISO-Image an:
> mkisofs -R -b boot/grub/eltorito.img -no-emul-boot -boot-load-size 4 -boot-info-table -o boot_cd.iso iso
eine bootfähige CD mit xorriso erstellen
siehe auch:
Der Klassiker für die Erstellung von ISO 9660-Images ist das Programm mkisofs. Aus Gründen der Lizenzierung und anderer Probleme mit seinem Autor, stellt Debian einen Fork von mkisofs mit dem Namen genisoimage bereit, diese Abspaltung erfolgte 2006 und wurde dann unabhängig weiterentwickelt. Genisoimage bekommt mittlerweile keine neuen Funktionen und auch keine Bugfixes mehr. Man sollte es nur noch verwenden, wenn die Optionen -udf oder -hfs benötigt werden. In den meisten Anwendungsfällen, insbesondere bei bootfähigen ISO 9660-Dateisystemen, Archivierung und Sicherung, ersetzt xorrisofs die vorgenannten Programme durch xorriso.
> genisoimage -v -J -r -V MY_DISK_LABEL -o /home/user/file.iso /home/user/for_iso > xorrisofs -v -J -r -V MY_DISK_LABEL -o /home/user/file.iso /home/user/for_iso
