Tenho arquivos personalizados vmlinuz
e que compõem uma imagem PXE que uso. initrd
Existe alguma maneira de construir uma imagem equivalente ISO dada esta imagem initram?
Eu não posso parecer nada óbvio genisoimage
ou mkisofs
ferramentas. Estou faltando alguma coisa e talvez o que eu tento realizar não faça sentido?
A primeira pergunta é: você vai inicializar sistemas UEFI ou BIOS legados? Ou talvez ambos?
Para sistemas BIOS legados, você precisa de um carregador de inicialização capaz de atender à especificação de inicialização do sistema de arquivos ISO9660 (El Torito) e inicializar o Linux, como ISOLINUX .
Você precisará escrever um arquivo de configuração para o bootloader que diga a ele para carregar seu
vmlinuz
andinitrd
e fornecer todas as opções de inicialização do kernel necessárias e, em seguida, criar a imagem ISO a partir do bootloader, seu arquivo de configuraçãovmlinuz
einitrd
. Na fasegenisoimage
/mkisofs
, você precisará adicionar algumas opções para indicar que a imagem ISO deve ser construída com a extensão El Torito incluída.Observe que isso fornecerá uma imagem ISO que será inicializável apenas como um CD/DVD real ou virtual.
Para também fazer a imagem ISO funcionar quando gravada em um pendrive ou outra mídia semelhante a HDD, você precisará adicionar outro conjunto de estruturas ao arquivo de imagem, para que também seja interpretável como uma imagem de HDD inicializável válida. Esse processo pode ser chamado de
isohybrid
processo, pelo nome da primeira ferramenta que o tornou possível. As ferramentas de criação de imagens ISO mais recentes, comoxorriso
agora, têm a funcionalidade para isso embutida.Para UEFI, muitas implementações comuns de firmware UEFI lidarão com sistemas de arquivos ISO9660, portanto, qualquer carregador de inicialização UEFI que possa carregar um Linux
vmlinuz
einitrd
arquivos deve funcionar. Você só precisa colocar esse carregador de inicialização no sistema de arquivos ISO para que o arquivo do carregador de inicialização esteja<ISO mountpoint>/EFI/boot/bootx64.efi
(supondo que você inicialize um sistema x86 de 64 bits; para outras arquiteturas, o UEFI tem nomes de arquivo de carregador de inicialização diferentes).Também é possível incorporar uma imagem do sistema de arquivos FAT32 que contém os arquivos de inicialização UEFI em uma imagem ISO, para satisfazer até mesmo as implementações UEFI mais antigas/mais rigorosas/minimalistas que suportam apenas um tipo de sistema de arquivos FAT32, mas podem carregar um de um ISO9660/El Torito CD inicializável. Novamente, sua ferramenta de criação de imagem ISO precisará de algumas opções para especificar que você deseja fazer isso, e você também precisará fornecer a imagem do sistema de arquivos FAT32.