Linux [admin] Como testar o pivot_root?

1

Eu quero testar a linha de comando pivot_root , que move o sistema de arquivos raiz do processo atual para o diretório put_old e torna new_root o novo sistema de arquivos raiz. link

Mas eu sempre recebo

pivot_root: failed to change root from '.' to 'old-root/': Invalid argument

Eu uso o fedora como root base, eu tenho um Archlinux na minha pasta pessoal

[root@localhost arch-root]# ls
bin  boot  dev  etc  home  lib  lib64  mnt  old-root  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

[root@localhost arch-root]# pivot_root . old-root/ 
pivot_root: failed to change root from '.' to 'old-root/': Invalid argument

Eu também tento chamar a função linux pivot_root("/chroot_test", "/chroot_test/old-root"); Tem o mesmo erro.

Alguma ideia sobre isso?

Atualização 1:

Eu também tento testar pivot_root no Docker.

Eu montei essa raiz raiz no contêiner do Docker.

Mas obtenha o seguinte erro: Operation not permitted

root@00d871ce892b:/# cd test_root/
root@00d871ce892b:/test_root# ls
bin  boot  dev  etc  home  lib  lib64  mnt  old-root  opt  proc  root  run  sbin  srv     sys  test_pivot_root  test_pivot_root.c   tmp  usr  var
root@00d871ce892b:/test_root# pivot_root . tmp/
pivot_root: Operation not permitted

Encontrei a solução:

Execute a janela de encaixe com --privileged = true

Para que possamos testar o pivot_root no contêiner docker

    
por vvilp 16.09.2014 / 02:28

1 resposta

2

pivot_root está sujeito a várias limitações importantes; Uma delas é que a nova raiz deve estar em um sistema de arquivos diferente do atual. No seu caso, a menos que você tenha um sistema de arquivos montado em /home , é provável que seu sistema Arch esteja instalado no mesmo sistema de arquivos que a raiz atual.

Provavelmente, você não quer o pivot_root() , de qualquer forma. Ele é destinado principalmente a ser usado durante a inicialização do sistema e terá alguns efeitos realmente estranhos quando usado em um sistema em execução. Você provavelmente deseja usar chroot , pois isso não afeta o resto do sistema e não está sujeito a nenhuma das limitações ímpares de pivot_root . Tente, por exemplo:

chroot arch-root /bin/bash
    
por 16.09.2014 / 02:46

Tags