individuelles Ubuntu-Live erstellen

  1. System installieren:
    Es werden sowohl das 32bit- wie auch das 64bit-Image benötigt.
    Download unter: http://www.ubuntu.com

    • ubuntu 16.04 (32bit) installieren (Achtung, ubuntu und nicht xubuntu oder kubuntu nehmen!)
    • zusätzliche Pakete einspielen:
      sudo apt-get install build-essential debootstrap squashfs-tools genisoimage syslinux-common syslinux-utils
  2. Verzeichnisse erstellen
    • mkdir iso
    • mkdir iso/casper
  3. Boot-Dateien kopieren
    • Das Image (32bit) mounten und die Ordner .disk und isolinux nach iso kopieren.
    • Vom 64bit-Image den Ordner EFI und boot nach iso kopieren, damit auch bei eingeschaltetem UEFI gebootet werden kann.
  4. Grundsystem erstellen
    sudo debootstrap --arch i386 xenial squashfs
  5. Script, um Änderungen hinzuzufügen:
    #!/bin/bash
    sudo mount --bind /dev squashfs/dev
    sudo mount -t devpts devpts squashfs/dev/pts
    sudo mount -t proc proc squashfs/proc
    sudo mount -t sysfs sysfs squashfs/sys
    sudo cp /etc/resolv.conf squashfs/etc/
    sudo cp /etc/apt/sources.list squashfs/etc/apt/
    
  6. Quellen aktualisieren
    sudo chroot squashfs apt update
  7. Grundpakete installieren
    sudo chroot squashfs apt install linux-image-generic language-pack-de tzdata console-setup casper ubiquity-casper lupin-casper
    sudo chroot squashfs apt install --no-install-recommends ubuntu-desktop
    sudo chroot squashfs apt install firefox-locale-de hyphen-de hunspell-de-ch thunderbird-locale-de hunspell-de-at hunspell-de-de libreoffice-help-de libreoffice-l10n-de wswiss wogerman wngerman mythes-de-ch language-pack-gnome-de mythes-de

    Der Wert –no-install-recommends bewirkt, dass nur die nötigsten Pakete und nicht die ganze Desktopumgebung installiert wird.

  8. Bootloader anpassen
    • Alle Dateien im Ordner iso/isolinux löschen, außer alle mit der Endung .c32
    • In diesem Ordner eine Datei mit dem Namen isolinux.cfg und folgendem Inhalt erstellen:
      default vesamenu.c32
      menu background splash.jpg
      menu title Live-System auf Basis von Ubuntu 16.04
      label linux
      menu label Live-System starten
      kernel /casper/vmlinuz
      append BOOT_IMAGE=/casper/vmlinuz boot=casper initrd=/casper/initrd.lz quiet splash -- debian-installer/language=de console-setup/layoutcode?=de
      
    • Im Ordner boot/grub die Datei grub.cfg anpassen
      menuentry "Live-System starten" {
       set gfxpayload=kkep
       linux /casper/vmlinuz file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash --- debian-installer/language=de concole-setup/layoutcode?=de desktop=xubuntu
       initrd /casper/initrd.lz
  9. Script um Änderungen abzuschließen und ein ISO zu erzeugen
    #!/bin/bash
    sudo chroot squashfs update-initramfs -k all -c
    sudo zcat squashfs/boot/initrd.img* | lzma -9c > iso/casper/initrd.lz
    sudo cp squashfs/boot/vmlinuz* iso/casper/vmlinuz
    sudo umount squashfs/dev/pts squashfs/dev squashfs/proc squashfs/sys
    sudo mksquashfs squashfs iso/casper/filesystem.squashfs -noappend
    sudo genisoimage -cache-inodes -r -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o live.iso -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot iso
    sudo isohybrid -u live.iso
  10. Änderungen am Live-System werden in der Konsole in einer chroot-Umgebung ausgeführt:
    sudo chroot squashfs /bin/bash

    • Installation von Paketen mittels apt install
    • Löschen von Paketen mit apt remove
    • Fremdpakete müssen per sudo cp paket.deb /squashfs kopiert und dann mit dpkg -i paket.deb installiert werden.
      Fehlerhafte Abhängigkeiten korrigiert man mit apt -f install
  11. Amazon entfernen
    • rm /usr/share/applications/ubuntu-amazon-default.desktop
    • gsettings set com.canonical.Unity.Lenses disabled-scopes "['more_suggestions-amazon.scope', 'more_suggestions-u1ms.scope', 'more_suggestions-populartracks.scope', 'music-musicstore.scope', 'more_suggestions-ebay.scope', 'more_suggestions-ubuntushop.scope', 'more_suggestions-skimlinks.scope']"
  12. Wer den Unitiy-Desktop nicht mag, kann einfach zum Beispiel xfce installieren
    • apt install --no-install-recommends xubuntu-desktop
      Damit auch dieser Desktop gestartet wird, ergänzt man die Datei isolinux.cfg nach layoutcode?=de um den Parameter desktop=xubuntu
  13. Individuelle Einstellungen am Desktop kopiert man aus dem installierten System in den Ordner squashfs/etc/skel
  14. Benutzer-Gruppen-Zuordnung
    useradd -m -s /bin/bash username
    gpasswd -a username gruppe
  15. Damit das System beim booten ohne Netzwerk nicht 5 min wartet wird in der Datei /lib/systemd/system/networking.service der Wert unter TimeoutStartSec einfach auf 30sec herabgesetzt.
  16. Vor Änderungen am Live-System muss man das Script unter Punkt 5 aufrufen.

Links zum Thema:

  • https://www.hiroom2.com/2016/06/10/ubuntu-16-04-create-customized-livedvd/
  • https://www.915tx.com/remaster/