Como iniciar o vmlinuz-linux a partir do efi shell?

Como iniciar o vmlinuz-linux a partir do efi shell?

Como iniciar o vmlinuz-linux a partir do shell efi? Eu pulo para o ESP e digito vmlinuz-linux(vmlinuz-linux está no ESP), mas ele diz vmlinuz-linux isn't recognized as an internal or external command, operable program, or batch file: por que preciso iniciar um gerenciador de inicialização primeiro, não entendi.

Responder1

Só tive que digitar /vmlinuz-linux root=PARTUUID=3518bb68-d01e-45c9-b973-0b5d918aae96 initrd=/initramfs-linux.imgissohttps://wiki.archlinux.org/index.php/EFISTUB#Booting_EFISTUBmas tive que remover a barra /antes vmlinuz-linuxpara que funcionasse.

Responder2

Se você precisa ou não de um carregador de boot, depende se sua versão específica do kernel Linux suporta EFI BOOT STUB.

Consulte o seguinte para obter mais informações:https://www.kernel.org/doc/Documentation/efi-stub.txt

Responder3

IIRC, o shell EFI não iniciará arquivos como programas se seus nomes não terminarem em .efi. Portanto, você deve primeiro renomear o arquivo do kernel para que seu nome termine em .efi.

Se não for possível renomear o arquivo do kernel, você ainda poderá iniciar um kernel usando o carregador de stub EFI por meio de outro programa gerenciador de inicialização, como gummiboot/systemd-boot ou rEFInd. Essas ferramentas não se importam com a extensão do nome do arquivo – pelo menos não tanto quanto o shell. (O recurso de verificação automática do rEFInd corresponde a *.efi, vmlinuz*, bzImage*e kernel*, mas a configuração de inicialização manual para ambos os programas funcionará com qualquer nome de arquivo.)

Além disso, como diz fpmurphy1, o kernel deve ser compilado com suporte a stub EFI. A maioria das distribuições incluiu esse suporte em seus kernels 3.3.0 e posteriores, mas isso pode não ser 100% universal, especialmente se você mesmo compilar seu kernel. (A última vez que verifiquei, o suporte ao stub EFI não fazia parte da configuração padrão do kernel para a fonte do kernel obtida em kernel.org.)

Responder4

A melhor descrição está Documentation/efi-stub.txtneste exemplo:

fs0:> bzImage.efi console=ttyS0 root=/dev/sda4

Ele não detalha esse fs0:>prompt, nem menciona o (U)EFI Shell para substituir um gerenciador de inicialização "convencional". No meu caso, após inicializar no Uefi Shell, recebo Shell>um aviso e primeiro preciso escolher um sistema de arquivos ESP/FAT. (Você pode ter mais de um ESP mesmo por unidade)

O segundo ponto é adicionar a extensão ".efi" ao bzImage. Não preciso fazer isso (AMI 2.7). Portanto, pode ser reduzido para:

fsX:> bzImage root=/dev/sda4 [initrd=...] [...]

Outra confusão pode ser as barras no estilo DOS e a necessidade de caminhos absolutos nos .nshscripts. Com as imagens em uma pasta própria “distro”, a linha fica assim:

distro\bzImage initrd=distro\initrd root=/dev/sdaX

Observe que o parâmetro root possui barras; ele é usado pelo kernel, não pelo Uefi Shell.

informação relacionada