Nach einem Monat langsame Entwicklung wurde die Veröffentlichung von boobstrap v1.2 realisiert â ein Toolkit auf POSIX-Shell fĂŒr die Erstellung von Boot-Images und Speichermedien.
Boobstrap ermöglicht es 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-Medien mit jeder GNU/Linux-Distribution zu erstellen.
Das Besondere ist, dass nach dem Booten GNU/Linux entweder vollstĂ€ndig in einem reinen tmpfs lĂ€uft oder mit Overlay FS und SquashFS-Images genutzt werden kann, ganz nach Ihrer Wahl. Sie installieren jede GNU/Linux-Distribution in ein Verzeichnis, nehmen alle notwendigen Einstellungen vor (auch in einem separaten Verzeichnis), und erstellen dann mit nur einem Befehl ein bootfĂ€higes Medium, sei es ein ISO-Image, USB, HDD, 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 Ausfalls können Sie mit einem einzigen Druck auf die Reset-Taste zum ursprĂŒnglichen Zustand zurĂŒckkehren. Möchten Sie das System auf einen anderen Host ĂŒbertragen oder aus einem vorhandenen Container ein System erstellen? Boobstrap erledigt das.
Zu den wichtigsten Ănderungen gehören:
- Die UnterstĂŒtzung des Bootloaders syslinux wurde hinzugefĂŒgt, neben dem bereits vorhandenen grub2. Jetzt können Sie entweder grub2, syslinux oder beides verwenden, wenn Sie ein bootfĂ€higes Medium oder ein ISO-Image erstellen, wobei die Optionen âlegacy-boot fĂŒr syslinux und âefi fĂŒr grub2 verantwortlich sind. Sie können auch auswĂ€hlen, welche Bootmodi das ISO-Image unterstĂŒtzen wird.
- 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.
- Es wurden Boot-Optionen fĂŒr den Kernel hinzugefĂŒgt: boobs.use-shmfs zum Kopieren des Inhalts aller Overlay in tmpfs, boobs.use-overlayfs zum Booten mit Overlay FS, boobs.search-rootfs zur Auswahl der Quelle mit dem System, boobs.copy-to-ram zum Kopieren des Systems ins RAM mit anschlieĂendem deaktivieren des GerĂ€ts.
- Die einzige zwingende AbhĂ€ngigkeit fĂŒr die Verwendung von boobstrap ist cpio. Die anderen AbhĂ€ngigkeiten sind optional: grub2, syslinux â erforderlich fĂŒr die Erstellung von Bootmedien, cdrkit oder xorriso zur Auswahl â zur Erstellung von ISO, squashfs-tools zur Erstellung von SquashFS. Nichts hindert jedoch daran, die Option âcpio anstelle von âsquashfs zur Verpackung Ihrer Distribution in ein Archiv zu verwenden. busybox wird nur verwendet, wenn es installiert ist, andernfalls werden alle erforderlichen Utilities aus Ihrem System kopiert. Somit ist die Verwendung von boobstrap nahezu ĂŒberall garantiert.
Zum Beispiel erzeugt der folgende Befehl ein initrd-Image, das das gentoo-chroot/ System enthĂ€lt, das als SquashFS-Image verpackt ist und nach dem Booten des initrd erfolgreich geladen wird. Ich erinnere daran, dass zur Verwendung von Overlay FS zusammen mit SquashFS die Option boobs.use-overlayfs an den Kernel ĂŒbergeben werden muss, andernfalls wird das System in tmpfs entpackt. Alle zusĂ€tzlichen Einstellungen können in einem separaten Verzeichnis, z.B. gentoo-settings/, vorgenommen werden.
# mkdir initramfs/
# mkinitramfs initramfs/ âoverlay gentoo-chroot/ âoverlay gentoo-settings/ âsquashfs > initrd
Ein initrd-Image mit dem System darin ist praktisch, wenn das System schnell bereitgestellt werden muss, z.B. ĂŒber PXE, oder wenn man auf einem laufenden System mit dem Befehl kexec -l /boot/vmlinuz-* âinitrd=./initrd && kexec -e ins initrd wechseln möchte. Alternativ kann man im Interface einer virtuellen Maschine wie QEMU (möglicherweise sogar Proxmox) von einer Remote-Quelle mit drei IPXE-Befehlen booten: kernel http://[âŠ] /vmlinuz, initrd http://[âŠ] /initrd, boot. Wie Sie sehen, hat selbst ein einfaches initrd mit Ihrem System zahlreiche Anwendungsmöglichkeiten.
Zur Erstellung von Bootmedien und -images wird der Befehl mkbootisofs verwendet. So sieht beispielsweise die Erstellung eines ISO-Images mit der Option âiso-9660 aus, wobei syslinux fĂŒr das Booten im Legacy-Modus (BIOS) und grub2 fĂŒr das Booten im EFI-Modus (UEFI) verwendet wird.
# 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 Bootmodus auswÀhlen oder sie ganz weglassen. Das entsprechende ISO-Image wird erfolgreich erstellt.
Die Installation auf einem beliebigen SpeichergerĂ€t mit anschlieĂender Bootmöglichkeit erfolgt mit der Option âbootable. Sie mĂŒssen selbst die Partitionen auf dem SpeichergerĂ€t erstellen (fdisk) und diese formatieren (mkdosfs, mke2fs usw.), bevor Sie das GerĂ€t im 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 bestimmt, von welchem BlockgerĂ€t das Verzeichnis gemountet ist, und installiert den Bootloader auf diesem GerĂ€t. Wenn Sie vergessen, das GerĂ€t zu mounten oder versehentlich ein Verzeichnis angeben, das sich beispielsweise auf /dev/sda befindet, wird der Bootloader auf /dev/sda ĂŒberschrieben. Verwenden Sie âbootable mit Vorsicht.
Die Installation eines beliebigen GNU/Linux-Systems erfolgt mit nur einem Befehl. Die Installation kann auf jeder HDD, SSD usw. erfolgen. Es sei daran erinnert, dass dies nach wie vor ein System ist, das aus Overlay FS / SquashFS arbeitet oder vollstÀndig in tmpfs geladen wird, je nach Wahl.
Abgesehen von allem hat boobstrap eine Reihe von interessanten Merkmalen und zusÀtzlichen Möglichkeiten!
Zum Beispiel können Sie ein benutzerdefiniertes boobstrap initrd mit dem Befehl mkinitramfs `mktemp -d` > /boot/initrd erstellen und in Ihr System mit diesem initrd booten, indem Sie die Kernel-Optionen boobs.use-overlayfs boobs.search-rootfs=/dev/sda1 angeben. In diesem Fall wird /dev/sda1, wo Ihr Hauptsystem installiert ist, als Read-Only-Schicht des Overlay FS eingebunden, und alle Ănderungen, die Sie vornehmen, werden nur vorĂŒbergehend 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. Praktisch, wenn Sie etwas kaputt machen mĂŒssen, da Ănderungen einfach durch einen Neustart rĂŒckgĂ€ngig gemacht werden können. đ
Was ist aber, wenn Sie dennoch alle Ănderungen im System speichern mĂŒssen? Zum Beispiel, wenn Sie Software oder etwas anderes installiert haben. Bei der Arbeit in reinem tmpfs ist das leider unmöglich, aber wenn Sie mit Overlay FS gebootet haben, werden alle Ănderungen, die im System erfolgen, in einem separaten tmpfs-Verzeichnis gespeichert: /mnt/overlayfs/rootfs-changes! Das Nutzungsszenario ist sehr einfach. Sie haben Ihr System von einem USB-GerĂ€t gebootet, gearbeitet und wollten alles, was geĂ€ndert wurde, speichern, dann erstellen Sie ein cpio-Archiv und legen es hier auf dasselbe USB-GerĂ€t ab.
# 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, sodass es beim nĂ€chsten Booten einfach als weitere schreibgeschĂŒtzte Schicht eingebunden wird. Um mit Ănderungen fortzufahren, verwenden Sie die Boot-Option boobs.rootfs-changes=\/rootfs-changes.cpio. Die Option boobs.rootfs-changes bindet die angegebene Schicht mit Ănderungszugriff ein. Eine Schicht kann ein BlockgerĂ€t sein; beispielsweise können Sie\/dev\/sdb1 angeben, sodass alle in Overlay FS vorgenommenen Ănderungen einfach auf\/dev\/sdb1 gespeichert werden.
Boobstrap befindet sich trotz seiner umfangreichen Möglichkeiten immer noch in der Entwicklungsphase; Ihre Anmerkungen und VorschlĂ€ge werden berĂŒcksichtigt!
Quelle: linux.org.ru

