Crearea de imagini bootstrap v1.0


Crearea de imagini bootstrap v1.0

Aș dori să vă prezint atenției un framework numit boobstrap, scris în shell-ul POSIX, pentru crearea imaginilor de boot cu distribuții GNU/Linux. Cadrul vă permite să parcurgeți întregul proces în doar trei pași simpli: de la implementarea sistemului într-un chroot, crearea unei imagini initramfs care include sistemul chrootat și, în cele din urmă, o imagine ISO bootabilă. boobstrap include trei utilitare mkbootstrap, mkinitramfs și, respectiv, mkbootisofs.

mkbootstrap instalează sistemul într-un director separat, există suport nativ pentru CRUX, iar în cazul distribuțiilor bazate pe Arch Linux / Manjaro și Debian, trebuie utilizate utilitare terțe pacstrap, basestrap și respectiv debootstrap.

mkinitramfs creează o imagine initramfs, puteți utiliza sistemul instalat în director ca „suprapunere”, comprimat folosind SquashFS sau, după pornirea în sistem, puteți lucra direct în tmpfs. Deci, de exemplu, comanda mkinitramfs `mktemp -d` --overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd va crea un fișier initrd, inclusiv două suprapuneri cu „arch- sistemul chroot/” și „/home” dvs., comprimate folosind SquashFS, pe care apoi îl puteți porni prin PXE în tmpfs, sau puteți crea o imagine ISO bootabilă cu acest initrd.

mkbootisofs creează o imagine ISO bootabilă BIOS/UEFI din directorul specificat. Puneți doar /boot/vmlinuz și /boot/initrd în director.

boobstrap nu folosește busybox și pentru a crea un mediu initramfs funcțional, un set minim de programe este copiat folosind ldd, necesar pentru a porni și a comuta la sistem. Lista de programe de copiat, ca orice altceva, poate fi configurată prin fișierul de configurare /etc/boobstrap/boobstrap.conf. De asemenea, puteți instala orice distribuție minimalistă într-un chroot/ separat, din care puteți crea apoi un mediu initramfs cu drepturi depline. Ca atare mediu minimalist, dar în același timp cu drepturi depline, se propune utilizarea șablonului „crux_gnulinux-embedded”, care după xz preia un compromis de 37 MB. busybox, pe lângă dimensiunea sa, 3-5 MB față de 30-50 MB dintr-un mediu GNU/Linux cu drepturi depline, nu mai oferă niciun avantaj, așa că utilizarea busybox într-un proiect nu pare adecvată.

Cum să verificați rapid funcționalitatea și să începeți? Instalați și rulați.

# git clone https://github.com/sp00f1ng/boobstrap.git
# cd boobstrap
# make install# boobstrap/tests/crux_gnulinux-download-and-build
# qemu-system-x86_64 -enable-kvm -m 1G -cdrom tmp.*/install.iso

De asemenea, trebuie să instalați dependențe, și anume: cpio, grub, grub-efi, dosfstools, xorriso. Utilizarea squashfs-tools nu este necesară; puteți lucra în tmpfs cu cantitatea adecvată de RAM. Dacă ceva lipsește din sistem, boobstrap va raporta acest lucru la pornire.

Pentru a simplifica crearea configurațiilor, boobstrap sugerează utilizarea „șabloanelor” și „sistemelor”, a căror esență este utilizarea „șabloanelor” (bootstrap-templates/) pentru a instala rapid sisteme dintr-un fișier și direct „sisteme” (bootstrap- sisteme/) utilizate pentru a seta configurațiile finale.

Deci, de exemplu, rularea scriptului boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild va instala configurația minimă a sistemului CRUX GNU/Linux și o va salva în fișierul crux_gnulinux-embedded.rootfs, apoi rulați boobstrap/bootstrap-systems /default/crux_gnulinux.bbuild care va încărca configurația primară din fișierul menționat, va face toate configurațiile necesare și va pregăti un ISO bootabil. Acest lucru este convenabil atunci când, de exemplu, multe sisteme folosesc același tip de configurație: pentru a nu descrie același set de pachete de fiecare dată, utilizați un șablon, pe baza căruia creați imagini de pornire ale sistemelor cu configurația finală.

Unde pot folosi toate astea?

Configurați sistemul într-un fișier o dată și rulându-l îl construiți și/sau îl actualizați. Sistemul rulează în tmpfs, ceea ce îl face practic de unică folosință. Dacă sistemul eșuează, puteți reveni la starea inițială cu un singur clic pe butonul Resetare. Puteți rula în siguranță rm -rf /.

Puteți configura configurațiile tuturor sistemelor dvs. local, puteți crea imagini, le puteți testa într-o mașină virtuală sau hardware separat, apoi le puteți încărca pe un server la distanță și puteți rula doar două comenzi kexec -l /vmlinuz —initrd=/initrd && kexec -e pentru a actualiza întregul sistem, repornindu-l în tmpfs.

În același mod, puteți transfera toate sistemele, de exemplu pe VDS, să funcționeze în tmpfs, și să criptați discul /dev/vda și să îl utilizați doar pentru date, fără a fi nevoie să păstrați sistemul de operare pe el. Singurul „punct de scurgere de informații” în acest caz va fi doar „descărcarea la rece” a memoriei mașinii tale virtuale și în cazul unui compromis al sistemului (de exemplu, prin ghicirea parolei ssh sau a unei vulnerabilități în Exim), puteți descărca un nou ISO prin „panoul de control” al furnizorului dumneavoastră, pentru a readuce în funcțiune VDS-ul, fără a uita să editați configurația sistemului pentru a închide toate vulnerabilitățile. Acest lucru este mai rapid decât reinstalarea, configurarea ulterioară și/sau restaurarea dintr-o copie de rezervă, deoarece, în esență, ISO descărcabil cu sistemul dvs. este backup-ul dvs. „Șapte probleme – o resetare”.

În cele din urmă, puteți crea orice distribuție pentru nevoile dvs., o puteți scrie pe o unitate USB și puteți lucra în ea, actualizându-l după cum este necesar și rescriind-o din nou pe unitatea USB. Toate datele sunt stocate în nori. Nu mai trebuie să vă faceți griji pentru siguranța sistemului și să faceți o copie de rezervă atunci când sistemul, repet, a devenit în esență „de unică folosință”.

Dorințele, sugestiile și comentariile dumneavoastră sunt binevenite.

În depozitul de la linkul de mai jos există un fișier detaliat README (în engleză) cu o descriere a fiecărui utilitar și exemple de utilizare, există și documentație detaliată în limba rusă și un istoric al dezvoltării disponibil la link: Complex de script de pornire Boobstrap.

Sursa: linux.org.ru

Adauga un comentariu