Jag vill presentera ett ramverk vid namn boobstrap, skrivet i POSIX shell, för att skapa startbara avbilder med GNU/Linux-distributioner. Ramverket gör det möjligt att gÄ igenom hela processen i tre enkla steg: frÄn att distribuera systemet i chroot, skapa ett initramfs-arkiv som inkluderar systemet frÄn chroot, och slutligen en startbar ISO-avbild. boobstrap inkluderar tre verktyg mkbootstrap, mkinitramfs och mkbootisofs.
mkbootstrap installerar systemet i en separat katalog, har inbyggt stöd för CRUX, och i fallet Arch Linux / Manjaro samt Debian-baserade distributioner mÄste externa verktyg som pacstrap, basestrap och debootstrap anvÀndas.
mkinitramfs skapar ett initramfs-arkiv, du kan anvĂ€nda det installerade systemet i katalogen som "overlay", komprimerat med SquashFS, eller starta direkt in i systemet i tmpfs. Till exempel kommer kommandot mkinitramfs `mktemp -d` âoverlay "arch-chroot/" âoverlay "/home" âsquashfs-xz âoutput initrd att skapa en initrd-fil som inkluderar tvĂ„ overlays med "arch-chroot/"-systemet och ditt "/home", komprimerade med SquashFS, som du sedan kan ladda via PXE i tmpfs, eller skapa en startbar ISO-avbild med detta initrd.
mkbootisofs skapar en BIOS / UEFI startbar ISO-avbild frÄn den angivna katalogen. Det rÀcker med att placera /boot/vmlinuz och /boot/initrd i katalogen.
boobstrap anvÀnder inte busybox, och för att skapa en fungerande miljö i initramfs kopieras ett minimum av program med hjÀlp av ldd, som Àr nödvÀndiga för att starta och vÀxla till systemet. Listan över program som ska kopieras, liksom allt annat, kan konfigureras via konfigurationsfilen /etc/boobstrap/boobstrap.conf. Du kan ocksÄ installera vilken minimalistisk distribution som helst i ett separat chroot/, frÄn vilket du sedan kan skapa en fullstÀndig initramfs-miljö. Som en sÄdan minimalistisk men ÀndÄ fullstÀndig miljö föreslÄs mallen "crux_gnulinux-embedded", som efter xz tar kompromissande 37 MB. Busybox erbjuder, förutom sin storlek, 3-5 MB mot 30-50 MB för en fullstÀndig GNU/Linux-miljö, inga andra fördelar, sÄ anvÀndning av busybox i projektet anses inte vara meningsfullt.
Hur snabbt kolla funktionalitet och komma igÄng? Installera och starta.
# git clone https://github.com/sp00f1ng/boobstrap.git
# cd boobstrap
# make install# boobstrap/tests/crux_gnulinux-download-and-build
Du behöver ocksÄ installera beroenden, nÀmligen: cpio, grub, grub-efi, dosfstools, xorriso. AnvÀndning av squashfs-tools Àr inte obligatorisk, du kan arbeta i tmpfs sÄ lÀnge du har tillrÀckligt med RAM. Om nÄgot saknas i systemet kommer boobstrap att informera om detta vid start.
För att underlÀtta skapandet av konfigurationer erbjuder boobstrap att anvÀnda "mallar" och "system", dÀr idéen Àr att anvÀnda "mallar" (bootstrap-templates/) för snabb installation av system frÄn fil, och "system" (bootstrap-systems/) för att konfigurera de slutliga instÀllningarna.
Till exempel kommer körningen av skriptet boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild att installera en minimal konfiguration av CRUX GNU/Linux-systemet och spara det i filen crux_gnulinux-embedded.rootfs. DÀrefter kör du boobstrap/bootstrap-systems/default/crux_gnulinux.bbuild som laddar den primÀra konfigurationen frÄn den nÀmnda filen, utför all nödvÀndig konfiguration och förbereder en bootbar ISO. Det hÀr Àr praktiskt nÀr mÄnga system anvÀnder liknande konfigurationer: istÀllet för att varje gÄng skriva en identisk uppsÀttning paket anvÀnder du en mall som du baserar pÄ för att skapa bootbara bilder av system med den slutliga konfigurationen.
Var ska allt detta anvÀndas?
Du konfigurerar systemet i en fil en gÄng och kör det för att bygga och/eller uppdatera det. Systemet körs i tmpfs, vilket gör det engÄngs, i praktiken. Om systemet kraschar, kan du med ett knapptryck pÄ Reset ÄtergÄ till ursprungligt tillstÄnd. Du kan tryggt köra rm -rf /.
Du kan konfigurera alla dina system lokalt, skapa bilder, testa dem i en virtuell maskin eller pĂ„ separat "hĂ„rdvara", och sedan ladda upp dem till en fjĂ€rrserver. Med bara tvĂ„ kommandon kexec -l /vmlinuz âinitrd=/initrd && kexec -e kan du uppdatera hela systemet, omstartande det till tmpfs.
PÄ samma sÀtt kan du överföra alla system, till exempel till VDS, att arbeta i tmpfs, och kryptera disken /dev/vda och anvÀnda den endast för data, utan att behöva ha operativsystemet pÄ den. Den enda "lÀckpunkten" i ett sÄdant fall blir endast "kyldumpen" av minnet i din virtuella maskin, och vid systemkompromiss (till exempel genom att knÀcka ssh-lösenordet eller en sÄrbarhet i exim), kan du ladda upp en ny ISO via "kontrollpanelen" hos din leverantör för att ÄterstÀlla VDS i drift, utan att glömma att redigera systemkonfigurationen och stÀnga alla sÄrbarheter. Detta Àr snabbare Àn att installera om, efterföljande konfigurera och/eller ÄterstÀlla frÄn en backup, eftersom det i grund och botten, den laddade ISO:n med ditt system, Àr din backup. "Sju problem - en ÄterstÀllning."
I slutÀndan kan du skapa vilken distribution som helst för dina behov, skriva ut den pÄ ett USB-minne och arbeta i den, uppdatera den vid behov och Äter skriva den pÄ USB-minnet. Spara alla data i "molnen". Det Àr inte lÀngre nödvÀndigt att oroa sig för systembevarande och göra en backup, nÀr systemet, som jag sagt, i grund och botten blivit "engÄngs".
Dina önskemÄl, förslag och kommentarer Àr vÀlkomna.
I förvaret pÄ lÀnken nedan finns en detaljerad README-fil (pÄ engelska) som beskriver varje verktyg och exempel pÄ anvÀndning, det finns ocksÄ detaljerad dokumentation pÄ ryska och utvecklingshistorik, tillgÀngliga via lÀnken: Komplex av startskript boobstrap.
KĂ€lla: linux.org.ru

