Ustvarjanje slik bootstrap v1.0


Ustvarjanje slik bootstrap v1.0

Rad bi vam predstavil ogrodje, imenovano boobstrap, napisano v lupini POSIX, za ustvarjanje zagonskih slik z distribucijami GNU/Linux. Ogrodje vam omogoča, da greste skozi celoten postopek v samo treh preprostih korakih: od uvajanja sistema v chroot, ustvarjanja slike initramfs, ki vključuje chroot sistem, in na koncu zagonske slike ISO. boobstrap vključuje tri pripomočke mkbootstrap, mkinitramfs oziroma mkbootisofs.

mkbootstrap namesti sistem v ločen imenik, na voljo je izvorna podpora za CRUX, v primeru distribucij, ki temeljijo na Arch Linux / Manjaro in Debianu, pa je treba uporabiti pripomočke drugih proizvajalcev pacstrap, basestrap in debootstrap.

mkinitramfs ustvari sliko initramfs, lahko uporabite nameščeni sistem v imeniku kot »prekrivanje«, stisnjen s SquashFS ali po zagonu sistema delate neposredno v tmpfs. Tako bo na primer ukaz mkinitramfs `mktemp -d` --overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd ustvaril datoteko initrd, vključno z dvema prekrivanjema z "arch- chroot/" in vaš "/home", stisnjen z uporabo SquashFS, ki ga lahko nato zaženete prek PXE v tmpfs ali ustvarite zagonsko sliko ISO s tem initrd.

mkbootisofs ustvari zagonsko ISO sliko BIOS/UEFI iz podanega imenika. Preprosto postavite /boot/vmlinuz in /boot/initrd v imenik.

boobstrap ne uporablja busybox in za ustvarjanje delujočega okolja initramfs se z uporabo ldd kopira minimalen nabor programov, potrebnih za zagon in preklop na sistem. Seznam programov za kopiranje, tako kot vse ostalo, lahko konfigurirate prek konfiguracijske datoteke /etc/boobstrap/boobstrap.conf. Poleg tega lahko katero koli minimalistično distribucijo namestite v ločen chroot/, iz katerega lahko nato ustvarite polnopravno okolje initramfs. Kot tako minimalistično, a hkrati polnopravno okolje je predlagana uporaba predloge “crux_gnulinux-embedded”, ki po xz zavzame kompromis 37 MB. busybox poleg svoje velikosti, 3-5 MB v primerjavi s 30-50 MB polnega okolja GNU/Linux, ne ponuja več nobenih prednosti, zato se uporaba busyboxa v projektu ne zdi primerna.

Kako hitro preveriti funkcionalnost in začeti? Namestite in zaženite.

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

Prav tako morate namestiti odvisnosti, in sicer: cpio, grub, grub-efi, dosfstools, xorriso. Uporaba squashfs-tools ni potrebna; lahko delate v tmpfs z ustrezno količino RAM-a. Če v sistemu nekaj manjka, bo boobstrap to sporočil ob zagonu.

Za poenostavitev ustvarjanja konfiguracij boobstrap predlaga uporabo »predlog« in »sistemov«, katerih bistvo je uporaba »predlog« (bootstrap-templates/) za hitro namestitev sistemov iz datoteke in neposredno »sistemov« (bootstrap- sistemi/), ki se uporablja za nastavitev končnih konfiguracij.

Če na primer zaženete skript boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild, boste namestili minimalno konfiguracijo sistema CRUX GNU/Linux in jo shranili v datoteko crux_gnulinux-embedded.rootfs, nato pa zaženite boobstrap/bootstrap-systems /default/crux_gnulinux.bbuild, ki bo naložil primarno konfiguracijo iz omenjene datoteke, opravil vso potrebno konfiguracijo in pripravil zagonski ISO. To je priročno, ko na primer veliko sistemov uporablja isto vrsto konfiguracije: da ne bi vsakič opisovali istega nabora paketov, uporabite eno predlogo, na podlagi katere ustvarite zagonske slike sistemov s končno konfiguracijo.

Kje lahko vse to uporabim?

Sistem enkrat konfigurirate v datoteki in ga z zagonom sestavite in/ali posodobite. Sistem deluje v tmpfs, zaradi česar je v bistvu za enkratno uporabo. Če sistem odpove, se lahko vrnete v prvotno stanje z enim klikom gumba Reset. Varno lahko zaženete rm -rf /.

Konfiguracije vseh svojih sistemov lahko konfigurirate lokalno, ustvarite slike, jih preizkusite v virtualnem stroju ali ločeni strojni opremi, nato pa jih naložite na oddaljeni strežnik in zaženete samo dva ukaza kexec -l /vmlinuz —initrd=/initrd && kexec -e da posodobite celoten celoten sistem, ga znova zaženete v tmpfs.

Na enak način lahko prenesete vse sisteme, na primer na VDS, da delajo v tmpfs, disk /dev/vda pa šifrirate in ga uporabljate samo za podatke, ne da bi morali imeti na njem operacijski sistem. Edina »točka uhajanja informacij« bo v tem primeru le »hladni dump« pomnilnika vašega virtualnega stroja in v primeru ogrožanja sistema (na primer z ugibanjem gesla ssh ali ranljivostjo v Exim), lahko prenesete nov ISO prek »nadzorne plošče« svojega ponudnika, da ponovno vzpostavite delovanje VDS, ne da bi pozabili urediti sistemsko konfiguracijo, da zaprete vse ranljivosti. To je hitreje kot ponovna namestitev, naknadna konfiguracija in/ali obnovitev iz varnostne kopije, ker je v bistvu ISO, ki ga lahko prenesete z vašim sistemom, vaša varnostna kopija. "Sedem težav - ena ponastavitev."

Na koncu lahko ustvarite poljubno distribucijo za svoje potrebe, jo zapišete na USB-pogon in delate v njej, jo po potrebi posodobite in znova zapišete na USB-pogon. Vsi podatki so shranjeni v oblakih. Ni vam več treba skrbeti za varnost sistema in delati varnostne kopije, ko je sistem, ponavljam, v bistvu postal "za enkratno uporabo".

Vaše želje, predlogi in komentarji so dobrodošli.

V repozitoriju na spodnji povezavi je podrobna datoteka README (v angleščini) z opisom vsakega pripomočka in primeri uporabe, na voljo pa je tudi podrobna dokumentacija v ruščini in zgodovina razvoja na povezavi: Kompleks zagonskega skripta Boobstrap.

Vir: linux.org.ru

Dodaj komentar