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


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

Después solo un mes Después de un lento desarrollo, se lanzó boobstrap v1.2, un conjunto de herramientas en el shell POSIX para crear imágenes y unidades de arranque.

Boobstrap te permite ejecutar solo un comando:

  • Cree una imagen initramfs, incluyendo cualquier distribución GNU/Linux que contenga.
  • Cree imágenes ISO de arranque con cualquier distribución GNU/Linux.
  • Cree unidades USB, HDD y SSD de arranque con cualquier distribución GNU/Linux.

La peculiaridad es que después de cargar GNU/Linux funcionará completamente en tmpfs puro o usando imágenes Overlay FS y SquashFS, tu elección. Instala cualquier distribución GNU/Linux en un directorio, realiza todas las configuraciones necesarias (posiblemente en un directorio separado), después de lo cual crea un dispositivo de arranque con un solo comando, ya sea una imagen ISO, USB, HDD, unidad SSD o puedes crear una imagen initrd con system. El sistema siempre estará en el mismo estado y en caso de avería podrás volver a su estado original pulsando un botón de Reset. ¿Quiere transferir el sistema a otro host o crear un sistema a partir de un contenedor existente? Boobstrap lo hará.

Entre los cambios clave:

  • Se agregó soporte para el gestor de arranque syslinux, además del grub2 ya existente. Ahora puede elegir usar grub2, syslinux o ambos al crear un dispositivo de arranque o una imagen ISO con las opciones --legacy-boot syslinux y --efi grub2 respectivamente, y también puede elegir qué modos la descarga admitirá la ISO. imagen.
  • Se agregó la opción --bootable, que hace que cualquier dispositivo de bloque sea arrancable. Para crear imágenes ISO, se debe utilizar la opción --iso-9660.
  • Se agregaron opciones de arranque del kernel boobs.use-shmfs para copiar el contenido de todas las superposiciones a tmpfs, boobs.use-overlayfs para arrancar usando Overlay FS, boobs.search-rootfs para seleccionar una fuente con el sistema, boobs.copy-to-ram para copiar el sistema en la memoria y luego apagar el dispositivo.
  • La única dependencia requerida para que boobstrap funcione es cpio. El resto de las dependencias son opcionales: grub2, syslinux - necesario para crear un dispositivo de arranque, cdrkit o xorriso para elegir - para crear una ISO, squashfs-tools para crear SquashFS, pero nada le impide usar la opción -cpio en lugar de - squashfs para empaquetar su distribución en un archivo. Busybox sólo se utilizará si está instalado, pero si no, se copiarán todas las utilidades necesarias de su sistema. Por lo tanto, se garantiza que boobstrap funcionará en casi todas partes.

Por ejemplo, el siguiente comando creará una imagen initrd que incluye gentoo-chroot/system empaquetado como una imagen SquashFS, que se iniciará exitosamente después de que se haya cargado el initrd. Permítame recordarle que para usar Overlay FS junto con SquashFS, debe pasar la opción del kernel boobs.use-overlayfs; de lo contrario, el sistema se descomprimirá en tmpfs. Todas las configuraciones adicionales se pueden realizar en un directorio separado, por ejemplo gentoo-settings/

# mkdir initramfs/
# mkinitramfs initramfs/ --overlay gentoo-chroot/ --overlay gentoo-settings/ --squashfs > initrd

Una imagen initrd con un sistema interno es conveniente cuando necesita implementar rápidamente un sistema, por ejemplo, a través de PXE, o en un sistema cargado, cambie a initrd usando el comando kexec -l /boot/vmlinuz-* —initrd=./initrd && kexec -e, bueno o, estando en la interfaz de la máquina virtual QEMU (posiblemente incluso Proxmox), inicie desde una fuente remota usando tres comandos IPXE: kernel http://[...]/vmlinuz, initrd http://[ ...]/initrd, arranque. Como puede ver, incluso un initrd normal con su sistema dentro tiene muchos usos.

Para crear unidades e imágenes de arranque, se usa el comando mkbootisofs, por ejemplo, así es como se ve la creación de una imagen ISO con la opción -iso-9660 usando syslinux para arrancar en modo heredado (BIOS) y grub2 para arrancar en EFI. modo (UEFI).

