Bootstrap v1.2-Images erstellen


Bootstrap v1.2-Images erstellen

Nach nur einen Monat Nach langsamer Entwicklung wurde Boostrap v1.2 veröffentlicht – eine Reihe von Tools auf der POSIX-Shell zum Erstellen von Boot-Images und Laufwerken.

Mit Boobstrap können Sie nur einen Befehl ausführen:

  • Erstellen Sie ein initramfs-Image, einschließlich aller darin enthaltenen GNU/Linux-Distributionen.
  • Erstellen Sie bootfähige ISO-Images mit jeder GNU/Linux-Distribution.
  • Erstellen Sie bootfähige USB-, Festplatten- und SSD-Laufwerke mit jeder GNU/Linux-Distribution.

Die Besonderheit besteht darin, dass GNU/Linux nach dem Laden entweder vollständig in reinen tmpfs oder mit Overlay-FS- und SquashFS-Images Ihrer Wahl funktioniert. Sie installieren eine beliebige GNU/Linux-Distribution in einem Verzeichnis, nehmen alle notwendigen Einstellungen vor (ggf. in einem separaten Verzeichnis) und erstellen anschließend mit nur einem Befehl ein Boot-Gerät, sei es ein ISO-Image, ein USB-, HDD-, SSD-Laufwerk usw Sie können mit system. ein initrd-Image erstellen. Das System befindet sich immer im gleichen Zustand und im Falle einer Panne können Sie durch Drücken einer Reset-Taste in den ursprünglichen Zustand zurückkehren. Möchten Sie das System auf einen anderen Host übertragen oder ein System aus einem vorhandenen Container erstellen? Boobstrap wird es schaffen.

Zu den wichtigsten Änderungen gehören:

  • Unterstützung für den Syslinux-Bootloader hinzugefügt, zusätzlich zum bereits vorhandenen Grub2. Sie können jetzt beim Erstellen eines Startgeräts oder ISO-Images mit den Grub2-Optionen --legacy-boot syslinux und --efi entweder grub2, syslinux oder beide verwenden und Sie können auch auswählen, welche Modi der Download die ISO unterstützen soll Bild.
  • Option --bootable hinzugefügt, die jedes Blockgerät bootfähig macht. Um ISO-Images zu erstellen, muss die Option --iso-9660 verwendet werden.
  • Kernel-Boot-Optionen hinzugefügt: Boobs.use-shmfs, um den Inhalt aller Overlays nach tmpfs zu kopieren, Boobs.use-overlayfs, um mit Overlay FS zu booten, Boobs.search-rootfs, um eine Quelle mit dem System auszuwählen, Boobs.copy-to-ram um das System in den Speicher zu kopieren und dann das Gerät auszuschalten.
  • Die einzige erforderliche Abhängigkeit, damit Boostrap funktioniert, ist cpio. Die restlichen Abhängigkeiten sind optional: grub2, syslinux – erforderlich, um bootfähige Medien zu erstellen, cdrkit oder xorriso zur Auswahl – um eine ISO zu erstellen, squashfs-tools, um SquashFS zu erstellen, aber nichts hindert Sie daran, die Option -cpio anstelle von zu verwenden. squashfs, um Ihre Distribution in ein Archiv zu packen. Busybox wird nur verwendet, wenn es installiert ist. Wenn nicht, werden alle erforderlichen Dienstprogramme von Ihrem System kopiert. Somit funktioniert Boobstrap garantiert fast überall.

Mit dem folgenden Befehl wird beispielsweise ein initrd-Image erstellt, das ein als SquashFS-Image verpacktes gentoo-chroot/system enthält, das erfolgreich gestartet wird, nachdem die initrd selbst geladen wurde. Ich möchte Sie daran erinnern, dass Sie zur Verwendung von Overlay FS in Verbindung mit SquashFS die Kerneloption Boobs.use-overlayfs übergeben müssen, andernfalls wird das System in tmpfs entpackt. Alle weiteren Einstellungen können in einem separaten Verzeichnis vorgenommen werden, zum Beispiel gentoo-settings/

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

