Voltar à lista
Linux x86_64Sistema de arquivos#155

pivot_root

Troca o sistema de arquivos raiz do sistema (ou do namespace de mount atual) por outro já montado.

Descrição

Passo central na inicialização de containers e initramfs: move a raiz atual para um diretório dentro da nova raiz (permitindo desmontá-la depois) e torna o novo sistema de arquivos a raiz "/".

man 2

Nota

Exige CAP_SYS_ADMIN no namespace de mount relevante — normalmente usada dentro de um novo mount namespace (CLONE_NEWNS).

Assinatura

int pivot_root(const char * new_root, const char * put_old);

Parâmetros

ParâmetroTipoDescrição
new_rootconst char *Caminho do novo sistema de arquivos raiz (deve ser um ponto de montagem).
put_oldconst char *Diretório dentro de `new_root` onde a raiz antiga será colocada.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1new_rootconst char *
rsiargumento 2put_oldconst char *

Valor de retorno

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

Códigos de erro (errno)

EBUSY(16)
Dispositivo ou recurso ocupado.
EINVAL(22)
Argumento inválido.
ENOTDIR(20)
Não é um diretório.
EPERM(1)
Operação não permitida (falta de privilégio).

Relacionadas