Erstellung von bootfähigen Images bootstrap v1.2


Erstellung von bootfähigen Images bootstrap v1.2

Nach nur einem Monat der entspannten Entwicklung wurde die Version 1.2 von Boobstrap veröffentlicht – ein Toolkit auf POSIX-Shell zur Erstellung von Boot-Images und Speichermedien.

Boobstrap ermöglicht mit nur einem Befehl:

  • Ein initramfs-Image zu erstellen, das jede GNU/Linux-Distribution enthält.
  • Bootfähige ISO-Images mit jeder GNU/Linux-Distribution zu erstellen.
  • Bootfähige USB-, HDD-, SSD-Speichermedien mit jeder GNU/Linux-Distribution zu erstellen.

Das Besondere dabei ist, dass nach dem Booten GNU/Linux entweder vollständig im reinen tmpfs oder mithilfe von Overlay FS und SquashFS-Images läuft, je nach Ihrer Wahl. Sie installieren jede GNU/Linux-Distribution in ein Verzeichnis, nehmen alle erforderlichen Einstellungen vor (auch in einem separaten Verzeichnis möglich) und erstellen dann mit nur einem Befehl ein bootfähiges Medium, sei es ein ISO-Image, USB, HDD oder SSD, oder Sie können auch ein initrd-Image mit dem System erstellen. Das System befindet sich immer im gleichen Zustand, und im Falle eines Fehlers können Sie mit einem einzigen Druck auf die Reset-Taste in den Ursprungszustand zurückkehren. Möchten Sie das System auf einen anderen Host übertragen oder aus einem bestehenden Container ein System erstellen? Boobstrap erledigt das.

Die wichtigsten Änderungen:

  • Die Unterstützung des Bootloaders Syslinux wurde hinzugefügt, neben dem bereits vorhandenen Grub2. Jetzt können Sie wählen, ob Sie Grub2, Syslinux oder beides zusammen verwenden möchten, wenn Sie ein bootfähiges Gerät oder ein ISO-Image erstellen. Dafür sind die Optionen —legacy-boot syslinux und —efi grub2 zuständig, und es kann auch ausgewählt werden, welche Bootmodi das ISO-Image unterstützen soll.
  • Die Option —bootable wurde hinzugefügt, die jedes Blockgerät bootfähig macht. Für die Erstellung von ISO-Images muss die Option —iso-9660 verwendet werden.
  • Neue Kernel-Bootoptionen hinzugefügt: boobs.use-shmfs für das Kopieren des Inhalts aller Overlay-Dateisysteme nach tmpfs, boobs.use-overlayfs für das Booten mit Overlay FS, boobs.search-rootfs zur Auswahl der Quelle des Dateisystems und boobs.copy-to-ram zum Kopieren des Systems in den RAM mit anschließender Deaktivierung des Geräts.
  • Die einzige zwingende Abhängigkeit für den Betrieb von boobstrap ist lediglich cpio. Die anderen Abhängigkeiten sind optional: grub2 und syslinux sind notwendig zum Erstellen bootfähiger Medien, cdrkit oder xorriso nach Wahl zum Erstellen von ISO-Dateien und squashfs-tools für die Erstellung von SquashFS. Nichts hindert jedoch daran, die Option —cpio anstelle von —squashfs zu verwenden, um Ihre Distribution in ein Archiv zu verpacken. Busybox wird nur verwendet, wenn es installiert ist. Andernfalls werden alle erforderlichen Dienstprogramme aus Ihrem System kopiert. Dadurch ist der Betrieb von boobstrap praktisch überall garantiert.

Zum Beispiel erstellt der folgende Befehl ein initrd-Image, indem das gentoo-chroot/System als SquashFS-Image verpackt wird, das erfolgreich geladen wird, nachdem das eigentliche initrd geladen wurde. Ich erinnere daran, dass für die Verwendung von Overlay FS zusammen mit SquashFS die Option boobs.use-overlayfs an den Kernel übergeben werden muss, da das System andernfalls in tmpfs entpackt wird. Alle zusätzlichen Einstellungen können in einem separaten Verzeichnis, zum Beispiel gentoo-settings/, vorgenommen werden.

# mkdir initramfs/
# mkinitramfs initramfs/ —overlay gentoo-chroot/ —overlay gentoo-settings/ —squashfs > initrd

Das initrd-Image mit dem System darin ist praktisch, wenn Sie schnell ein System bereitstellen müssen, beispielsweise über PXE oder bei einem laufenden System zu initrd mit dem Befehl kexec -l /boot/vmlinuz-* —initrd=./initrd && kexec -e zu wechseln. Alternativ können Sie, während Sie sich in der QEMU-Umgebung (eventuell Proxmox) befinden, von einer entfernten Quelle starten, indem Sie drei IPXE-Befehle verwenden: kernel http://[…] /vmlinuz, initrd http://[…] /initrd, boot. Wie Sie sehen, hat selbst ein einfaches initrd mit Ihrem System viele Verwendungsmöglichkeiten.

