Erstellung von bootfähigen Images mit bootstrap v1.0


Erstellung von bootfähigen Images mit bootstrap v1.0

Ich möchte Ihnen ein Framework namens boobstrap vorstellen, das in POSIX Shell geschrieben wurde und zur Erstellung von bootfähigen Images mit GNU/Linux-Distributionen dient. Das Framework ermöglicht es, den gesamten Prozess in drei einfachen Schritten zu durchlaufen: von der Bereitstellung des Systems in chroot über die Erstellung eines initramfs-Images, das das System aus chroot enthält, bis hin zur Erstellung eines bootfähigen ISO-Images. boobstrap umfasst drei Tools: mkbootstrap, mkinitramfs und mkbootisofs.

mkbootstrap installiert das System in ein separates Verzeichnis, es gibt native Unterstützung für CRUX, während für Arch Linux / Manjaro und Distributionen auf Debian-Basis entsprechende externe Tools wie pacstrap, basestrap und debootstrap verwendet werden müssen.

mkinitramfs erstellt ein initramfs-Image. Sie können das installierte System im Verzeichnis als "Overlay" verwenden, das mit SquashFS komprimiert ist, oder direkt im tmpfs arbeiten. Zum Beispiel wird der Befehl mkinitramfs `mktemp -d` —overlay "arch-chroot/" —overlay "/home" —squashfs-xz —output initrd eine initrd-Datei erstellen, die zwei Overlays mit dem "arch-chroot/"-System und Ihrem "/home" enthält, die mit SquashFS komprimiert sind. Diese können Sie dann über PXE in tmpfs laden oder ein bootfähiges ISO-Image mit diesem initrd erstellen.

mkbootisofs erstellt ein BIOS / UEFI bootfähiges ISO-Abbild aus dem angegebenen Verzeichnis. Legen Sie einfach /boot/vmlinuz und /boot/initrd in das Verzeichnis.

boobstrap verwendet busybox nicht und kopiert für die Erstellung einer funktionalen initramfs-Umgebung ein minimales Set von Programmen mit ldd, die für den Bootvorgang und den Wechsel ins System erforderlich sind. Die zu kopierenden Programme sowie alles andere können über die Konfigurationsdatei /etc/boobstrap/boobstrap.conf angepasst werden. Sie können auch eine beliebige minimalistische Distribution in ein separates chroot/ installieren, um dann eine vollständige initramfs-Umgebung zu erstellen. Für eine solche minimalistische, aber dennoch vollständige Umgebung wird die Vorlage „crux_gnulinux-embedded“ empfohlen, die nach xz kompakt 37 MB benötigt. busybox bietet darüber hinaus, abgesehen von seiner Größe (3-5 MB gegenüber 30-50 MB einer vollständigen GNU/Linux-Umgebung), keinen weiteren Vorteil, sodass der Einsatz von busybox im Projekt als nicht sinnvoll erscheint.

Wie kann man schnell die Funktionsfähigkeit überprüfen und mit der Arbeit beginnen? Installieren und starten Sie es.

# git clone https://github.com/sp00f1ng/boobstrap.git
# cd boobstrap
# make install# boobstrap/tests/crux_gnulinux-download-and-build
# qemu-system-x86_64 -enable-kvm -m 1G -cdrom tmp.*/install.iso

Sie müssen auch Abhängigkeiten installieren, nämlich: cpio, grub, grub-efi, dosfstools, xorriso. Die Verwendung von squashfs-tools ist nicht zwingend erforderlich; Sie können in tmpfs arbeiten, sofern genügend RAM vorhanden ist. Wenn im System etwas fehlt, wird boobstrap dies beim Start melden.

Um die Erstellung von Konfigurationen zu erleichtern, bietet boobstrap die Verwendung von „Vorlagen“ und „Systemen“ an. Dabei geht es darum, „Vorlagen“ (bootstrap-templates/) für die schnelle Installation von Systemen aus einer Datei zu nutzen, während „Systeme“ (bootstrap-systems/) für die Anpassung der endgültigen Konfigurationen verwendet werden.

So wird beispielsweise durch das Ausführen des Skripts boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild eine minimale Konfiguration des CRUX GNU/Linux-Systems installiert und in der Datei crux_gnulinux-embedded.rootfs gespeichert. Anschließend starten Sie boobstrap/bootstrap-systems/default/crux_gnulinux.bbuild, das die Primärkonfiguration aus der genannten Datei lädt, die erforderlichen Einstellungen vornimmt und das bootfähige ISO vorbereitet. Dies ist praktisch, wenn viele Systeme eine ähnliche Konfiguration verwenden: Um nicht jedes Mal denselben Satz von Paketen zu beschreiben, verwenden Sie eine Vorlage, auf deren Grundlage Sie bootfähige Abbildungen der Systeme mit der endgültigen Konfiguration erstellen.

Wo wird das alles verwendet?

Sie konfigurieren das System einmal in der Datei und führen es dann aus, um den Aufbau und/oder das Update durchzuführen. Das System läuft in tmpfs, was es im Grunde genommen einmalig macht. Im Falle eines Systemausfalls kehren Sie mit einem einfachen Druck auf die Reset-Taste in den Ausgangszustand zurück. Sie können ruhig rm -rf / ausführen.

Sie können die Konfigurationen all Ihrer Systeme lokal anpassen, Images erstellen, diese in einer virtuellen Maschine oder auf separater Hardware testen, anschließend auf einen Remote-Server hochladen und mit nur zwei Befehlen kexec -l /vmlinuz —initrd=/initrd && kexec -e das gesamte System aktualisieren und neu starten.

Auf ähnliche Weise können Sie alle Systeme, beispielsweise auf VDS, so konfigurieren, dass sie in tmpfs laufen, während die Festplatte /dev/vda verschlüsselt wird und nur für Daten verwendet wird, ohne die Notwendigkeit, das Betriebssystem darauf zu halten. Der einzige "Information Leakage Point" in diesem Fall wäre der "Cold Dump" des Speichers Ihrer virtuellen Maschine, und im Falle einer Systemkompromittierung (zum Beispiel durch Passwort-Knacken oder eine Schwachstelle in exim) können Sie ein neues ISO über die "Control Panel" Ihres Anbieters laden, um VDS wieder in Betrieb zu nehmen, wobei Sie die Systemkonfiguration bearbeiten und alle Schwachstellen schließen. Das ist schneller als eine Neuinstallation, gefolgt von einer anschließenden Konfiguration oder Wiederherstellung aus einem Backup, denn im Grunde genommen ist das heruntergeladene ISO mit Ihrem System Ihr Backup. "Sieben Plagen – ein Reset."

Letztendlich können Sie jede Distribution nach Ihren Bedürfnissen erstellen, sie auf einen USB-Stick schreiben und darin arbeiten, die Software nach Bedarf aktualisieren und sie erneut auf den USB-Stick übertragen. Alle Daten können in der Cloud gespeichert werden. Sie müssen sich nicht mehr um die Sicherheit des Systems kümmern oder Backups erstellen, da das System, nochmals, im Wesentlichen „einmalig“ geworden ist.

Ihre Wünsche, Vorschläge und Anmerkungen sind willkommen.

Im Repository finden Sie eine ausführliche README-Datei (in Englisch) mit der Beschreibung jeder Dienstprogramm und Beispielen zur Nutzung. Es gibt auch eine detaillierte Dokumentation auf Russisch und eine Entwicklungsgeschichte, die über den folgenden Link verfügbar sind: Eine Sammlung von Boot-Skripten boobstrap.

Quelle: linux.org.ru

Erwerben Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster