- auto -- Autokonfiguration für live-build
- config -- Arbeitsverzeichnis von live-build
- variants -- verschiedene Varianten zum auswählen
- FSFW-Uni-Stick_Xfce_buster_amd64 -- aktuelle stabile Debian-Version
- doc -- ggf. spezielle Doku und Hinweise für diese Konfigurationsvariante
- paketlisten -- Paketlisten (symlink default => Hauptpaketliste)
- user-config -- Vorkonfiguration für Benutzer
- system-config -- live-build Konfiguration
- FSFW-Uni-Stick_Xfce_buster_amd64 -- aktuelle stabile Debian-Version
- doc
- latex-vorlagen -- Vorlagen für Latex (eigenes Repo)
- src -- markdown-Vorlagen für Erstellung der HTML Doku (.md wird auf github formatiert angezeigt)
- html -- hier befinden sich die erstellten Dokudateien
- iso-images -- hier landen die fertigen Boot-Images
- scripts -- diverse Skripte zum Erstellen des Sticks siehe scripts/README.md
Im Rahmen des Projektes FSFW-Uni-Stick gibt es zwei verschiedene Images
- das Linux-Live-Image als boot- & brennbare ISO; Ergebnis von
lb build
, z.B. FSFW-Uni-Stick_jessie-amd64.hybrid.iso - das Image des kompletten Sticks wird dann mit dem Skript stick-install.sh erstellt
- bis zu drei Partitionen:
- Live-System (ext4) mit Live-System.iso u ggf. weitere Tools wie memtest86+, Hardware Test (HDT) und super-grub2-disk
- Windows-Daten (FAT32) mit PortableApps-Sammlung hilfreicher Windows-Software
- Persistence-Daten (Nutzerdaten sowie Änderungen am System, zusätzliche Programme)
- Boot-Loader (GRUB), konfiguriert um die live.iso zu finden und zu starten
- kann in eine Datei oder direkt auf einen USB-Stick (z.B. /dev/sdb) geschrieben werden.
- bis zu drei Partitionen:
Wichtigste Komponente im Build-Prozess ist das Paket live-build
, außerdem werden weitere Pakete benötigt:
$ sudo apt-get update && sudo apt-get install live-build pandoc python3 perl sudo wget rsync
Herunterladen der benötigeten Dateien
$ git clone https://github.com/fsfw-dresden/usb-live-linux.git
$ cd usb-live-linux/
FSFW-Uni-Stick CD-Image bauen
$ scripts/build-live-system.sh
Dieses Skript führt im Wesentlichen folgende Schritte aus:
-
Arbeitsverzeichnis ggf. von Überresten des letzten Build-Prozesses befreien (siehe unten)
$ sudo lb clean
-
Paketlisten konvertieren, extra Pakete holen
$ scripts/md2paketliste
$ scripts/extra-install-paket.sh
-
FSFW Doku im HTML-Format erzeugen
$ scripts/copy-docs.sh
-
user config anpassen (optional)
$ scripts/prepare-home-skel.sh
-
Live-Image erstellen (kann 20 - 90 min dauern...)
$ sudo lb build
-
Status-, Warn- und Fehlermeldungen werden in
fsfw-build-script.log
gespeichert. -
Benutzerberechtigung ändern (bisher gehört die .iso-Datei root)
$ sudo chown ${USER}:${USER} FSFW-Uni-Stick_*.hybrid.iso
-
Image mittels kvm (Kernel-based Virtual Machine) bzw. qemu testen
$ kvm -m 2G -smp 3 -cdrom iso-images/FSFW-Uni-Stick_*.hybrid.iso
- Option -m (Speicher in MB, der vom Gastsystem benutzt wird) -- kann auch größer gewählt werden, je nachdem wieviel Arbeitsspeicher dein Rechner hat
-
Alternativ kann z.B. auch VirtualBox zum erzeugen einer Virtuellen Maschine genutzt werden
-
Arbeitsdaten wie chroot, binary bootstrap etc. löschen (heruntergeladene Pakete bleiben im "cache/packages./.deb" erhalten)
$ sudo lb clean
-
komplett aufräumen (auch *.deb Dateien löschen):
$ sudo lb clean --purge
-
Developing-CHECKLIST Liste mit Funktionen, die nach dem Bauen des Live-Images überprüft werden sollten.
- Diese Liste definiert (auszugsweise) das von uns gewünschte Verhalten
- Automatisierte Unittests wären deutlich eleganter sind aber technisch zu schwierig
-
README.md und andere Markdown-Dateien sollten vor dem Commit einer Vorschau unterzogen werden.
-
Hilfreiches Tool: grip
-
Installation:
sudo pip install grip