Für die Erstellung von bootfähigen Speichermedien und -Images wird der Befehl mkbootisofs verwendet. So sieht beispielsweise die Erstellung eines ISO-Images mit der Option —iso-9660 unter Verwendung von syslinux für den Start im Legacy-Modus (BIOS) und grub2 für den Start im EFI-Modus (UEFI) aus.

# mkdir initrd/
# mkinitramfs initrd/ > initrd
# mkdir isoimage/
# mkdir isoimage/boot
# cp /boot/vmlinuz-* isoimage/boot/vmlinuz
# cp initrd isoimage/boot/initrd
# mkbootisofs isoimage/ —iso-9660 —legacy-boot syslinux —efi grub2 —output boot.iso
—overlay gentoo-chroot/ —overlay gentoo-settings/ —squashfs

Sie können einen der Boot-Modi angeben oder sie ganz weglassen, das entsprechende ISO-Image wird erfolgreich erstellt.

Die Installation auf ein beliebiges Speichermedium mit anschließendem Booten von diesem erfolgt mit der Option —bootable. Sie müssen die Partitionen auf dem Medium selbst erstellen (fdisk) und formatieren (mkdosfs, mke2fs usw.), bevor Sie das Gerät in ein Verzeichnis einhängen.

# mount /dev/sdb1 /mnt/drive/
# mkbootisofs /mnt/drive/ —bootable —legacy-boot grub2 —efi grub2
—overlay gentoo-chroot/ —overlay gentoo-settings/ —squashfs

Vorsicht! Die Option —bootable legt fest, von welchem Blockgerät das Verzeichnis gemountet wird und installiert den Bootloader in dieses Gerät. Wenn Sie vergessen, das Gerät zu mounten oder versehentlich ein Verzeichnis angeben, das sich zum Beispiel auf /dev/sda befindet, wird der Bootloader auf /dev/sda überschrieben. Verwenden Sie —bootable mit Vorsicht.

Die Installation eines beliebigen GNU/Linux-Systems reduziert sich auf nur einen Befehl. Die Installation kann auf jeder HDD, SSD usw. erfolgen. Es sei daran erinnert, dass es sich immer noch um ein System handelt, das aus Overlay FS / SquashFS arbeitet oder vollständig in tmpfs geladen wird, je nach Wahl.

Neben all dem bietet bootstrap eine Reihe interessanter Funktionen und zusätzlicher Möglichkeiten!

Zum Beispiel können Sie ein benutzerdefiniertes initrd mit dem Befehl mkinitramfs `mktemp -d` > /boot/initrd erstellen und Ihr System mit diesem initrd starten, indem Sie die Kernel-Optionen boobs.use-overlayfs und boobs.search-rootfs=/dev/sda1 angeben. In diesem Fall wird /dev/sda1, wo Ihr Home-System installiert ist, als schreibgeschützter Layer im Overlay FS eingebunden, und alle Änderungen, die Sie vornehmen, werden nur temporär in tmpfs gespeichert. Sie können die Option boobs.copy-to-ram hinzufügen, und dann wird Ihr gesamtes System in den RAM kopiert, sodass die Festplatte vom Computer getrennt werden kann. Das ist praktisch, wenn Sie etwas kaputt machen möchten, da Sie die Änderungen einfach durch einen Neustart zurücksetzen können. 🙂

Aber was, wenn Sie doch alle Änderungen im System speichern möchten? Zum Beispiel haben Sie Software oder etwas anderes installiert. Bei der Arbeit mit einem reinen tmpfs ist das leider nicht möglich, aber wenn Sie mit Overlay FS gebootet haben, werden alle Änderungen, die im System vorgenommen werden, in einem separaten tmpfs-Verzeichnis gespeichert: /mnt/overlayfs/rootfs-changes! Das Nutzungsszenario ist ganz einfach. Sie haben Ihr System von einem USB-Gerät gebootet, gearbeitet und möchten alles, was geändert wurde, speichern. Dann erstellen Sie ein cpio-Archiv und legen es ebenfalls auf dieses USB-Gerät.

# cd /mnt/overlayfs/rootfs-changes
# find . -print0 | cpio —create —format "newc" —null —quiet > /mnt/drive/rootfs-changes.cpio
# cd $OLDPWD

Sie können das Archiv neben anderen SquashFS- und cpio-Schichten ablegen. Bei einem späteren Bootvorgang wird das Archiv als einfach eine weitere Read-Only-Schicht eingebunden. Um mit den Änderungen weiterzuarbeiten, verwenden Sie die Boot-Option boobs.rootfs-changes=/rootfs-changes.cpio. Die Option boobs.rootfs-changes bindet die angegebene Schicht mit Änderungszugriff ein. Die Schicht kann ein Blockgerät sein; Sie können beispielsweise /dev/sdb1 angeben, dann werden alle Änderungen, die im Overlay FS vorgenommen wurden, einfach auf /dev/sdb1 gespeichert.

Trotz seiner umfangreichen Möglichkeiten befindet sich Boobstrap noch in der Entwicklungsphase. Alle Ihre Anmerkungen und Vorschläge werden berücksichtigt!

Quelle: linux.org.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster