Workshop zu den Linuxtagen Chemnitz 2016
Eigene Live-USB-Systeme erstellen mit Trick 17 (Referrent: Thomas Laube)
Aufzeichnung und Durchführungs-LOG des Workshops von mir.
Meine persönlichen Angaben zu Pfaden, devs, Labels, Einhängepunkte usw. sind entsprechend anzupassen. Ein Nachvollzug der Befehle erfolgt immer auf eigene Gefahr.
In einer virtuellen Maschine wird das System für den USB-Stick erstellt, erweitert, angepasst und konfiguriert. Mögliche Typen:
- VDI (Standardformat Virtualbox)
- VMDK (Standardformat VMWare)
- Qcow (Standardformat QEMU)
- VHD/VHDX (Standardformat Windows Virtual PC)
- HDD (Parallels)
Mein Beispiel (mit erfolgreichem Test):
- Host Ubuntu 14.0.3 AMD64 (Lenovo B5400)
- Gast Ubuntu 14.0.4 AMD64 in VDI (5.0)
- Ziel OZSTI037 (Intenso silber)
LiveUSBstick 00 Programminstallationen
HostSystem Ubuntu 14.04
# apt-get install \ squashfs-tools \ libguestfs-tools \ syslinux \ extlinux
VM Gast Ubuntu 14.04.4
# apt-get install \ live-boot \ live-boot-initramfs-tools \ squashfs-tools
LiveUSBstick 01 Stick
Stick muss eine Partition in ext4 besitzen, welche bootbar ist.
Achtung richtige /dev/sd… auswählen sonst Datenverlust!!!
gparted Programm starten
z. B. USB-Stick /dev/sdc bzw /dev/sdc1 /dev/sdc2 ... Aushängen alle Partitionen - Patition - Löschen Neue Partitionstabelle erstellen - Gerät - Partitionstabelle erstellen - MSDOS neue Partition erstellen Neu - ext4, primär Markierung bearbeiten boot Formatieren als ext4
Alle Schritte im Programm einzeln ausführen
Ermitteln der /dev
USB-Stick neu einstecken
- Aushängen
# umount /dev/sdc1
- Kontrolle dev
# fdisk -l
Bootloader von syslinux schreiben
# dd bs=440 count=1 if=/usr/lib/syslinux/mbr.bin of=/dev/sdc
Konsole Sticklabel setzen
# tune2fs -L OZSTI037 /dev/sdc1
LiveUSBstick 02 Vorbereitung in der VM
Entsprechendes System installieren/duplizieren. Mit Programmen ergänzen, Nutzer, Quellen, Daten anpassen und konfigurieren
- System in der VM aktualisieren
# apt-get update # apt-get upgrade
- Unnötige Teile löschen und entsorgen
- Programme
- Daten
- Cache, Papierkorb usw.
- alte Kernel
- Paketzwischenspeicher löschen
# apt-get clean
notwendige Programme installieren/überprüfen z. B. Gast Ubuntu 14.04.4
# apt-get install \ live-boot \ live-boot-initramfs-tools \ squashfs-tools
Initramfs neu bauen
# update-initramfs -u
LiveUSBstick 03 Vorbeitung im Host-System
- VM herunterfahren und ausschalten
- Erstellen Einhängepunkt für VM-Datei
# mkdir /home/olaf/Server/vm
- Einhängen der VM
# guestmount -a /home/olaf/VM/Ubuntu14044AMD64-003-KlonLTC/Ubuntu14044AMD64-003-KlonLTC.vdi -i /home/olaf/Server/vm
- Erstellen Verzeichnis für Arbeitskopie der VM
# mkdir /home/olaf/tmp
- Kopieren aller Dateien von VM-Verzeichnis nach Arbeitskopie
# cp -a /home/olaf/Server/vm/* /home/olaf/tmp/
- Aushängen der VM
# guestunmount /home/olaf/Server/vm
LiveUSBstick 04 Erstellung Live-System im Host
fstab für das Live-System erstellen
# joe /home/olaf/tmp/etc/fstab alten Inhalt löschen neuer Inhalt: overlayfs / overlayfs rw 0 0 tmpfs /tmp tmpfs nosuid,nodev 0 0
Squashfilesystem erstellen
# mksquashfs /home/olaf/tmp/. filesystem.squashfs -comp xz
ca. 15 min
LiveUSBstick 05 Erstellung Live-System auf Stick
USB-Stick neu einstecken
SYSLINUX installieren (4.0)
# mkdir -p /media/olaf/OZSTI037/boot/syslinux # extlinux --install /media/olaf/OZSTI037/boot/syslinux # cp -r /usr/lib/syslinux/*.c32 /media/olaf/OZSTI037/boot/syslinux/
Squashfilesystem auf den Stick kopieren
# mkdir -p /media/olaf/OZSTI037/live # cp filesystem.squashfs /media/olaf/OZSTI037/live/
Aktuellen Kernel auf den Stick kopieren und umbenennen
# cp /home/olaf/tmp/boot/vmlinuz-4.2.0-34-generic /media/olaf/OZSTI037/vmlinuz # cp /home/olaf/tmp/boot/initrd.img-4.2.0-34-generic /media/olaf/OZSTI037/initrd
Syslinux Konfigurationsdatei erstellen
# joe /media/olaf/OZSTI037/boot/syslinux/syslinux.cfg default menu.c32 prompt 0 menu title SYSLINUX timeout 100 label default menu label Livesystem Ubuntu 14.04.4 - Chemnitzer Linuxtage 2016 - 20.3.2016 kernel /vmlinuz append initrd=/initrd boot=live
Syslinux Konfigurationsdatei erweitern
gleicher Bau wie bisher
- Squashfilesystem nach /media/olaf/OZSTI037/live2 kopieren
- Aktuellen-Kernel nach /media/olaf/OZSTI037/*2 kopieren
# joe /media/olaf/OZSTI037/boot/syslinux/syslinux.cfg default menu.c32 prompt 0 menu title SYSLINUX timeout 100 label default menu label Livesystem Ubuntu 14.04.4 - Chemnitzer Linuxtage 2016 - 20.3.2016 kernel /vmlinuz append initrd=/initrd boot=live menu label Livesystem Ubuntu 14.04.4 - 2. System kernel /vmlinuz2 append initrd=/initrd2 boot=live2
LiveUSBstick 06 Nacharbeit
Löschen des Inhaltes der Arbeitsverzeichnisse
- /home/olaf/tmp/
# rm -r /home/olaf/tmp/*
Neue Rechte-Zuweisung
# chown olaf:olaf /home/olaf/tmp
Löschen des Squashfilesystem
- /root/filesystem.squashfs
# rm /root/filesystem.squashfs
Anmerkung: Befehle als root im Terminal
# ...
Links
https://chemnitzer.linux-tage.de/2016/de/programm/beitrag/393