booty - utilidade para crear imaxes de arranque e unidades

Programa presentado saqueo, que lle permite crear imaxes initrd de arranque, ficheiros ISO ou unidades que conteñan calquera distribución GNU/Linux cun só comando. O código está escrito no shell POSIX e distribuído por licenciado baixo GPLv3.

Todas as distribucións iniciadas con Booty executan SHMFS (tmpfs) ou SquashFS + Overlay FS, a elección do usuario. A distribución créase unha vez, e durante o proceso de arranque, selecciónanse parámetros que lle permiten usar tmpfs puros para a raíz ou unha combinación de Overlay FS + SquashFS con cambios de gravación en tmpfs. É posible copiar previamente o kit de distribución descargable na memoria RAM, o que lle permite desconectar a unidade USB despois de descargar e copiar o kit de distribución na memoria.

En primeiro lugar, Booty xera a súa propia imaxe initrd, que pode usar utilidades nativas do sistema ou busybox actual. É posible incluír (empaquetar) todo o kit de distribución instalado no directorio (chroot) en initramfs. Isto pode ser útil cando precisa actualizar un sistema usando kexec: simplemente recargue o initrd cun novo núcleo e un novo sistema dentro do initrd.

Creando unha imaxe initrd específica de Booty:

mkdir initramfs/
mkinitramfs initramfs/ --output initrd

Creando unha imaxe initrd incluíndo a distribución desde o directorio “gentoo/”:

mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --cpio --output initrd

Despois diso, esta imaxe initrd está completamente lista para cargar, por exemplo, a través de PXE ou a través de kexec.

A continuación, Booty xera imaxes co sistema especificado como "superposicións". Por exemplo, pode instalar (descomprimir o arquivo) un Gentoo condicional nun directorio separado, despois do cal se xerará un arquivo cpio ou unha imaxe SquashFS con este sistema usando Booty. Tamén pode configurar a distribución nun directorio separado e copiar a súa configuración persoal noutro directorio. Todas estas "capas" cargaranse secuencialmente unhas encima das outras e crearán un único sistema de traballo.

mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --overlay settings/ --overlay documents/ --squashfs --output initrd

En definitiva, Booty permítelle crear imaxes ISO de arranque e USB, HDD, SSD e outras unidades instalando o sistema anterior a partir de imaxes. saqueo admite a creación de sistemas de arranque BIOS e UEFI. Admítense os cargadores de arranque GRUB2 e SYSLINUX. Os cargadores de arranque pódense combinar, por exemplo, usa SYSLINUX para arrincar na BIOS e GRUB2 para UEFI. Para crear imaxes ISO, necesitará ademais o paquete cdrkit (genisoimage) ou xorriso (xorrisofs), para escoller.

A única acción adicional necesaria é preparar o núcleo (vmlinuz) para o arranque con antelación. O autor (Spoofing) recomenda usar "make defconfig". Antes de crear a imaxe, cómpre preparar un directorio colocando o núcleo vmlinuz e o initrd "baleiro" preparado previamente creado no primeiro exemplo.

mkdir iso/
cp /boot/vmlinuz-* iso/boot/vmlinuz
cp initrd iso/boot/initrd

Con isto a preparación está completa, agora podemos crear imaxes ISO desde este directorio.

O seguinte comando creará unha imaxe ISO, non unha de arranque, só unha ISO:

mkdir iso/
mkbootisofs iso/ --output archive.iso

Para crear unha imaxe de arranque, cómpre especificar a opción "--legacy-boot" para BIOS e "--efi" para UEFI, respectivamente; as opcións toman como parámetros grub2 ou syslinux; tamén pode especificar só unha opción ( por exemplo, o soporte de arranque UEFI non é necesario, é posible que non se especifique).

mkbootisofs iso/ --legacy-boot syslinux --output boot-biosonly.iso

mkbootisofs iso/ --legacy-boot syslinux --efi grub2 --output boot-bios-uefi.iso

mkbootisofs iso/ --efi grub2 --output boot-uefionly.iso

E do mesmo xeito que antes, as imaxes co sistema foron incluídas no initrd, podes incluílas na ISO.

mkbootisofs iso/ --overlay gentoo/ --squashfs --legacy-boot grub2 --efi grub2 --output gentoo.iso

Despois deste comando, xerarase unha imaxe ISO de BIOS/UEFI de arranque que carga Gentoo na imaxe SquashFS usando Overlay FS, usando tmpfs para o almacenamento de datos. O núcleo debe ser construído co soporte de Overlay FS con SquashFS. Non obstante, se por algún motivo non é necesario, pode usar a opción “—cpio” en lugar de —squashfs para empaquetar gentoo/ como un arquivo cpio, nese caso o arquivo descomprimirase directamente en tmpfs ao arrancar, o principal. é que para desempaquetar o sistema tmpfs tiña RAM suficiente.

Dato interesante: se unha imaxe ISO creada usando a opción "—efi" se desempaqueta nunha unidade flash FAT32 simplemente copiando ficheiros (cp -r), entón a unidade flash arrancará en modo UEFI sen ningunha preparación previa, grazas ás características específicas. de descargadores UEFI.

Ademais das ISO de arranque, pódese crear calquera unidade de arranque cos mesmos parámetros: USB, HDD, SSD, etc., e esta unidade pode seguir utilizándose para o propósito previsto. Para iso, cómpre montar, por exemplo, un dispositivo USB e executar mkbootisofs nel. Só ten que engadir unha opción "—arrancable" para que a unidade na que se atopa o directorio especificado se faga de arranque.

montar /dev/sdb1 /mnt
mkbootisofs /mnt --overlay gentoo/ --squashfs --legacy-boot grub2 --efi grub2 --bootable

Despois diso, o dispositivo USB volverase arrincar coa superposición gentoo/ (non esqueza copiar os ficheiros /boot/vmlinuz e /boot/initrd no dispositivo).

Se por algún motivo a unidade non se montou en /mnt, e resulta que /mnt está situado no dispositivo principal /dev/sda, entón o cargador de arranque volverase a escribir en /dev/sda. Debería ter coidado ao especificar a opción --bootable.

Durante o proceso de inicio, Booty admite unha serie de opcións que se poden pasar ao cargador de arranque, grub.cfg ou syslinux.cfg. Por defecto, sen ningunha opción, todas as superposicións cárganse e desempaquetan en tmpfs (opción predeterminada ooty.use-shmfs). Para usar Overlay FS débese utilizar a opción booty.use-overlayfs. A opción booty.copy-to-ram copia primeiro as superposicións a tmpfs, despois de que só as conecta e cárgaas. Unha vez copiado, pódese eliminar o dispositivo USB (ou outro dispositivo de almacenamento).

Fonte: opennet.ru

Engadir un comentario