Želio bih vam predstaviti okvir pod nazivom boobstrap, napisan u POSIX ljusci, za stvaranje slika za pokretanje s GNU/Linux distribucijama. Framework vam omogućuje da prođete kroz cijeli proces u samo tri jednostavna koraka: od postavljanja sustava u chroot, kreiranja initramfs slike koja uključuje chroot sustav i na kraju ISO slike za pokretanje. boobstrap uključuje tri pomoćna programa mkbootstrap, mkinitramfs i mkbootisofs.
mkbootstrap instalira sustav u poseban direktorij, postoji izvorna podrška za CRUX, a u slučaju distribucija temeljenih na Arch Linuxu / Manjaru i Debianu, moraju se koristiti uslužni programi trećih strana pacstrap, basestrap i debootstrap.
mkinitramfs stvara initramfs sliku, možete koristiti instalirani sustav u direktoriju kao "overlay", komprimiran pomoću SquashFS-a, ili nakon dizanja sustava, raditi izravno u tmpfs. Na primjer, naredba mkinitramfs `mktemp -d` --overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd stvorit će initrd datoteku, uključujući dva sloja s "arch- chroot/" sustav i vaš "/home", komprimiran korištenjem SquashFS-a, koji zatim možete pokrenuti putem PXE-a u tmpfs ili stvoriti ISO sliku za pokretanje s ovim initrd-om.
mkbootisofs stvara BIOS/UEFI ISO sliku za pokretanje iz navedenog direktorija. Samo stavite /boot/vmlinuz i /boot/initrd u direktorij.
boobstrap ne koristi busybox, a za stvaranje radnog initramfs okruženja, minimalni skup programa se kopira pomoću ldd-a, potrebnih za pokretanje i prebacivanje na sustav. Popis programa za kopiranje, kao i sve ostalo, može se konfigurirati putem konfiguracijske datoteke /etc/boobstrap/boobstrap.conf. Također, možete instalirati bilo koju minimalističku distribuciju u zasebnu chroot/, iz koje onda možete kreirati punopravno initramfs okruženje. Kao takvo minimalističko, ali u isto vrijeme punopravno okruženje, predlaže se korištenje predloška “crux_gnulinux-embedded”, koji nakon xz zauzima kompromis od 37 MB. busybox, osim svoje veličine, 3-5 MB naspram 30-50 MB potpunog GNU/Linux okruženja, više ne nudi nikakve prednosti, pa se korištenje busyboxa u projektu ne čini prikladnim.
Kako brzo provjeriti funkcionalnost i započeti? Instalirajte i pokrenite.
# git klon https://github.com/sp00f1ng/boobstrap.git
# cd boobstrap
# make install# boobstrap/tests/crux_gnulinux-download-and-build
Također morate instalirati ovisnosti, naime: cpio, grub, grub-efi, dosfstools, xorriso. Korištenje squashfs-alata nije potrebno; možete raditi u tmpfs-u s odgovarajućom količinom RAM-a. Ako nešto nedostaje u sustavu, boobstrap će to prijaviti nakon pokretanja.
Za pojednostavljenje izrade konfiguracija, boobstrap predlaže korištenje "predložaka" i "sustava", čija je bit korištenje "predložaka" (bootstrap-templates/) za brzu instalaciju sustava iz datoteke, i izravno "sustava" (bootstrap- sustavi/) koji se koristi za postavljanje konačnih konfiguracija.
Na primjer, pokretanje skripte boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild će instalirati minimalnu konfiguraciju CRUX GNU/Linux sustava i spremiti je u datoteku crux_gnulinux-embedded.rootfs, a zatim ćete pokrenuti boobstrap/bootstrap-systems /default/crux_gnulinux.bbuild koji će učitati primarnu konfiguraciju iz spomenute datoteke, napraviti svu potrebnu konfiguraciju i pripremiti bootable ISO. To je zgodno kada, na primjer, mnogi sustavi koriste istu vrstu konfiguracije: kako ne biste svaki put opisivali isti skup paketa, koristite jedan predložak na temelju kojeg stvarate slike za pokretanje sustava s konačnom konfiguracijom.
Gdje sve to mogu iskoristiti?
Sustav konfigurirate jednom u datoteci i pokretanjem ga gradite i/ili ažurirate. Sustav radi u tmpfs, što ga čini u biti jednokratnim. Ako sustav zakaže, možete se vratiti u prvobitno stanje jednim klikom na gumb Reset. Možete sigurno pokrenuti rm -rf /.
Možete konfigurirati konfiguracije svih svojih sustava lokalno, kreirati slike, testirati ih u virtualnom stroju ili zasebnom hardveru, zatim ih učitati na udaljeni poslužitelj i pokrenuti samo dvije naredbe kexec -l /vmlinuz —initrd=/initrd && kexec -e za ažuriranje cijelog cijelog sustava, ponovno pokretanje u tmpfs.
Na isti način možete sve sustave, npr. na VDS-u, prebaciti da rade u tmpfs, a /dev/vda disk kriptirati i koristiti samo za podatke, bez potrebe da na njemu držite operativni sustav. Jedina "točka curenja informacija" u ovom slučaju bit će samo "hladni deponij" memorije vašeg virtualnog stroja, au slučaju kompromitacije sustava (primjerice, pogađanjem ssh lozinke ili ranjivosti u Exim), možete preuzeti novi ISO putem "upravljačke ploče" vašeg pružatelja usluga, kako biste vratili VDS u rad, a da ne zaboravite urediti konfiguraciju sustava kako biste zatvorili sve ranjivosti. Ovo je brže od ponovne instalacije, naknadne konfiguracije i/ili vraćanja iz sigurnosne kopije, jer je u biti ISO koji možete preuzeti s vašim sustavom vaša sigurnosna kopija. "Sedam problema - jedan reset."
Na kraju, možete kreirati bilo koju distribuciju za svoje potrebe, zapisati je na USB pogon i raditi u njemu, ažurirati ga po potrebi i ponovno ga prepisati na USB pogon. Svi podaci pohranjeni su u oblaku. Ne morate više brinuti o sigurnosti sustava i izraditi sigurnosnu kopiju kada je sustav, ponavljam, u biti postao “za jednokratnu upotrebu”.
Vaše želje, prijedlozi i komentari su dobrodošli.
U repozitoriju na poveznici ispod nalazi se detaljna datoteka README (na engleskom) s opisom svakog uslužnog programa i primjerima korištenja, tu je i detaljna dokumentacija na ruskom jeziku i povijest razvoja dostupna na poveznici: Složena skripta za pokretanje Boobstrapa.
Izvor: linux.org.ru