Voltar à lista
Linux x86_64Sistema & diversos#320

kexec_file_load

Como kexec_load, mas carrega a imagem do kernel a partir de descritores de arquivo, com verificação de assinatura.

Descrição

Versão mais segura de `kexec_load`: o kernel valida a assinatura criptográfica da imagem antes de aceitar carregá-la, importante em sistemas com Secure Boot/kernel lockdown habilitados.

Header: linux/kexec.hman 2Desde o kernel 3.17

Assinatura

long kexec_file_load(
    int kernel_fd,
    int initrd_fd,
    unsigned long cmdline_len,
    const char * cmdline_ptr,
    unsigned long flags
);

Parâmetros

ParâmetroTipoDescrição
kernel_fdintDescritor de arquivo da imagem do novo kernel.
initrd_fdintDescritor de arquivo do initrd/initramfs, ou -1.
cmdline_lenunsigned longTamanho da linha de comando do kernel.
cmdline_ptrconst char *Linha de comando a passar ao novo kernel.
flagsunsigned longKEXEC_FILE_UNLOAD, KEXEC_FILE_ON_CRASH, KEXEC_FILE_NO_INITRAMFS.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1kernel_fdint
rsiargumento 2initrd_fdint
rdxargumento 3cmdline_lenunsigned long
r10argumento 4cmdline_ptrconst char *
r8argumento 5flagsunsigned long

Valor de retorno

0 em sucesso; -1 em erro, com errno definido.

Códigos de erro (errno)

EBADF(9)
Descritor de arquivo inválido.
EINVAL(22)
Argumento inválido.
ENOEXEC(8)
Formato de executável inválido.
EPERM(1)
Operação não permitida (falta de privilégio).

Relacionadas