Oprettelse af bootstrap v1.0-billeder


Oprettelse af bootstrap v1.0-billeder

Jeg vil gerne præsentere for din opmærksomhed en ramme kaldet boobstrap, skrevet i POSIX-skallen, til at skabe opstartsbilleder med GNU/Linux-distributioner. Rammerne giver dig mulighed for at gennemgå hele processen i kun tre enkle trin: fra implementering af systemet i en chroot, oprettelse af et initramfs-billede, der inkluderer det chroot-system, og i sidste ende et bootbart ISO-billede. boobstrap inkluderer tre hjælpeprogrammer henholdsvis mkbootstrap, mkinitramfs og mkbootisofs.

mkbootstrap installerer systemet i en separat mappe, der er indbygget understøttelse af CRUX, og i tilfælde af Arch Linux / Manjaro og Debian-baserede distributioner, skal tredjepartsværktøjer henholdsvis pacstrap, basestrap og debootstrap bruges.

mkinitramfs opretter et initramfs-image, du kan bruge det installerede system i mappen som et "overlay", komprimeret ved hjælp af SquashFS, eller efter opstart i systemet, arbejde direkte i tmpfs. Så for eksempel vil kommandoen mkinitramfs `mktemp -d` --overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd skabe en initrd-fil, inklusive to overlejringer med "arch- chroot/" system og dit "/home", komprimeret ved hjælp af SquashFS, som du derefter kan starte op via PXE i tmpfs, eller oprette et bootbart ISO-billede med denne initrd.

mkbootisofs opretter et BIOS/UEFI-startbart ISO-billede fra den angivne mappe. Bare læg /boot/vmlinuz og /boot/initrd i mappen.

boobstrap bruger ikke busybox, og for at skabe et fungerende initramfs-miljø, kopieres et minimalt sæt programmer ved hjælp af ldd, der er nødvendigt for at starte og skifte til systemet. Listen over programmer, der skal kopieres, kan som alt andet konfigureres gennem konfigurationsfilen /etc/boobstrap/boobstrap.conf. Du kan også installere enhver minimalistisk distribution i en separat chroot/, hvorfra du derefter kan oprette et fuldgyldigt initramfs-miljø. Som sådan et minimalistisk, men samtidig fuldgyldigt miljø, foreslås det at bruge den “crux_gnulinux-embedded” skabelon, som efter xz fylder et kompromis på 37 MB. busybox, udover størrelsen, 3-5 MB versus 30-50 MB af et fuldgyldigt GNU/Linux-miljø, giver ikke længere nogen fordele, så det virker ikke hensigtsmæssigt at bruge busybox i et projekt.

Hvordan tjekker man hurtigt funktionaliteten og kommer i gang? Installer og kør.

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

Du skal også installere afhængigheder, nemlig: cpio, grub, grub-efi, dosfstools, xorriso. Det er ikke nødvendigt at bruge squashfs-værktøjer; du kan arbejde i tmpfs med den passende mængde RAM. Hvis der mangler noget i systemet, vil boobstrap rapportere dette ved opstart.

For at forenkle oprettelsen af ​​konfigurationer foreslår boobstrap at bruge "skabeloner" og "systemer", hvis essens er at bruge "skabeloner" (bootstrap-skabeloner/) til hurtigt at installere systemer fra en fil, og direkte "systemer" (bootstrap- systemer/) bruges til at opsætte endelige konfigurationer.

Så for eksempel vil kørsel af scriptet boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild installere minimumskonfigurationen af ​​CRUX GNU/Linux-systemet og gemme det i filen crux_gnulinux-embedded.rootfs, så kører du boobstrap/bootstrap-systems /default/crux_gnulinux.bbuild som vil indlæse den primære konfiguration fra den nævnte fil, udføre al den nødvendige konfiguration og forberede en startbar ISO. Dette er praktisk, når for eksempel mange systemer bruger den samme type konfiguration: For ikke at beskrive det samme sæt pakker hver gang, bruger du én skabelon, baseret på hvilken du opretter opstartsbilleder af systemer med den endelige konfiguration.

Hvor kan jeg bruge alt dette?

Du konfigurerer systemet i en fil én gang og ved at køre det bygger og/eller opdaterer du det. Systemet kører i tmpfs, hvilket gør det i det væsentlige til engangsbrug. Hvis systemet svigter, kan du vende tilbage til dets oprindelige tilstand med et enkelt klik på knappen Reset. Du kan roligt køre rm -rf /.

Du kan konfigurere konfigurationerne af alle dine systemer lokalt, oprette billeder, teste dem i en virtuel maskine eller separat hardware, derefter uploade dem til en fjernserver og kun køre to kommandoer kexec -l /vmlinuz —initrd=/initrd && kexec -e for at opdatere hele systemet ved at genstarte det i tmpfs.

På samme måde kan du overføre alle systemer, for eksempel på VDS, til at arbejde i tmpfs, og kryptere /dev/vda disken og kun bruge den til data, uden at det er nødvendigt at beholde operativsystemet på den. Det eneste "punkt for informationslækage" i dette tilfælde vil kun være "cold dump" af hukommelsen på din virtuelle maskine, og i tilfælde af et kompromittering af systemet (for eksempel ved at gætte ssh-adgangskoden eller en sårbarhed i Exim), kan du downloade en ny ISO gennem din udbyders "kontrolpanel" for at bringe VDS'en tilbage i drift uden at glemme at redigere systemkonfigurationen for at lukke alle sårbarheder. Dette er hurtigere end at geninstallere, efterfølgende konfigurere og/eller gendanne fra en sikkerhedskopi, for i det væsentlige er den downloadbare ISO med dit system din backup. "Syv problemer - en nulstilling."

I sidste ende kan du oprette enhver distribution til dine behov, skrive det til et USB-drev og arbejde i det, opdatere det efter behov og omskrive det til USB-drevet igen. Alle data er gemt i skyerne. Du behøver ikke længere at bekymre dig om systemets sikkerhed og lave en backup, når systemet, jeg gentager, i det væsentlige er blevet "engangs".

Dine ønsker, forslag og kommentarer er velkomne.

I arkivet på linket nedenfor er der en detaljeret README-fil (på engelsk) med en beskrivelse af hvert hjælpeprogram og eksempler på brug, der er også detaljeret dokumentation på russisk og en udviklingshistorik tilgængelig på linket: Boobstrap boot script kompleks.

Kilde: linux.org.ru

Tilføj en kommentar