booty - utilitário para criar imagens e unidades de inicialização

O programa é apresentado Saque, que permite criar imagens initrd inicializáveis, arquivos ISO ou unidades contendo qualquer distribuição GNU/Linux com um único comando.LinuxO código está escrito em shell POSIX e distribuído por licenciado sob GPLv3.

Todas as distribuições carregadas usando o Booty são executadas em SHMFS (tmpfs) ou SquashFS + Overlay FS, dependendo da escolha do usuário. A distribuição é criada uma única vez e, durante o processo de inicialização, são selecionadas opções para usar um tmpfs puro para o diretório raiz ou a combinação Overlay FS + SquashFS com as alterações gravadas no tmpfs. É possível pré-copiar a distribuição inicializável para a RAM, permitindo que a unidade USB seja desconectada após a inicialização e a cópia da distribuição para a RAM.

Primeiramente, o Booty gera sua própria imagem initrd, que pode usar utilitários nativos do sistema atual ou do Busybox. É possível incluir (empacotar) toda a distribuição instalada em um diretório no initramfs (chroot). Isso pode ser útil ao atualizar o sistema usando o kexec: basta recarregar o initrd com o novo kernel e o novo sistema dentro dele.

Criando uma imagem initrd específica para Booty:

mkdir initramfs/
mkinitramfs initramfs/ --output initrd

Criando uma imagem initrd com a inclusão da distribuição do diretório "gentoo/":

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

Após isso, esta imagem initrd estará completamente pronta para inicialização, por exemplo, via PXE ou via kexec.

O Booty gera imagens com o sistema especificado como "sobreposições". Por exemplo, você pode instalar (descompactar) uma instalação do Gentoo em um diretório separado, após o que o Booty gerará um arquivo cpio ou uma imagem SquashFS com esse sistema. Você também pode configurar a distribuição em um diretório separado e copiar suas configurações pessoais para outro diretório. Todas essas "camadas" serão carregadas sequencialmente umas sobre as outras, criando um único sistema funcional.

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

Em resumo, o Booty permite criar imagens ISO inicializáveis ​​e dispositivos USB, HDDs, SSDs e outras unidades, instalando o sistema descrito acima a partir dessas imagens. Saque Suporta a criação de sistemas de inicialização BIOS e UEFI. Os carregadores de inicialização GRUB2 e SYSLINUX são suportados. Os carregadores de inicialização podem ser combinados, por exemplo, usando SYSLINUX para inicialização BIOS e GRUB2 para inicialização UEFI. Para criar imagens ISO, você precisará adicionalmente dos pacotes cdrkit (genisoimage) ou xorriso (xorrisofs), dependendo da sua preferência.

O único passo adicional necessário é preparar o kernel (vmlinuz) para inicialização. O autor (Spoofing) recomenda usar "make defconfig". Antes de criar a imagem, você precisa preparar um diretório colocando o kernel vmlinuz e o initrd "vazio" previamente preparado no primeiro exemplo.

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

Isso conclui a preparação; agora podemos criar imagens ISO a partir deste diretório.

O comando a seguir criará uma imagem ISO, não uma imagem inicializável, apenas uma imagem ISO:

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

Para criar uma imagem inicializável, você deve especificar a opção "--legacy-boot" para BIOS e "--efi" para UEFI, respectivamente. As opções aceitam grub2 ou syslinux como parâmetros. Você também pode especificar apenas uma opção (por exemplo, se não precisar de suporte para inicialização UEFI, não precisa especificá-la).

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

Assim como as imagens do sistema eram anteriormente incluídas no initrd, você pode incluí-las na ISO.

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

Este comando irá gerar uma imagem ISO inicializável de BIOS/UEFI que inicializa o Gentoo a partir de uma imagem SquashFS usando o sistema de arquivos Overlay FS, que utiliza o tmpfs para armazenamento de dados. O kernel deve ser compilado com suporte a Overlay FS com SquashFS. No entanto, se isso não for necessário por algum motivo, você pode usar a opção "--cpio" em vez de --squashfs para empacotar o diretório gentoo/ como um arquivo cpio. Nesse caso, o arquivo será descompactado diretamente no tmpfs durante a inicialização. O único requisito é que haja RAM suficiente para descompactar o sistema no tmpfs.

Curiosidade: se você descompactar uma imagem ISO criada com a opção "--efi" em um pen drive formatado em FAT32 simplesmente copiando os arquivos (cp -r), o pen drive inicializará no modo UEFI sem qualquer preparação prévia, graças às especificidades dos carregadores de inicialização UEFI.

Além de ISOs inicializáveis, qualquer unidade inicializável — USB, HDD, SSD etc. — pode ser criada com os mesmos parâmetros. Essa unidade pode continuar sendo usada para sua finalidade original. Para isso, monte, por exemplo, um dispositivo USB e execute o comando `mkbootisofs` nele. Basta adicionar a opção "--bootable" para tornar a unidade que contém o diretório especificado inicializável.

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

Depois disso, o dispositivo USB se tornará inicializável com o overlay gentoo/ (não se esqueça de copiar os arquivos /boot/vmlinuz e /boot/initrd para o dispositivo).

Se, por algum motivo, a unidade não estiver montada em /mnt e /mnt estiver localizado no dispositivo primário /dev/sda, o carregador de inicialização será sobrescrito em /dev/sda. Tenha cuidado ao especificar a opção --bootable.

Durante o processo de inicialização, o Booty suporta diversas opções que podem ser especificadas no bootloader, grub.cfg ou syslinux.cfg. Por padrão, sem nenhuma opção, o Booty carrega e descompacta todos os overlays no tmpfs (a opção padrão é booty.use-shmfs). Para usar o Overlay FS, a opção booty.use-overlayfs deve ser utilizada. A opção booty.copy-to-ram primeiro copia os overlays para o tmpfs, depois os monta e inicializa o sistema. Após a cópia, o dispositivo USB (ou outro dispositivo de armazenamento) pode ser ejetado.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção DDoS, servidores VPS VDS 🔥 Compre hospedagem de sites confiável com proteção contra DDoS, servidores VPS/VDS | ProHoster