Kreiranje bootstrap v1.0 slika


Kreiranje bootstrap v1.0 slika

Želeo bih da vam predstavim okvir koji se zove boobstrap, napisan u POSIX ljusci, za kreiranje boot slika sa GNU/Linux distribucijama. Framework vam omogućava da prođete kroz ceo proces u samo tri jednostavna koraka: od postavljanja sistema u chroot, kreiranja initramfs slike koja uključuje chroot sistem, i na kraju ISO slike za pokretanje. boobstrap uključuje tri uslužna programa mkbootstrap, mkinitramfs i mkbootisofs respektivno.

mkbootstrap instalira sistem u poseban direktorij, postoji izvorna podrška za CRUX, a u slučaju Arch Linux/Manjaro i Debian distribucija, uslužni programi treće strane pacstrap, basestrap i debootstrap moraju se koristiti respektivno.

mkinitramfs kreira initramfs sliku, možete koristiti instalirani sistem u direktorijumu kao "preklapanje", komprimiran pomoću SquashFS-a, ili nakon pokretanja sistema, raditi direktno u tmpfs-u. Tako, na primjer, naredba mkinitramfs `mktemp -d` --overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd će kreirati initrd datoteku, uključujući dva preklapanja sa "arch- chroot/" sistem i vaš "/home", komprimovani pomoću SquashFS-a, koji zatim možete pokrenuti preko PXE-a u tmpfs, ili kreirati ISO sliku za pokretanje sa ovim initrd-om.

mkbootisofs kreira BIOS/UEFI ISO sliku za pokretanje iz navedenog direktorija. Samo stavite /boot/vmlinuz i /boot/initrd u direktorij.

boobstrap ne koristi busybox, a da bi se stvorilo radno okruženje initramfs, minimalan skup programa se kopira pomoću ldd-a, neophodnih za pokretanje i prebacivanje na sistem. Lista programa za kopiranje, kao i sve ostalo, može se konfigurirati kroz konfiguracijski fajl /etc/boobstrap/boobstrap.conf. Također, možete instalirati bilo koju minimalističku distribuciju u poseban chroot/, iz kojeg možete kreirati potpuno 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 punopravnog GNU/Linux okruženja, više ne nudi nikakve prednosti, tako da korištenje busyboxa u projektu ne izgleda prikladno.

Kako brzo provjeriti funkcionalnost i započeti? Instalirajte i pokrenite.

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

Takođe morate da instalirate zavisnosti, i to: cpio, grub, grub-efi, dosfstools, xorriso. Upotreba squashfs-alata nije neophodna; možete raditi u tmpfs-u sa odgovarajućom količinom RAM-a. Ako nešto nedostaje u sistemu, boobstrap će to prijaviti nakon pokretanja.

Kako bi pojednostavio kreiranje konfiguracija, boobstrap predlaže korištenje „šablona“ i „sistema“, čija je suština korištenje „šablona“ (bootstrap-templates/) za brzu instalaciju sistema iz datoteke i direktno „sistema“ (bootstrap- sistemi/) koji se koriste za postavljanje konačnih konfiguracija.

Tako, na primjer, pokretanje skripte boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild će instalirati minimalnu konfiguraciju CRUX GNU/Linux sistema i spremiti je u datoteku crux_gnulinux-embedded.rootfs, a zatim pokrenite boobstrap/bootstrap-systems /default/crux_gnulinux.bbuild koji će učitati primarnu konfiguraciju iz pomenutog fajla, uraditi sve potrebne konfiguracije i pripremiti ISO za pokretanje. Ovo je zgodno kada, na primjer, mnogi sistemi koriste istu vrstu konfiguracije: kako ne biste svaki put opisali isti skup paketa, koristite jedan predložak, na osnovu kojeg kreirate slike za pokretanje sistema sa konačnom konfiguracijom.

Gdje mogu sve ovo iskoristiti?

Jednom konfigurišete sistem u datoteci i pokretanjem ga gradite i/ili ažurirate. Sistem radi u tmpfs-u, što ga čini u suštini jednokratnim. Ako sistem pokvari, možete se vratiti u prvobitno stanje jednim klikom na dugme Reset. Možete bezbedno pokrenuti rm -rf /.

Možete konfigurirati konfiguracije svih svojih sistema lokalno, kreirati slike, testirati ih na virtuelnoj mašini ili zasebnom hardveru, zatim ih otpremiti na udaljeni server i pokrenuti samo dvije komande kexec -l /vmlinuz —initrd=/initrd && kexec -e da ažurirate ceo sistem, ponovo ga pokrenete u tmpfs.

Na isti način možete prebaciti sve sisteme, na primjer na VDS, da rade u tmpfs-u, te šifrirati /dev/vda disk i koristiti ga samo za podatke, bez potrebe da na njemu držite operativni sistem. Jedina “tačka curenja informacija” u ovom slučaju će biti samo “hladni dump” memorije vaše virtuelne mašine, a u slučaju kompromitovanja sistema (na primer, pogađanjem ssh lozinke ili ranjivosti u Exim), možete preuzeti novi ISO preko “kontrolne table” vašeg provajdera, da vratite VDS u rad, a da ne zaboravite da uredite konfiguraciju sistema kako biste zatvorili sve ranjivosti. Ovo je brže od ponovnog instaliranja, naknadne konfiguracije i/ili vraćanja iz rezervne kopije, jer u suštini, ISO koji možete preuzeti sa vašeg sistema je vaša rezervna kopija. "Sedam nevolja - jedno resetovanje."

Na kraju, možete kreirati bilo koju distribuciju za svoje potrebe, zapisati je na USB disk i raditi u njemu, ažurirati ga po potrebi i ponovo upisati na USB disk. Svi podaci su pohranjeni u oblacima. Više ne morate da brinete o bezbednosti sistema i da pravite rezervnu kopiju kada je sistem, ponavljam, u suštini postao „jednokratan“.

Vaše želje, prijedlozi i komentari su dobrodošli.

U spremištu na linku ispod nalazi se detaljan README fajl (na engleskom) sa opisom svakog uslužnog programa i primerima korišćenja, tu je i detaljna dokumentacija na ruskom jeziku i istorija razvoja dostupna na linku: Boobstrap kompleks skripti za pokretanje.

izvor: linux.org.ru

Dodajte komentar