A etapa efibootmgr
apenas configura as variáveis de inicialização UEFI de seu sistema para adicionar esse carregador de inicialização específico nesse disco específico (identificado pelo UUID do disco no cabeçalho da tabela de partições GPT) na ordem de inicialização do seu sistema. Não tem nada a ver com o Secure Boot.
Ao preparar uma mídia removível inicializável com UEFI, você não precisará disso. Para UEFI, uma mídia removível é inicializável se tiver <media root>/EFI/Boot/bootx64.efi
nela. Em um stick USB formatado em FAT32, espera-se que ele esteja dentro do sistema de arquivos principal do stick; em um CD / DVD com formato ISO9660 real, o sistema de arquivos FAT32 deve ser empacotado em um arquivo de imagem de inicialização dedicado, cuja localização no disco é indicada nos dados de inicialização do El Torito.
Seu script build.sh
já inclui a criação de efiboot.img
, que aparentemente é destinado a ser esse arquivo de imagem de inicialização (desde que seja identificado com os parâmetros apropriados na fase de criação da imagem ISO).
Basicamente, seu build.sh
tem duas funções distintas para diferentes situações de inicialização UEFI: make_efi()
é para preparar o carregador de inicialização UEFI para um pendrive, e make_efiboot()
é para preparar uma imagem de inicialização para criar um CD / DVD ISO9660 imagem que será gravada em um CD / DVD real.
Você pode ter visto a instalação do Linux .iso
imagens que podem ser gravadas no pendrive usando dd
ou similar. Estas não são apenas imagens ISO9660 regulares com informações de inicialização do El Torito: essas imagens incluem processamento isohybrid
especial que coloca uma tabela de partição MBR simples no início da imagem ISO, que apresenta o arquivo efiboot.img
como uma "partição" dentro dos dados da imagem ISO, resultando em um arquivo de imagem "dual-mode" que pode funcionar tanto quando gravado em uma mídia CD / DVD real, e quando escrito em um dispositivo USB, mesmo quando o procedimento de inicialização real é muito diferente entre esses dois modos.
Seu build.sh
snippet aparentemente não inclui a etapa de criação da imagem ISO, portanto, não posso adivinhar se ${work_dir}/iso
será gravado na mídia USB real ou se será usado para criar um arquivo de imagem .iso
.
Alguns firmwares UEFI atualmente incluem suporte ao sistema de arquivos ISO9660 de forma nativa, então eles podem procurar por /EFI/Boot/bootx64.efi
em um sistema de arquivos ISO9660 em vez de (ou além) ler uma imagem especial de inicialização UEFI FAT32 usando a informação de inicialização El Torito; no entanto, nem todos os sistemas têm essa capacidade.