# mkdir initrd/
# mkinitramfs initrd/ > initrd
# mkdir isoimagen/
# mkdir isoimagen/arranque
# cp /boot/vmlinuz-* isoimage/boot/vmlinuz
# cp initrd isoimage/boot/initrd
# mkbootisofs isoimage/ —iso-9660 —legacy-boot syslinux —efi grub2 —salida boot.iso
--overlay gentoo-chroot/ --overlay gentoo-settings/ --squashfs

Puede especificar uno de los modos de inicio o no especificarlos en absoluto; la imagen ISO correspondiente se creará correctamente.

La instalación en cualquier unidad y el posterior arranque desde ella se realiza mediante la opción --bootable. Debe crear particiones en la unidad usted mismo (fdisk) y formatearlas (mkdosfs, mke2fs, etc.) y luego montar el dispositivo en un directorio.

# montar /dev/sdb1 /mnt/drive/
# mkbootisofs /mnt/drive/ --bootable --legacy-boot grub2 --efi grub2
--overlay gentoo-chroot/ --overlay gentoo-settings/ --squashfs

¡Cuidado! La opción --bootable determina desde qué dispositivo de bloque se monta el directorio e instala el gestor de arranque en este dispositivo. Si olvida montar el dispositivo o especifica por error un directorio ubicado, por ejemplo, en /dev/sda, el gestor de arranque en /dev/sda se sobrescribirá en consecuencia. Utilice --bootable con precaución.

La instalación de cualquier sistema GNU/Linux se reduce a un solo comando. La instalación se puede realizar en cualquier HDD, SSD, etc. Vale la pena recordar que este sigue siendo un sistema que se ejecuta desde Overlay FS / SquashFS, o se carga completamente en tmpfs, usted elige.

¡Entre otras cosas, boobstrap tiene una serie de características interesantes y capacidades adicionales!

Por ejemplo, puede crear un initrd boobstrap propietario con el comando mkinitramfs `mktemp -d` > /boot/initrd e iniciar su sistema con este initrd, especificando las opciones del kernel boobs.use-overlayfs boobs.search-rootfs=/dev /sda1. En este caso, /dev/sda1, donde está instalado su sistema doméstico, se conectará como una capa Overlay FS de solo lectura, y todos los cambios que realice se escribirán solo temporalmente en tmpfs. Puede agregar la opción boobs.copy-to-ram y luego todo su sistema se copiará a la RAM y el disco duro se podrá desconectar de la computadora. Conveniente cuando necesita romper algo y puede revertir los cambios simplemente reiniciando. 🙂

Pero, ¿qué pasa si aún necesitas guardar todos los cambios en el sistema? Por ejemplo, instaló software o algo más. Desafortunadamente, esto es imposible cuando se trabaja en tmpfs puro, pero si arrancó usando Overlay FS, todos los cambios que ocurren en el sistema se guardan en un directorio tmpfs separado: /mnt/overlayfs/rootfs-changes. El escenario de uso es muy simple. Arrancó su sistema desde un dispositivo USB, trabajó un poco y quiso guardar todo lo que se cambió, luego creó un archivo cpio y lo colocó aquí, en el mismo dispositivo USB.

# cd /mnt/overlayfs/rootfs-cambios
# encontrar . -imprimir0 | cpio --create --format "newc" --null --quiet > /mnt/drive/rootfs-changes.cpio
# CD $OLDPWD

Puede colocar el archivo junto a otras “capas” de SquashFS y cpio; luego, al cargarlo posteriormente, el archivo se conectará como una capa más de solo lectura. Para continuar trabajando con los cambios, use la opción de carga boobs.rootfs-changes=/rootfs-changes.cpio. La opción boobs.rootfs-changes habilita la capa especificada con acceso a cambios. La capa puede ser un dispositivo de bloque, por ejemplo, puede especificar /dev/sdb1, luego todos los cambios realizados en Overlay FS simplemente se guardarán en /dev/sdb1.

Boobstrap, a pesar de las amplias posibilidades disponibles, aún se encuentra en etapa de desarrollo, ¡todos tus comentarios y sugerencias son tomados en cuenta!

Fuente: linux.org.ru

Añadir un comentario