Linux remastern
Linux-Installation als Live-CD
ZIEL: Das aktuelle, auf Festplatte installierte Linux-Betriebssystem soll geklont und zu einem Live-Linux umgewandelt werden.
Siehe dazu:
Voraussetzungen:
Debian 9 (Stretch)
Software:
apt-get install git zip squashfs-tools genisoimage aufs-tools aufs-dkms
Sehr viel Speicherplatz auf /tmp
Wir prüfen letzteres nach:
$> df -h /tmp
Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
/dev/sda7 658M 1,4M 608M 1% /tmp
$>
Das ist viel zu wenig Platz!
Speicherplatz erweitern
Bei den Skripten von linux-live.org lässt sich zwar in der Datei ‚.config‘ der Speicherort für die letztendlichen Abbilddateien ändern, nicht aber der Ort für die temporären Zwischenergebnisse. Das Verzeichnis /tmp muss einfach eine Unmenge von Daten aufnehmen können.
Mittels des fest im Kernel intergrierten OverlayFS ist es aber relativ einfach, Anleihe an einer anderen, gemounteten Partition zu nehmen, wobei die Daten letztlich dort abgelegt werden, auch wenn sie unter /tmp erscheinen.
Wir sehen nach, welche Partitionen viel Platzreserven haben:
$> df -h
Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
udev 488M 0 488M 0% /dev
tmpfs 100M 4,3M 96M 5% /run
/dev/sda1 9,5G 1,3G 7,7G 15% /
tmpfs 499M 0 499M 0% /dev/shm
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 499M 0 499M 0% /sys/fs/cgroup
/dev/sda5 3,4G 238M 3,0G 8% /var
/dev/sda8 35G 49M 33G 1% /home
tmpfs 100M 0 100M 0% /run/user/0
tmpfs 100M 0 100M 0% /run/user/1000
/dev/sda7 658M 1,4M 608M 1% /tmp
$>
Gemäß der bei der Debian-Installation ausgewählten, automatischen Aufteilung der Festplatte ist unter ‚/home‘ eine Menge freier Speicherplatz vorhanden. Wir legen daher dort ein temoräres Verzeichnis an:
$> mkdir /home/tmp
Weiterhin benötigen wir ein Arbeitsverzeichnis für OverlayFS, das auf der selben, üppig bemessenen Partition liegen muss:
$> mkdir /home/work
Nun kann /tmp überlagert werden:
$> mount -t overlay -o lowerdir=/tmp,upperdir=/home/tmp,workdir=/home/work overlay /tmp
Wodurch wir jetzt genug Speicherplatz haben:
$> df -h /tmp
Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
overlay 35G 49M 33G 1% /tmp
$>
ACHTUNG: Nach einem späteren Neustart oder einem manuellen ‚umount /tmp‘ sind alle hinzugekommenen Daten nicht mehr unter /tmp sondern nur noch im Verzeichnis /home/tmp zu finden.
Nun kann es bequem im Verzeichnis /tmp losgehen, wobei alle Daten eigentlich im Verzeichnis /home/tmp landen.
Klonen des Git-Repositories:
$> cd /tmp
$> git clone https://github.com/Tomas-M/linux-live.git
Klone nach 'linux-live' ...
remote: Counting objects: 920, done.
remote: Total 920 (delta 0), reused 0 (delta 0), pack-reused 920
Empfange Objekte: 100% (920/920), 4.53 MiB | 2.89 MiB/s, Fertig.
Löse Unterschiede auf: 100% (451/451), Fertig.
$>
In das neue Skriptverzeichnis hineinwechseln und das Live-System bauen:
$> cd linux-live/
$> bash build
Changing current directory to /tmp/linux-live
Building intramfs image...
...
reating ISO file for CD boot...
Creating ZIP for USB boot...
adding: linux/ (stored 0%)
adding: linux/bin.sb (stored 0%)
adding: linux/opt.sb (stored 0%)
adding: linux/etc.sb (stored 0%)
...
adding: linux/srv.sb (stored 0%)
adding: readme.txt (stored 0%)
finished. Find your result in /tmp
$>
$> ls -lh /tmp/linux-x*
-rw-r--r-- 1 root root 384M Aug 21 16:09 /tmp/linux-x86_64.iso
-rw-r--r-- 1 root root 383M Aug 21 16:09 /tmp/linux-x86_64.zip
$>
Am Schluss haben wir zwei Images von unserem aktuellen System vorliegen, die ISO-Datei lässt sich am schnellsten in einer VM testen…