How to launch vmlinuz-linux from efi shell?
How to start vmlinuz-linux from efi shell ? I jump into the ESP and type vmlinuz-linux (vmlinuz-linux is in the ESP) but it says vmlinuz-linux isn't recognized as an internal or external command, operable program, or batch file, why do I have to start a boot loader first I don't get it.
3 Answers
Just had to type /vmlinuz-linux root=PARTUUID=3518bb68-d01e-45c9-b973-0b5d918aae96 initrd=/initramfs-linux.img from this but had to remove the forward slash / before vmlinuz-linux to get it to work.
Whether you need a boot loader or not depends on whether your particular version of the Linux kernel supports EFI BOOT STUB.
See the following for more information:
IIRC, the EFI shell won't launch files as programs if their names don't end in .efi. Thus, you must first rename the kernel file so that its name ends in .efi.
If you can't rename the kernel file, you can still launch a kernel using the EFI stub loader via another boot manager program, such as gummiboot/systemd-boot or rEFInd. These tools don't care about the filename extension -- at least, not as much as the shell does. (rEFInd's auto-scanning feature matches to *.efi, vmlinuz*, bzImage*, and kernel*, but manual boot configuration for both programs will work with any filename.)
Also, as fpmurphy1 says, the kernel must be compiled with EFI stub support. Most distributions have included this support in their 3.3.0 and later kernels, but this may not be 100% universal, particularly if you compile your kernel yourself. (The last I checked, EFI stub support was not part of the default kernel configuration for kernel source obtained from kernel.org.)