Bootstrap v1.0-Images erstellen


Bootstrap v1.0-Images erstellen

Ich möchte Ihnen ein Framework namens Boostrap vorstellen, das in der POSIX-Shell geschrieben ist und zum Erstellen von Boot-Images mit GNU/Linux-Distributionen dient. Mit dem Framework können Sie den gesamten Prozess in nur drei einfachen Schritten durchlaufen: von der Bereitstellung des Systems in einem Chroot über die Erstellung eines initramfs-Images, das das chrootete System enthält, bis hin zu einem bootfähigen ISO-Image. Boostrap enthält die drei Dienstprogramme mkbootstrap, mkinitramfs und mkbootisofs.

mkbootstrap installiert das System in einem separaten Verzeichnis, es gibt native Unterstützung für CRUX und im Fall von Arch Linux/Manjaro- und Debian-basierten Distributionen müssen die Drittanbieter-Dienstprogramme pacstrap, basestrap und debootstrap verwendet werden.

mkinitramfs erstellt ein initramfs-Image. Sie können das installierte System im Verzeichnis als „Overlay“ verwenden, mit SquashFS komprimieren oder nach dem Booten in das System direkt in tmpfs arbeiten. So erstellt beispielsweise der Befehl mkinitramfs `mktemp -d` --overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd eine initrd-Datei, einschließlich zwei Overlays mit "arch- chroot/“-System und Ihr „/home“, komprimiert mit SquashFS, das Sie dann über PXE in tmpfs booten können, oder ein bootfähiges ISO-Image mit dieser initrd erstellen können.

mkbootisofs erstellt ein BIOS/UEFI-bootfähiges ISO-Image aus dem angegebenen Verzeichnis. Legen Sie einfach /boot/vmlinuz und /boot/initrd im Verzeichnis ab.

Boostrap verwendet keine Busybox und um eine funktionierende Initramfs-Umgebung zu erstellen, wird ein minimaler Satz an Programmen mit LDD kopiert, der zum Booten und Wechseln zum System erforderlich ist. Die Liste der zu kopierenden Programme kann wie alles andere über die Konfigurationsdatei /etc/boobstrap/boobstrap.conf konfiguriert werden. Außerdem können Sie jede minimalistische Distribution in einem separaten chroot/ installieren, von dem aus Sie dann eine vollwertige initramfs-Umgebung erstellen können. Als solch eine minimalistische, aber gleichzeitig vollwertige Umgebung wird vorgeschlagen, die Vorlage „crux_gnulinux-embedded“ zu verwenden, die nach xz einen Kompromiss von 37 MB einnimmt. Busybox bietet neben seiner Größe (3-5 MB gegenüber 30-50 MB einer vollwertigen GNU/Linux-Umgebung) keine Vorteile mehr, sodass die Verwendung von Busybox in einem Projekt nicht angemessen erscheint.

Wie kann man schnell die Funktionalität überprüfen und loslegen? Installieren und ausführen.

# Git-Klon 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 erforderlich; Sie können in tmpfs mit der entsprechenden Menge RAM arbeiten. Wenn im System etwas fehlt, meldet Boostrap dies beim Start.

Um die Erstellung von Konfigurationen zu vereinfachen, schlägt Boostrap die Verwendung von „Vorlagen“ und „Systemen“ vor, deren Kern darin besteht, „Vorlagen“ (bootstrap-templates/) zu verwenden, um Systeme schnell aus einer Datei zu installieren, und „Systeme“ (bootstrap-templates/) direkt zu verwenden. systems/), die zum Einrichten endgültiger Konfigurationen verwendet werden.

Wenn Sie beispielsweise das Skript boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild ausführen, wird die Mindestkonfiguration des CRUX GNU/Linux-Systems installiert und in der Datei crux_gnulinux-embedded.rootfs gespeichert. Anschließend führen Sie boobstrap/bootstrap-systems aus /default/crux_gnulinux.bbuild, das die Primärkonfiguration aus der genannten Datei lädt, alle erforderlichen Konfigurationen vornimmt und eine bootfähige ISO vorbereitet. Dies ist praktisch, wenn beispielsweise viele Systeme denselben Konfigurationstyp verwenden: Um nicht jedes Mal denselben Paketsatz zu beschreiben, verwenden Sie eine Vorlage, auf deren Grundlage Sie Boot-Images von Systemen mit der endgültigen Konfiguration erstellen.

Wo kann ich das alles verwenden?

Sie konfigurieren das System einmal in einer Datei und indem Sie es ausführen, erstellen und/oder aktualisieren Sie es. Das System läuft in tmpfs und ist daher im Wesentlichen verfügbar. Wenn das System ausfällt, können Sie mit einem Klick auf die Schaltfläche „Zurücksetzen“ in den ursprünglichen Zustand zurückkehren. Sie können rm -rf / sicher ausführen.

Sie können die Konfigurationen aller Ihrer Systeme lokal konfigurieren, Images erstellen, sie in einer virtuellen Maschine oder separater Hardware testen, sie dann auf einen Remote-Server hochladen und nur zwei Befehle ausführen: kexec -l /vmlinuz –initrd=/initrd && kexec -e Um das gesamte System zu aktualisieren, starten Sie es in tmpfs neu.

Auf die gleiche Weise können Sie alle Systeme, beispielsweise auf VDS, für die Arbeit in tmpfs übertragen und die /dev/vda-Festplatte verschlüsseln und nur für Daten verwenden, ohne dass das Betriebssystem darauf belassen werden muss. Der einzige „Punkt des Informationslecks“ ist in diesem Fall nur der „Cold Dump“ des Speichers Ihrer virtuellen Maschine und im Falle einer Gefährdung des Systems (z. B. durch Erraten des SSH-Passworts oder einer Schwachstelle in Exim) können Sie über das „Control Panel“ Ihres Anbieters eine neue ISO herunterladen, um das VDS wieder in Betrieb zu nehmen, ohne zu vergessen, die Systemkonfiguration zu bearbeiten, um alle Schwachstellen zu schließen. Dies ist schneller als eine Neuinstallation, eine anschließende Konfiguration und/oder eine Wiederherstellung aus einem Backup, da im Wesentlichen die herunterladbare ISO Ihres Systems Ihr Backup ist. „Sieben Probleme – ein Reset.“

Am Ende können Sie eine beliebige Distribution für Ihre Bedürfnisse erstellen, sie auf ein USB-Laufwerk schreiben und darin arbeiten, sie bei Bedarf aktualisieren und erneut auf das USB-Laufwerk schreiben. Alle Daten werden in den Clouds gespeichert. Sie müssen sich keine Sorgen mehr um die Sicherheit des Systems machen und ein Backup erstellen, wenn das System, ich wiederhole es, im Wesentlichen „wegwerfbar“ geworden ist.

Ihre Wünsche, Anregungen und Kommentare sind willkommen.

Im Repository unter dem Link unten gibt es eine ausführliche README-Datei (auf Englisch) mit einer Beschreibung jedes Dienstprogramms und Anwendungsbeispielen. Außerdem gibt es eine detaillierte Dokumentation auf Russisch und einen Entwicklungsverlauf unter dem Link: Boobstrap-Boot-Skript-Komplex.

Source: linux.org.ru

Kommentar hinzufügen