Lennart Poettering sugeriu incluir no gerenciador de sistema systemd uma mudança que permite carregar o sistema usando uma imagem de sistema de arquivos raiz obtida de um host externo via protocolo HTTP. A alteração envolve a ampliação do systemd com a capacidade de não apenas baixar uma imagem de disco via HTTP na fase inicial de inicialização, mas também descompactar a imagem baixada, vinculá-la a um dispositivo em modo loopback, montar o dispositivo como /sysroot e inicializar o sistema a partir dele.
O suporte para baixar imagens de disco durante a inicialização do sistema com o systemd-import-generator já está incluído no systemd 257. As demais funcionalidades ainda estão em fase de protótipo, precisando de melhorias. A implementação ainda não suporta o ciclo completo de inicialização, mas no futuro planejam desenvolver a funcionalidade para inicializar através do UEFI HTTP Boot de imagens de núcleo universais UKI (Unified Kernel Image), que combinam em um único arquivo o carregador para UEFI (UEFI boot stub), a imagem do núcleo Linux e o ambiente de inicialização em memória initrd.
O URL para descarregar a imagem do sistema deverá ser calculado com base no URL definido para a imagem EFI nas configurações do UEFI HTTP Boot (por exemplo, ao inicializar através do EFI HTTP Boot "http://example.com/somedir/myimage.efi", o manipulador initrd do UKI obterá a imagem rootfs como "http://example.com/somedir/myimage.raw.xz"). Além do HTTP, no futuro planejam adicionar suporte à tecnologia NVMe-over-TCP como transporte para obter a imagem, permitindo acessar discos NVMe pela rede (NVM Express over Fabrics), utilizando o protocolo TCP.
Acredita-se que a inicialização com imagens obtidas de um host externo simplificará a organização de testes de sistemas operacionais modernos imutáveis em hardware real. O desenvolvedor pode criar uma imagem com um ambiente de sistema utilizando a ferramenta mkosi em seu computador e disponibilizá-la via HTTP com o comando "mkosi -f serve". No computador que precisa testar a funcionalidade do sistema, basta habilitar a inicialização por HTTP no EFI e adicionar o URL da imagem a ser carregada com o comando: kernel-bootcfg —add-uri=http://192.168.47.11:8081/image.efi —title=testloop —boot-order=0
Após isso, basta reiniciar o computador e ele carregará a imagem padrão do núcleo UKI, que por sua vez carregará a imagem de disco preparada pelo desenvolvedor, contendo o sistema de arquivos raiz. Até a desativação da inicialização EFI via HTTP, cada reinicialização subsequente do computador levará ao carregamento de uma nova imagem do sistema. Durante esses testes, os discos locais não são afetados.
Fonte: opennet.ru
