Creació d'imatges bootstrap v1.0


Creació d'imatges bootstrap v1.0

M'agradaria presentar a la vostra atenció un marc anomenat boobstrap, escrit a l'intèrpret d'ordres POSIX, per crear imatges d'arrencada amb distribucions GNU/Linux. El marc us permet fer tot el procés en només tres passos senzills: des de desplegar el sistema en un chroot, crear una imatge initramfs que inclogui el sistema chrootat i, finalment, una imatge ISO d'arrencada. boobstrap inclou tres utilitats mkbootstrap, mkinitramfs i mkbootisofs respectivament.

mkbootstrap instal·la el sistema en un directori separat, hi ha suport natiu per a CRUX, i en el cas de les distribucions basades en Arch Linux / Manjaro i Debian, s'han d'utilitzar les utilitats de tercers pacstrap, basestrap i debootstrap respectivament.

mkinitramfs crea una imatge initramfs, podeu utilitzar el sistema instal·lat al directori com a "superposició", comprimit amb SquashFS, o després d'arrencar al sistema, treballar directament a tmpfs. Així, per exemple, l'ordre mkinitramfs `mktemp -d` --overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd crearà un fitxer initrd, incloses dues superposicions amb "arch- chroot/" i el vostre "/home", comprimits amb SquashFS, que podeu arrencar mitjançant PXE a tmpfs, o crear una imatge ISO d'arrencada amb aquest initrd.

mkbootisofs crea una imatge ISO d'arrencada BIOS/UEFI des del directori especificat. Només cal que poseu /boot/vmlinuz i /boot/initrd al directori.

boobstrap no utilitza busybox, i per crear un entorn initramfs que funcioni, es copia un conjunt mínim de programes mitjançant ldd, necessaris per arrencar i canviar al sistema. La llista de programes a copiar, com tota la resta, es pot configurar mitjançant el fitxer de configuració /etc/boobstrap/boobstrap.conf. A més, podeu instal·lar qualsevol distribució minimalista en un chroot/ separat, des del qual podeu crear un entorn initramfs complet. Com a entorn minimalista, però alhora complet, es proposa utilitzar la plantilla "crux_gnulinux-embedded", que després de xz ocupa un compromís de 37 MB. busybox, a més de la seva mida, 3-5 MB enfront de 30-50 MB d'un entorn GNU/Linux complet, ja no ofereix cap avantatge, de manera que l'ús de busybox en un projecte no sembla adequat.

Com comprovar ràpidament la funcionalitat i començar? Instal·leu i executeu.

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

També cal instal·lar dependències, a saber: cpio, grub, grub-efi, dosfstools, xorriso. L'ús de squashfs-tools no és necessari; podeu treballar en tmpfs amb la quantitat adequada de memòria RAM. Si falta alguna cosa al sistema, boobstrap ho informarà a l'inici.

Per simplificar la creació de configuracions, boobstrap suggereix utilitzar "plantilles" i "sistemes", l'essència dels quals és utilitzar "plantilles" (bootstrap-templates/) per instal·lar ràpidament sistemes des d'un fitxer, i directament "sistemes" (bootstrap- systems/) utilitzats per configurar les configuracions finals.

Així, per exemple, executar l'script boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild instal·larà la configuració mínima del sistema CRUX GNU/Linux i la desarà al fitxer crux_gnulinux-embedded.rootfs, després executarà boobstrap/bootstrap-systems /default/crux_gnulinux.bbuild que carregarà la configuració principal del fitxer esmentat, farà tota la configuració necessària i prepararà una ISO d'arrencada. Això és convenient quan, per exemple, molts sistemes utilitzen el mateix tipus de configuració: per no descriure el mateix conjunt de paquets cada vegada, utilitzeu una plantilla, a partir de la qual creeu imatges d'arrencada dels sistemes amb la configuració final.

On puc utilitzar tot això?

Configureu el sistema en un fitxer una vegada i, executant-lo, el creeu i/o actualitzeu. El sistema s'executa en tmpfs, cosa que el fa essencialment d'un sol ús. Si el sistema falla, podeu tornar al seu estat original amb un clic al botó Restableix. Podeu executar amb seguretat rm -rf /.

Podeu configurar les configuracions de tots els vostres sistemes localment, crear imatges, provar-les en una màquina virtual o un maquinari separat, després carregar-les a un servidor remot i executar només dues ordres kexec -l /vmlinuz —initrd=/initrd && kexec -e per actualitzar tot el sistema sencer, reiniciant-lo a tmpfs.

De la mateixa manera, podeu transferir tots els sistemes, per exemple en VDS, perquè funcionin en tmpfs, i xifrar el disc /dev/vda i utilitzar-lo només per a dades, sense necessitat de mantenir-hi el sistema operatiu. L'únic "punt de fuga d'informació" en aquest cas serà només l'"abocament en fred" de la memòria de la vostra màquina virtual, i en cas que el sistema es comprometi (per exemple, endevinant la contrasenya ssh o una vulnerabilitat en Exim), podeu descarregar una nova ISO a través del "tauler de control" del vostre proveïdor, per tornar a funcionar el VDS, sense oblidar-vos d'editar la configuració del sistema per tancar totes les vulnerabilitats. Això és més ràpid que la reinstal·lació, la configuració posterior i/o la restauració des d'una còpia de seguretat, perquè en essència, la ISO que es pot descarregar amb el vostre sistema és la vostra còpia de seguretat. "Set problemes: un restabliment".

Al final, podeu crear qualsevol distribució per a les vostres necessitats, escriure-la en una unitat USB i treballar-hi, actualitzant-la segons sigui necessari i tornant a escriure-la a la unitat USB. Totes les dades s'emmagatzemen als núvols. Ja no us haureu de preocupar per la seguretat del sistema i fer una còpia de seguretat quan el sistema, repeteixo, s'hagi tornat essencialment "d'un sol ús".

Els vostres desitjos, suggeriments i comentaris són benvinguts.

Al repositori de l'enllaç següent hi ha un fitxer README detallat (en anglès) amb una descripció de cada utilitat i exemples d'ús, també hi ha documentació detallada en rus i un historial de desenvolupament disponible a l'enllaç: Complex d'script d'arrencada Boobstrap.

Font: linux.org.ru

Afegeix comentari