Qual é a maneira correta de instalar o systemd-boot?

Qual é a maneira correta de instalar o systemd-boot?

Por curiosidade, estou testando o systemd-boot no meu laptop que possui UEFI com inicialização segura. A instalação padrão do GRUB está funcionando bem.

Para systemd-boot, a maioria das pesquisas leva aesta página. Isso envolve instalar o systemd-boot com bootctl, criar loader.conf, criar um zz-update-systemd-bootscript postinst do kernel. Tudo parece bem até aqui, embora eu não entenda por que o systemd-boot não possui um driver ext4 fs para acessar os kernels. De qualquer forma, como esperado, a inicialização falha devido à inicialização segura.

A seção de inicialização segura desta página contém o PreLoader.efi& HashTool.efisetup. Após seguir os passos, a inicialização do sistema mostra o menu systemd-boot, mas após escolher o Ubuntu este erro é gerado:

EFI stub: UEFI Secure Boot is enabled.

Pelo que entendi, PreLoaderé um binário assinado aceito pela UEFI. Isso então carrega o loader.efi(renomeado systemd-bootx64.efi) cujo hash foi registrado. Isso carrega o vmlinuzkernel cujo hash também foi registrado. Portanto, parece que a cadeia segura está correta, mas a inicialização ainda falha. Parece que a assinatura da Canonical no kernel não desempenha um papel aqui.

Como fazer isso funcionar e entendi corretamente os aspectos seguros?

Responder1

Segui uma variação da página a que você se refere, sem as opções de inicialização segura.

Infelizmente, uma vez feitas as alterações, o linux-generic, linux-headers-generic e linux-image-generic do Ubuntu insistem em instalar o GRUBalém dea instalação do systemd-boot e defina o GRUB como a opção de inicialização padrão em cada atualização apt do kernel.

Como resultado, a caixa não inicializa mais usando systemd-boot na próxima reinicialização. Então, o que parece ser necessário é um comando final para executar o efibootmgr para redefinir a ordem de inicialização para usar o "ubuntu" novamente.

Para evitar esse incômodo, acho que os pacotes DEB linux-generic, linux-headers-generic e linux-image-generic do Ubuntu devem ser configurados para aceitar GRUBousystemd-boot como gerenciadores de inicialização aceitos, em vez de instalar o GRUB à força.

informação relacionada