Opprette bootstrap v1.0-bilder


Opprette bootstrap v1.0-bilder

Jeg vil gjerne presentere et rammeverk kalt boobstrap, skrevet i POSIX-skallet, for å lage oppstartsbilder med GNU/Linux-distribusjoner. Rammeverket lar deg gå gjennom hele prosessen i bare tre enkle trinn: fra å distribuere systemet i en chroot, lage et initramfs-bilde som inkluderer det chroot-systemet, og til slutt et oppstartbart ISO-bilde. boobstrap inkluderer tre verktøy henholdsvis mkbootstrap, mkinitramfs og mkbootisofs.

mkbootstrap installerer systemet i en egen katalog, det er innebygd støtte for CRUX, og i tilfelle av Arch Linux / Manjaro og Debian-baserte distribusjoner, må tredjepartsverktøyene pacstrap, basestrap og debootstrap brukes henholdsvis.

mkinitramfs oppretter et initramfs-bilde, du kan bruke det installerte systemet i katalogen som et "overlegg", komprimert med SquashFS, eller etter oppstart i systemet, jobbe direkte i tmpfs. Så for eksempel, kommandoen mkinitramfs `mktemp -d` --overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd vil lage en initrd-fil, inkludert to overlegg med "arch- chroot/"-systemet og "/home", komprimert med SquashFS, som du deretter kan starte opp via PXE til tmpfs, eller lage et oppstartbart ISO-bilde med denne initrd.

mkbootisofs oppretter et BIOS/UEFI-oppstartbart ISO-bilde fra den angitte katalogen. Bare legg /boot/vmlinuz og /boot/initrd i katalogen.

boobstrap bruker ikke busybox, og for å lage et fungerende initramfs-miljø, kopieres et minimalt sett med programmer ved hjelp av ldd, nødvendig for å starte opp og bytte til systemet. Listen over programmer som skal kopieres, som alt annet, kan konfigureres gjennom konfigurasjonsfilen /etc/boobstrap/boobstrap.conf. Du kan også installere enhver minimalistisk distribusjon i en separat chroot/, hvorfra du deretter kan lage et fullverdig initramfs-miljø. Som et minimalistisk, men samtidig fullverdig miljø, foreslås det å bruke "crux_gnulinux-embedded" malen, som etter xz tar opp et kompromiss på 37 MB. busybox, i tillegg til størrelsen, 3-5 MB mot 30-50 MB av et fullverdig GNU/Linux-miljø, gir ikke lenger noen fordeler, så bruk av busybox i et prosjekt virker ikke hensiktsmessig.

Hvordan sjekke funksjonaliteten raskt og komme i gang? Installer og kjør.

# git-klone https://github.com/sp00f1ng/boobstrap.git
# cd bryststropp
# gjør installer# boobstrap/tests/crux_gnulinux-download-and-build
# qemu-system-x86_64 -enable-kvm -m 1G -cdrom tmp.*/install.iso

Du må også installere avhengigheter, nemlig: cpio, grub, grub-efi, dosfstools, xorriso. Å bruke squashfs-verktøy er ikke nødvendig; du kan jobbe i tmpfs med riktig mengde RAM. Hvis noe mangler i systemet, vil boobstrap rapportere dette ved oppstart.

For å forenkle opprettingen av konfigurasjoner, foreslår boobstrap å bruke "maler" og "systemer", hvor essensen er å bruke "maler" (bootstrap-templates/) for å raskt installere systemer fra en fil, og direkte "systemer" (bootstrap- systems/) brukes til å sette opp endelige konfigurasjoner.

Så for eksempel å kjøre skriptet boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild vil installere minimumskonfigurasjonen av CRUX GNU/Linux-systemet og lagre det i filen crux_gnulinux-embedded.rootfs, så kjører du boobstrap/bootstrap-systems /default/crux_gnulinux.bbuild som vil laste den primære konfigurasjonen fra den nevnte filen, gjøre all nødvendig konfigurasjon og forberede en oppstartbar ISO. Dette er praktisk når for eksempel mange systemer bruker samme type konfigurasjon: for ikke å beskrive det samme settet med pakker hver gang, bruker du én mal, basert på den lager du oppstartsbilder av systemer med den endelige konfigurasjonen.

Hvor kan jeg bruke alt dette?

Du konfigurerer systemet i en fil én gang og ved å kjøre den bygger du og/eller oppdaterer den. Systemet kjører i tmpfs, noe som gjør det i hovedsak til engangsbruk. Hvis systemet svikter, kan du gå tilbake til sin opprinnelige tilstand med ett klikk på Tilbakestill-knappen. Du kan trygt kjøre rm -rf /.

Du kan konfigurere konfigurasjonene til alle systemene dine lokalt, lage bilder, teste dem i en virtuell maskin eller separat maskinvare, deretter laste dem opp til en ekstern server og kjøre bare to kommandoer kexec -l /vmlinuz —initrd=/initrd && kexec -e for å oppdatere hele systemet ved å starte det på nytt til tmpfs.

På samme måte kan du overføre alle systemer, for eksempel på VDS, til å fungere i tmpfs, og kryptere /dev/vda-disken og bruke den kun til data, uten å måtte beholde operativsystemet på den. Det eneste "informasjonslekkasjepunktet" i dette tilfellet vil bare være "kald dumpen" av minnet til din virtuelle maskin, og i tilfelle en kompromittering av systemet (for eksempel ved å gjette ssh-passordet eller en sårbarhet i Exim), kan du laste ned en ny ISO gjennom "kontrollpanelet" til leverandøren din for å få VDS-en i drift igjen, uten å glemme å redigere systemkonfigurasjonen for å lukke alle sårbarheter. Dette er raskere enn å installere på nytt, påfølgende konfigurasjon og/eller gjenopprette fra en sikkerhetskopi, fordi i hovedsak er den nedlastbare ISO-en med systemet ditt sikkerhetskopien. "Syv problemer - en tilbakestilling."

Til slutt kan du lage hvilken som helst distribusjon for dine behov, skrive den til en USB-stasjon og jobbe i den, oppdatere den etter behov og skrive den om til USB-stasjonen igjen. All data er lagret i skyene. Du trenger ikke lenger å bekymre deg for sikkerheten til systemet og ta en sikkerhetskopi når systemet, jeg gjentar, egentlig har blitt "engangs".

Dine ønsker, forslag og kommentarer er velkomne.

I depotet på lenken nedenfor er det en detaljert README-fil (på engelsk) med en beskrivelse av hvert verktøy og eksempler på bruk, det er også detaljert dokumentasjon på russisk og en utviklingshistorikk tilgjengelig på lenken: Boobstrap boot script kompleks.

Kilde: linux.org.ru

Legg til en kommentar