Skapa bootstrap v1.0-bilder


Skapa bootstrap v1.0-bilder

Jag skulle vilja presentera ett ramverk som heter boobstrap, skrivet i POSIX-skalet, för att skapa startbilder med GNU/Linux-distributioner. Ramverket låter dig gå igenom hela processen i bara tre enkla steg: från att distribuera systemet i en chroot, skapa en initramfs-bild som inkluderar det chrootade systemet och slutligen en startbar ISO-avbild. boobstrap innehåller tre verktyg mkbootstrap, mkinitramfs respektive mkbootisofs.

mkbootstrap installerar systemet i en separat katalog, det finns inbyggt stöd för CRUX, och i fallet med Arch Linux / Manjaro och Debian-baserade distributioner måste tredjepartsverktygen pacstrap, basestrap och debootstrap användas respektive.

mkinitramfs skapar en initramfs-avbildning, du kan använda det installerade systemet i katalogen som en "overlay", komprimerad med SquashFS, eller efter uppstart i systemet, arbeta direkt i tmpfs. Så till exempel, kommandot mkinitramfs `mktemp -d` --overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd kommer att skapa en initrd-fil, inklusive två överlägg med "arch- chroot/"-systemet och ditt "/home", komprimerade med SquashFS, som du sedan kan starta upp via PXE till tmpfs, eller skapa en startbar ISO-avbild med denna initrd.

mkbootisofs skapar en BIOS/UEFI-startbar ISO-avbild från den angivna katalogen. Lägg bara in /boot/vmlinuz och /boot/initrd i katalogen.

boobstrap använder inte busybox, och för att skapa en fungerande initramfs-miljö kopieras en minimal uppsättning program med ldd, vilket är nödvändigt för att starta och byta till systemet. Listan över program som ska kopieras, som allt annat, kan konfigureras genom konfigurationsfilen /etc/boobstrap/boobstrap.conf. Du kan också installera vilken minimalistisk distribution som helst i en separat chroot/, från vilken du sedan kan skapa en fullfjädrad initramfs-miljö. Som en sådan minimalistisk, men samtidigt fullfjädrad miljö, föreslås det att använda mallen "crux_gnulinux-embedded", som efter xz tar upp en kompromiss på 37 MB. busybox, förutom sin storlek, 3-5 MB mot 30-50 MB i en fullfjädrad GNU/Linux-miljö, erbjuder inte längre några fördelar, så att använda busybox i ett projekt verkar inte lämpligt.

Hur kontrollerar man snabbt funktionaliteten och kommer igång? Installera och kör.

# git-klon https://github.com/sp00f1ng/boobstrap.git
# cd bröstband
# gör installation# boobstrap/tests/crux_gnulinux-download-and-build
# qemu-system-x86_64 -enable-kvm -m 1G -cdrom tmp.*/install.iso

Du måste också installera beroenden, nämligen: cpio, grub, grub-efi, dosfstools, xorriso. Att använda squashfs-verktyg är inte nödvändigt, du kan arbeta i tmpfs med lämplig mängd RAM. Om något saknas i systemet kommer boobstrap att rapportera detta vid uppstart.

För att förenkla skapandet av konfigurationer föreslår boobstrap att du använder "mallar" och "system", vars essens är att använda "mallar" (bootstrap-templates/) för att snabbt installera system från en fil, och direkt "system" (bootstrap- system/) som används för att ställa in slutliga konfigurationer.

Så om du till exempel kör skriptet boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild installerar du minimikonfigurationen för CRUX GNU/Linux-systemet och sparar den i filen crux_gnulinux-embedded.rootfs, sedan kör du boobstrap/bootstrap-systems /default/crux_gnulinux.bbuild som kommer att ladda den primära konfigurationen från den nämnda filen, göra all nödvändig konfiguration och förbereda en startbar ISO. Detta är praktiskt när, till exempel, många system använder samma typ av konfiguration: för att inte beskriva samma uppsättning paket varje gång använder du en mall, baserad på vilken du skapar startavbildningar av system med den slutliga konfigurationen.

Var kan jag använda allt detta?

Du konfigurerar systemet i en fil en gång och genom att köra den bygger och/eller uppdaterar du den. Systemet körs i tmpfs, vilket gör det i princip till engångsbruk. Om systemet misslyckas kan du återgå till dess ursprungliga tillstånd med ett klick på Återställ-knappen. Du kan säkert köra rm -rf /.

Du kan konfigurera konfigurationerna för alla dina system lokalt, skapa bilder, testa dem i en virtuell maskin eller separat hårdvara, sedan ladda upp dem till en fjärrserver och köra bara två kommandon kexec -l /vmlinuz —initrd=/initrd && kexec -e för att uppdatera hela systemet genom att starta om det till tmpfs.

På samma sätt kan du överföra alla system, till exempel på VDS, till att fungera i tmpfs, och kryptera /dev/vda-disken och använda den endast för data, utan att behöva behålla operativsystemet på den. Den enda "punkten för informationsläckage" i det här fallet kommer endast att vara "kölddumpningen" av minnet på din virtuella maskin, och i händelse av en kompromiss med systemet (till exempel genom att gissa ssh-lösenordet eller en sårbarhet i Exim), kan du ladda ner en ny ISO via din leverantörs "kontrollpanel" för att få VDS i drift igen, utan att glömma att redigera systemkonfigurationen för att stänga alla sårbarheter. Detta är snabbare än att installera om, efterföljande konfigurera och/eller återställa från en säkerhetskopia, för i huvudsak är den nedladdningsbara ISO med ditt system din säkerhetskopia. "Sju problem - en återställning."

I slutändan kan du skapa vilken distribution som helst för dina behov, skriva den till en USB-enhet och arbeta i den, uppdatera den efter behov och skriva om den till USB-enheten igen. All data lagras i molnen. Du behöver inte längre oroa dig för systemets säkerhet och göra en säkerhetskopia när systemet, jag upprepar, i princip har blivit "engångs".

Dina önskemål, förslag och kommentarer är välkomna.

I arkivet på länken nedan finns en detaljerad README-fil (på engelska) med en beskrivning av varje verktyg och exempel på användning, det finns även detaljerad dokumentation på ryska och en utvecklingshistorik tillgänglig på länken: Boobstrap boot script komplex.

Källa: linux.org.ru

Lägg en kommentar