Creación de imágenes de arranque boobstrap v1.0


Creación de imágenes de arranque boobstrap v1.0

Me gustaría presentarles un marco llamado boobstrap, escrito en el shell POSIX, para crear imágenes de arranque con distribuciones GNU/Linux. El marco le permite realizar todo el proceso en solo tres sencillos pasos: desde implementar el sistema en un chroot, crear una imagen initramfs que incluya el sistema chroot y, finalmente, una imagen ISO de arranque. boobstrap incluye tres utilidades mkbootstrap, mkinitramfs y mkbootisofs respectivamente.

mkbootstrap instala el sistema en un directorio separado, hay soporte nativo para CRUX y, en el caso de las distribuciones basadas en Arch Linux/Manjaro y Debian, se deben utilizar las utilidades de terceros pacstrap, basestrap y debootstrap respectivamente.

mkinitramfs crea una imagen initramfs, puede usar el sistema instalado en el directorio como una "superposición", comprimirlo usando SquashFS o, después de iniciar el sistema, trabajar directamente en tmpfs. Entonces, por ejemplo, el comando mkinitramfs `mktemp -d` --overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd creará un archivo initrd, que incluye dos superposiciones con "arch- chroot/" y su "/home", comprimido usando SquashFS, que luego puede iniciar a través de PXE en tmpfs, o crear una imagen ISO de inicio con este initrd.

mkbootisofs crea una imagen ISO de arranque BIOS/UEFI desde el directorio especificado. Simplemente coloque /boot/vmlinuz y /boot/initrd en el directorio.

boobstrap no usa togetherbox y, para crear un entorno initramfs que funcione, se copia un conjunto mínimo de programas usando ldd, necesarios para iniciar y cambiar al sistema. La lista de programas a copiar, como todo, se puede configurar a través del archivo de configuración /etc/boobstrap/boobstrap.conf. Además, puede instalar cualquier distribución minimalista en un chroot/ separado, desde el cual puede crear un entorno initramfs completo. Como entorno tan minimalista, pero al mismo tiempo completo, se propone utilizar la plantilla "crux_gnulinux-embedded", que después de xz ocupa un compromiso de 37 MB. Busybox, además de su tamaño, 3-5 MB frente a 30-50 MB de un entorno GNU/Linux completo, ya no ofrece ninguna ventaja, por lo que utilizar Busybox en un proyecto no parece apropiado.

¿Cómo comprobar rápidamente la funcionalidad y empezar? Instalar y ejecutar.

# git clon https://github.com/sp00f1ng/boobstrap.git
# cd correa de tetas
# hacer instalación# boobstrap/tests/crux_gnulinux-download-and-build
# qemu-system-x86_64 -enable-kvm -m 1G -cdrom tmp.*/install.iso

También necesita instalar dependencias, a saber: cpio, grub, grub-efi, dosfstools, xorriso. No es necesario usar squashfs-tools; puedes trabajar en tmpfs con la cantidad adecuada de RAM. Si falta algo en el sistema, boobstrap lo informará al iniciar.

Para simplificar la creación de configuraciones, boobstrap sugiere usar "plantillas" y "sistemas", cuya esencia es usar "plantillas" (bootstrap-templates/) para instalar rápidamente sistemas desde un archivo, y directamente "sistemas" (bootstrap- sistemas/) utilizados para establecer las configuraciones finales.

Entonces, por ejemplo, ejecutar el script boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild instalará la configuración mínima del sistema CRUX GNU/Linux y la guardará en el archivo crux_gnulinux-embedded.rootfs, luego ejecutará boobstrap/bootstrap-systems /default/crux_gnulinux.bbuild que cargará la configuración principal desde el archivo mencionado, realizará toda la configuración necesaria y preparará una ISO de arranque. Esto es conveniente cuando, por ejemplo, muchos sistemas usan el mismo tipo de configuración: para no describir el mismo conjunto de paquetes cada vez, se usa una plantilla, en base a la cual se crean imágenes de arranque de los sistemas con la configuración final.

¿Dónde puedo usar todo esto?

Usted configura el sistema en un archivo una vez y al ejecutarlo lo construye y/o actualiza. El sistema se ejecuta en tmpfs, lo que lo hace esencialmente desechable. Si el sistema falla, puede volver a su estado original con un clic en el botón Restablecer. Puede ejecutar rm -rf / de forma segura.

Puede configurar las configuraciones de todos sus sistemas localmente, crear imágenes, probarlas en una máquina virtual o hardware separado, luego cargarlas en un servidor remoto y ejecutar solo dos comandos kexec -l /vmlinuz —initrd=/initrd && kexec -e para actualizar todo el sistema, reiniciándolo en tmpfs.

De la misma manera, puedes transferir todos los sistemas, por ejemplo en VDS, para que funcionen en tmpfs, y cifrar el disco /dev/vda y usarlo solo para datos, sin necesidad de mantener el sistema operativo en él. El único "punto de fuga de información" en este caso será únicamente el "volcado en frío" de la memoria de su máquina virtual, y en caso de un compromiso del sistema (por ejemplo, al adivinar la contraseña ssh o una vulnerabilidad en Exim), puedes descargar una nueva ISO a través del “panel de control” de tu proveedor, para volver a poner en funcionamiento el VDS, sin olvidar editar la configuración del sistema para cerrar todas las vulnerabilidades. Esto es más rápido que reinstalar, configurar posteriormente y/o restaurar desde una copia de seguridad, porque en esencia, la ISO descargable con su sistema es su copia de seguridad. "Siete problemas, un reinicio".

Al final, puede crear cualquier distribución que se adapte a sus necesidades, escribirla en una unidad USB y trabajar en ella, actualizarla según sea necesario y volver a escribirla en la unidad USB. Todos los datos se almacenan en las nubes. Ya no necesita preocuparse por la seguridad del sistema y hacer una copia de seguridad cuando el sistema, repito, se haya vuelto esencialmente "desechable".

Sus deseos, sugerencias y comentarios son bienvenidos.

En el repositorio en el enlace a continuación hay un archivo README detallado (en inglés) con una descripción de cada utilidad y ejemplos de uso, también hay documentación detallada en ruso y un historial de desarrollo disponible en el enlace: Complejo de script de arranque Boobstrap.

Fuente: linux.org.ru

Añadir un comentario