Creando imaxes bootstrap v1.0


Creando imaxes bootstrap v1.0

Gustaríame presentarlle á súa atención un framework chamado boobstrap, escrito no shell POSIX, para crear imaxes de arranque con distribucións GNU/Linux. O marco permítelle pasar por todo o proceso en só tres pasos sinxelos: desde a implantación do sistema nun chroot, a creación dunha imaxe initramfs que inclúa o sistema chrooteado e, finalmente, unha imaxe ISO de arranque. boobstrap inclúe tres utilidades mkbootstrap, mkinitramfs e mkbootisofs respectivamente.

mkbootstrap instala o sistema nun directorio separado, hai soporte nativo para CRUX e, no caso das distribucións baseadas en Arch Linux/Manjaro e Debian, débense utilizar as utilidades de terceiros pacstrap, basestrap e debootstrap respectivamente.

mkinitramfs crea unha imaxe initramfs, pode usar o sistema instalado no directorio como unha "superposición", comprimido usando SquashFS, ou despois de iniciar o sistema, traballar directamente en tmpfs. Así, por exemplo, o comando mkinitramfs `mktemp -d` --overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd creará un ficheiro initrd, incluíndo dúas superposicións con "arch- chroot/" e o seu "/home", comprimido usando SquashFS, que despois pode iniciar mediante PXE en tmpfs, ou crear unha imaxe ISO de arranque con este initrd.

mkbootisofs crea unha imaxe ISO de arranque BIOS/UEFI dende o directorio especificado. Só ten que poñer /boot/vmlinuz e /boot/initrd no directorio.

boobstrap non usa busybox, e para crear un ambiente initramfs que funcione, cópiase un conxunto mínimo de programas usando ldd, necesario para arrancar e cambiar ao sistema. A lista de programas a copiar, como todo o demais, pódese configurar a través do ficheiro de configuración /etc/boobstrap/boobstrap.conf. Ademais, pode instalar calquera distribución minimalista nun chroot/ separado, desde o que pode crear un ambiente initramfs completo. Como tal ambiente minimalista, pero ao mesmo tempo completo, proponse utilizar o modelo "crux_gnulinux-embedded", que despois de xz ocupa un compromiso de 37 MB. busybox, ademais do seu tamaño, 3-5 MB fronte a 30-50 MB dun ambiente GNU/Linux completo, xa non ofrece ningunha vantaxe, polo que usar busybox nun proxecto non parece apropiado.

Como comprobar rapidamente a funcionalidade e comezar? Instala e executa.

# 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

Tamén cómpre instalar dependencias, a saber: cpio, grub, grub-efi, dosfstools, xorriso. Non é necesario usar squashfs-tools; podes traballar en tmpfs coa cantidade adecuada de RAM. Se falta algo no sistema, boobstrap informará diso ao iniciar.

Para simplificar a creación de configuracións, boobstrap suxire usar "modelos" e "sistemas", cuxa esencia é utilizar "modelos" (bootstrap-templates/) para instalar rapidamente sistemas desde un ficheiro, e directamente "sistemas" (bootstrap- sistemas/) utilizados para configurar as configuracións finais.

Así, por exemplo, executando o script boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild instalará a configuración mínima do sistema CRUX GNU/Linux e gardaao no ficheiro crux_gnulinux-embedded.rootfs, despois executará boobstrap/bootstrap-systems /default/crux_gnulinux.bbuild que cargará a configuración primaria do ficheiro mencionado, fará toda a configuración necesaria e preparará unha ISO de arranque. Isto é conveniente cando, por exemplo, moitos sistemas usan o mesmo tipo de configuración: para non describir o mesmo conxunto de paquetes cada vez, usa un modelo, baseado no cal crea imaxes de arranque dos sistemas coa configuración final.

Onde podo usar todo isto?

Configura o sistema nun ficheiro unha vez e ao executalo constrúeo e/ou actualízao. O sistema funciona en tmpfs, o que o fai esencialmente desbotable. Se o sistema falla, pode volver ao seu estado orixinal cun só clic no botón Restablecer. Pode executar con seguridade rm -rf /.

Pode configurar as configuracións de todos os seus sistemas localmente, crear imaxes, probalas nunha máquina virtual ou hardware separado, despois cargalas a un servidor remoto e executar só dous comandos kexec -l /vmlinuz —initrd=/initrd && kexec -e para actualizar todo o sistema, reiniciándoo en tmpfs.

Do mesmo xeito, pode transferir todos os sistemas, por exemplo en VDS, para que traballen en tmpfs, e cifrar o disco /dev/vda e utilizalo só para datos, sen necesidade de manter o sistema operativo nel. O único "punto de fuga de información" neste caso será só o "volcado en frío" da memoria da súa máquina virtual, e no caso de comprometer o sistema (por exemplo, adiviñando o contrasinal ssh ou unha vulnerabilidade en Exim), pode descargar unha nova ISO a través do "panel de control" do seu provedor, para pór o VDS de novo en funcionamento, sen esquecer editar a configuración do sistema para pechar todas as vulnerabilidades. Isto é máis rápido que reinstalar, configurar posteriormente e/ou restaurar desde unha copia de seguridade, porque en esencia, a ISO descargable co seu sistema é a súa copia de seguridade. "Sete problemas: un reinicio".

Ao final, podes crear calquera distribución para as túas necesidades, escribila nunha unidade USB e traballar nela, actualizándoa segundo sexa necesario e reescribindoa de novo na unidade USB. Todos os datos almacénanse nas nubes. Xa non necesita preocuparse pola seguridade do sistema e facer unha copia de seguridade cando o sistema, repito, se volveu esencialmente "desbotable".

Os teus desexos, suxestións e comentarios son benvidos.

No repositorio na seguinte ligazón hai un ficheiro README detallado (en inglés) cunha descrición de cada utilidade e exemplos de uso, tamén hai documentación detallada en ruso e un historial de desenvolvemento dispoñible na ligazón: Complexo de script de arranque de boobstrap.

Fonte: linux.org.ru

Engadir un comentario