====== mkisofs ====== * [[https://de.wikipedia.org/wiki/ISO_9660|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: [[https://en.wikipedia.org/wiki/Rock_Ridge|Rock Ridge]] - Erweiterung von ''ISO-9660'' für Unix-Derivate, es beherscht die Unix-typischen Unix-Dateirechte * 08. Juli 1994: [[https://de.wikipedia.org/wiki/Joliet_(Dateisystem)|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: [[https://de.wikipedia.org/wiki/El_Torito|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. * [[https://de.wikipedia.org/wiki/Universal_Disk_Format|Universal Disk Format]] - ''UFS'' ist der Nachfolger von ''ISO-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 ===== [[https://www.linuxforen.de/forums/showthread.php?205585-Bootf%E4higes-Image-des-Systems-erstellen]] ==== 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: * [[https://wiki.debian.org/genisoimage]] 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