Criando imagens de bootstrap v1.2


Criando imagens de bootstrap v1.2

Depois apenas um mês Após um desenvolvimento lento, o boobstrap v1.2 foi lançado - um conjunto de ferramentas no shell POSIX para criar imagens e unidades de inicialização.

Boobstrap permite que você execute apenas um comando:

  • Crie uma imagem initramfs, incluindo qualquer distribuição GNU/Linux nela.
  • Crie imagens ISO inicializáveis ​​com qualquer distribuição GNU/Linux.
  • Crie unidades USB, HDD e SSD inicializáveis ​​com qualquer distribuição GNU/Linux.

A peculiaridade é que após o carregamento o GNU/Linux funcionará completamente em tmpfs puro, ou usando imagens Overlay FS e SquashFS, a sua escolha. Você instala qualquer distribuição GNU/Linux em um diretório, faz todas as configurações necessárias (possivelmente em um diretório separado), após o qual você cria um dispositivo de inicialização com apenas um comando, seja uma imagem ISO, USB, HDD, unidade SSD ou você pode criar uma imagem initrd com system. O sistema estará sempre no mesmo estado e em caso de avaria poderá regressar ao seu estado original premindo um botão Reset. Você deseja transferir o sistema para outro host ou criar um sistema a partir de um contêiner existente? Boobstrap fará isso.

Entre as principais mudanças:

  • Adicionado suporte para o bootloader syslinux, além do já existente grub2. Agora você pode escolher usar grub2, syslinux ou ambos ao criar um dispositivo de inicialização ou imagem ISO com as opções --legacy-boot syslinux e --efi grub2 respectivamente, e você também pode escolher quais modos o download suportará o ISO imagem.
  • Adicionada opção --bootable, que torna qualquer dispositivo de bloco inicializável. Para criar imagens ISO, a opção --iso-9660 deve ser usada.
  • Adicionadas opções de inicialização do kernel boobs.use-shmfs para copiar o conteúdo de todas as sobreposições para tmpfs, boobs.use-overlayfs para inicializar usando Overlay FS, boobs.search-rootfs para selecionar uma fonte com o sistema, boobs.copy-to-ram para copiar o sistema para a memória e depois desligar o dispositivo.
  • A única dependência necessária para o boobstrap funcionar é cpio. O resto das dependências são opcionais: grub2, syslinux - necessário para criar mídia inicializável, cdrkit ou xorriso para escolher - para criar um ISO, squashfs-tools para criar SquashFS, mas nada impede que você use a opção -cpio em vez de - squashfs para empacotar sua distribuição em um arquivo. O busybox só será usado se estiver instalado, mas caso contrário, todos os utilitários necessários do seu sistema serão copiados. Assim, é garantido que o boobstrap funcione em quase todos os lugares.

Por exemplo, o comando a seguir criará uma imagem initrd incluindo um sistema gentoo-chroot/ empacotado como uma imagem SquashFS, que será inicializada com sucesso após o carregamento do próprio initrd. Deixe-me lembrá-lo de que para usar o Overlay FS em conjunto com o SquashFS, você deve passar a opção do kernel boobs.use-overlayfs, caso contrário o sistema será descompactado em tmpfs. Todas as configurações adicionais podem ser feitas em um diretório separado, por exemplo gentoo-settings/

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

Uma imagem initrd com um sistema interno é conveniente quando você precisa implantar rapidamente um sistema, por exemplo, via PXE, ou em um sistema carregado, alterne para initrd usando o comando kexec -l /boot/vmlinuz-* —initrd=./initrd && kexec -e, bem ou, estando na interface da máquina virtual QEMU (possivelmente até Proxmox), inicialize a partir de uma fonte remota usando três comandos IPXE: kernel http://[...]/vmlinuz, initrd http://[ ...]/initrd, inicialização. Como você pode ver, mesmo um initrd normal com seu sistema interno tem muitos usos.

Para criar unidades e imagens inicializáveis, o comando mkbootisofs é usado, por exemplo, é assim que se parece a criação de uma imagem ISO com a opção -iso-9660 usando syslinux para inicializar no modo Legacy (BIOS) e grub2 para inicializar em EFI- modo (UEFI).

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

Você pode especificar um dos modos de inicialização ou não especificá-los, a imagem ISO correspondente será criada com sucesso.

A instalação em qualquer unidade e a inicialização subsequente a partir dela são realizadas usando a opção --bootable. Você mesmo precisa criar partições na unidade (fdisk) e formatá-las (mkdosfs, mke2fs, etc.) e, em seguida, montar o dispositivo em um diretório.

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

Cuidado! A opção --bootable determina de qual dispositivo de bloco o diretório é montado e instala o bootloader neste dispositivo. Se você esquecer de montar o dispositivo ou especificar por engano um diretório localizado, por exemplo, em /dev/sda, o carregador de inicialização em /dev/sda será substituído de acordo. Use --bootable com cuidado.

A instalação de qualquer sistema GNU/Linux é reduzida a apenas um comando. A instalação pode ser feita em qualquer HDD, SSD e assim por diante. Vale lembrar que este ainda é um sistema rodando a partir de Overlay FS/SquashFS, ou carregando inteiramente em tmpfs, a sua escolha.

Entre outras coisas, o boobstrap possui vários recursos interessantes e capacidades adicionais!

Por exemplo, você pode criar um initrd boobstrap proprietário com o comando mkinitramfs `mktemp -d` > /boot/initrd e inicializar em seu sistema com este initrd, especificando as opções do kernel boobs.use-overlayfs boobs.search-rootfs=/dev /sda1. Nesse caso, /dev/sda1, onde seu sistema doméstico está instalado, será conectado como uma camada Overlay FS somente leitura, e todas as alterações feitas serão gravadas apenas temporariamente em tmpfs. Você pode adicionar a opção boobs.copy-to-ram e então todo o seu sistema será copiado para a RAM e o disco rígido poderá ser desconectado do computador. Conveniente quando você precisa quebrar algo e pode reverter as alterações simplesmente reiniciando. 🙂

Mas e se você ainda precisar salvar todas as alterações no sistema? Por exemplo, você instalou software ou outra coisa. Infelizmente, ao trabalhar em tmpfs puro, isso é impossível, mas se você inicializou usando Overlay FS, todas as alterações que ocorrem no sistema serão salvas em um diretório tmpfs separado: /mnt/overlayfs/rootfs-changes! O cenário de uso é muito simples. Você inicializou seu sistema a partir de um dispositivo USB, fez algum trabalho e queria salvar tudo o que foi alterado, depois criou um arquivo cpio e colocou aqui, no mesmo dispositivo USB.

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

Você pode colocar o arquivo próximo a outras “camadas” SquashFS e cpio e, após o carregamento subsequente, o arquivo será conectado como apenas mais uma camada somente leitura. Para continuar trabalhando com alterações, use a opção de upload boobs.rootfs-changes=/rootfs-changes.cpio. A opção boobs.rootfs-changes habilita a camada especificada com acesso para alterações. A camada pode ser um dispositivo de bloco, por exemplo, você pode especificar /dev/sdb1, então todas as alterações feitas no Overlay FS serão simplesmente salvas em /dev/sdb1.

O Boobstrap, apesar das amplas possibilidades disponíveis, ainda está em fase de desenvolvimento, todos os seus comentários e sugestões são levados em consideração!

Fonte: linux.org.ru

Adicionar um comentário