juribel schrieb:
Einziges Manko, aber dafür ist nicht remastersys verantwortlich sondern das verwendete Programm genisoimage. Dies erlaubt keine ISO-Dateien größer als ca. 4 GB.
Das ist vollkommener Quatsch, eine solche Begrenzung hat genisoimage
nicht. Außer du wendest es auf ein FAT32-Dateisystem an, dann liegt der Grund dafür aber weiterhin nicht bei genisoimage
.
harry1234 schrieb:
Habe gar nicht gewusst, dass es in diesem Bereich auch Unterschiede zwischen BIOS- und UEFI-Systemen gibt.
Naja, in der Erstellung des Systems an sich nicht, solange es nicht mit Secure Boot laufen muss. Aber beim Bootloader geht es dann schon los. 😉
Vorbereitung:
Debian (und somit auch Ubuntu) bringen bereits fertige Pakete mit, die das System "Live-tauglich" machen. Also das installierte System um diese ergänzen:
sudo apt install live-boot-initramfs-tools live-tools live-boot
anschließend das initramfs noch neubauen.
sudo update-initramfs -u
Den Paketcache leeren spart Platz beim Erstellen des Livesystems.
sudo apt-get clean
Dann ein Livesystem starten. Ist es ein Standard-Ubuntu müssen hier noch die universe
-Quellen freigeschaltet werden, bei allen offiziellen Derivaten fällt der Schritt weg, die beziehen ihre Oberflächen sämtlichst aus universe
und haben daher die Quelle schon freigeschaltet.
sudo bash -c 'echo -e "deb http://archive.ubuntu.com/ubuntu bionic universe\ndeb http://archive.ubuntu.com/ubuntu bionic-updates universe" >> /etc/apt/sources.list'
(das bezieht sich jetzt auf die von dir angegebene Version 18.04, ansonsten ist der Codename natürlich auszuwechseln, für 20.04 würde man also die bionic
-Bestandteile durch focal
ersetzen.)
und die Quellen neu einlesen
sudo apt update
danach noch isolinux, syslinux-utils und dvd+rw-tools installieren.
sudo apt install isolinux syslinux-utils dvd+rw-tools
Die Partition, die das System enthält, einhängen.
sudo mount /dev/sdxX /mnt
(sdxX ist natürlich durch die korrekte Bezeichnung zu ersetzen)
Werden mehrere Partitionen genutzt hängt man diese analog zu ihrem Einhängepunkt im installierten System unterhalb von /mnt
ein, also z.B. eine eigene Bootpartition auf /dev/sda2
mittels
sudo mount /dev/sda2 /mnt/boot
Dann die fstab des installierten Systems umbenennen
sudo mv /mnt/etc/fstab /mnt/etc/fstab.backup
und eine neue für das Livesystem erstellen
sudo bash -c 'echo -e "overlayfs / overlayfs rw 0 0\ntmpfs /tmp tmpfs nosuid,nodev 0 0" > /mnt/etc/fstab'
Dann auf dem gewünschten Zielpfad Verzeichnisse für das Livesystem und den Bootloader anlegen.
sudo mkdir -p /PFAD/ZUM/ZIEL/{isolinux,live}
Und schon kann man ein SquashFS erstellen, dass das installierte System beinhaltet.
sudo mksquashfs /mnt/. /PFAD/ZUM/ZIEL/live/filesystem.squashfs -comp xz
/PFAD/ZUM/ZIEL/
muss natürlich durch den gewünschten Zielpfad ersetzt werden, der Ordner live
bleibt so stehen, filesystem.squashfs
ist der Name der Datei, die erstellt wird und das SquashFS beinhaltet, -comp xz
ist die Komprimierung des SquashFS, in diesem Fall xz.
Die Erstellung dauert jetzt je nach Prozessor und RAM eine Weile. Nach dem Erstellen nicht vergessen, die fstab des installierten Systems wieder zurückzuspielen.
sudo mv /mnt/etc/fstab.backup /mnt/etc/fstab
Ist das erledigt kann das Verzeichnis des Bootloaders befüllt werden.
sudo cp /usr/lib/syslinux/modules/bios/*.c32 /PFAD/ZUM/ZIEL/isolinux/
sudo cp /usr/lib/ISOLINUX/isohdpfx.bin PFAD/ZUM/ZIEL/isolinux/
sudo cp /usr/lib/ISOLINUX/isolinux.bin PFAD/ZUM/ZIEL/isolinux/
Jetzt noch die Konfigurationsdatei für isolinux erstellen
bash -c 'echo -e "default menu.c32\nprompt 0\nmenu title ISOLINUX\ntimeout 100\nlabel default\nmenu label Ubuntu-Live\n \nkernel /vmlinuz\nappend initrd=/initrd boot=live" > /PFAD/ZUM/ZIEL/isolinux/isolinux.cfg'
Jetzt noch Kernel und Initramfs des installierten Systems in den Ordner live
kopieren.
sudo cp /mnt/boot/KERNEL /PFAD/ZUM/ZIEL/live/vmlinuz
sudo cp /mnt/boot/INITRD /PFAD/ZUM/ZIEL/live/initrd
Hier sind KERNEL und INITRD durch den gewünschte Kernel und initrd zu ersetzen (müssen beide die selbe Version haben. Also z.b.
sudo cp /mnt/boot/vmlinuz-5.4.0-26-generic /PFAD/ZUM/ZIEL/live/vmlinuz
sudo cp /mnt/boot/initrd.img-5.4.0-26-generic /PFAD/ZUM/ZIEL/live/initrd
Daraus kann man jetzt eine ISO-Datei erstellen, die bootfähig von einer DVD(9) ist.
Dazu wechselt man mit cd zum Zielpfad
cd /PFAD/ZUM/ZIEL
und führt durch:
sudo genisoimage -o Ubuntu-Live.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -r -V "Ubuntu-Live" -cache-inodes -J -l live
Es wird eine Datei namens Ubuntu-Live.iso
angelegt.
Da die ISO auch auf einem Stick bootbar sein soll setzt man isolinux da nochmal drauf an.
sudo isohybrid Ubuntu-Live.iso
Die fertige ISO kann dann z.B. mit dd (Abschnitt „Live-USB-Stick-erstellen“) oder cp (Abschnitt „Live-USB-Stick-erstellen“) auf einen USB-Stick gebracht werden.