Ein initrd-Image mit einem darin enthaltenen System ist praktisch, wenn Sie ein System schnell bereitstellen müssen, beispielsweise über PXE, oder auf einem geladenen System mit dem Befehl kexec -l /boot/vmlinuz-* –initrd=./initrd zu initrd wechseln müssen && kexec -e, oder, wenn Sie sich in der QEMU-Schnittstelle für virtuelle Maschinen (möglicherweise sogar Proxmox) befinden, booten Sie von einer Remote-Quelle mit drei IPXE-Befehlen: Kernel http://[...]/vmlinuz, initrd http://[ ...]/initrd, boot. Wie Sie sehen, hat sogar eine normale Initrd mit Ihrem System viele Verwendungsmöglichkeiten.

Um bootfähige Laufwerke und Images zu erstellen, wird beispielsweise der Befehl mkbootisofs verwendet. So sieht das Erstellen eines ISO-Images mit der Option -iso-9660 aus, indem syslinux zum Booten im Legacy-Modus (BIOS) und grub2 zum Booten im EFI-Modus verwendet wird. Modus (UEFI).

# 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 Startmodi angeben oder sie überhaupt nicht angeben. Das entsprechende ISO-Image wird erfolgreich erstellt.

Die Installation auf einem beliebigen Laufwerk und das anschließende Booten von diesem erfolgt mit der Option --bootable. Sie müssen selbst Partitionen auf dem Laufwerk erstellen (fdisk) und diese formatieren (mkdosfs, mke2fs usw.) und dann das Gerät in ein Verzeichnis mounten.

# 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 wird, 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 entsprechend überschrieben. Verwenden Sie --bootable mit Vorsicht.

Die Installation eines GNU/Linux-Systems ist auf nur einen Befehl reduziert. Die Installation kann auf jeder Festplatte, SSD usw. erfolgen. Es sei daran erinnert, dass es sich immer noch um ein System handelt, das von Overlay FS/SquashFS aus läuft oder ganz nach Wahl in tmpfs geladen wird.

Boobstrap verfügt unter anderem über eine Reihe interessanter Features und Zusatzfunktionen!

Sie können beispielsweise eine proprietäre Boostrap-Initrd mit dem Befehl mkinitramfs „mktemp -d“ > /boot/initrd erstellen und Ihr System mit dieser Initrd starten und dabei die Kernel-Optionen Boobs.use-overlayfs Boobs.search-rootfs=/dev angeben /sda1. In diesem Fall wird /dev/sda1, wo Ihr Heimsystem installiert ist, als schreibgeschützte Overlay-FS-Schicht verbunden und alle von Ihnen vorgenommenen Änderungen werden nur vorübergehend in tmpfs geschrieben. Sie können die Option Boobs.copy-to-ram hinzufügen und dann wird Ihr gesamtes System in den RAM kopiert und die Festplatte kann vom Computer getrennt werden. Praktisch, wenn Sie etwas kaputt machen müssen, und Sie können Änderungen einfach durch einen Neustart rückgängig machen. 🙂

Was aber, wenn Sie dennoch alle Änderungen im System speichern müssen? Sie haben beispielsweise Software oder etwas anderes installiert. Beim Arbeiten in reinem tmpfs ist das leider nicht möglich, wenn man aber mit Overlay FS gebootet hat, dann werden alle Änderungen, die im System auftreten, 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, einige Arbeiten erledigt und wollten alles, was geändert wurde, speichern, dann ein cpio-Archiv erstellen und es hier auf demselben USB-Gerät ablegen.

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

Sie können das Archiv neben anderen SquashFS- und cpio-„Layern“ platzieren. Beim anschließenden Laden wird das Archiv dann einfach als ein weiterer schreibgeschützter Layer verbunden. Um weiterhin mit Änderungen zu arbeiten, verwenden Sie die Upload-Option Boobs.rootfs-changes=/rootfs-changes.cpio. Die Option „boobs.rootfs-changes“ aktiviert die angegebene Ebene mit Änderungszugriff. Der Layer kann ein Blockgerät sein. Sie können beispielsweise /dev/sdb1 angeben. Dann werden alle in Overlay FS vorgenommenen Änderungen einfach in /dev/sdb1 gespeichert.

Boobstrap befindet sich trotz der großen Möglichkeiten noch in der Entwicklungsphase, alle Ihre Kommentare und Vorschläge werden berücksichtigt!

Source: linux.org.ru

Kommentar hinzufügen