Como desmontar um sistema de arquivos anteriormente chroot?

15

Estou usando um rescue-live-system (semelhante a um live-cd) para corrigir alguns problemas com meu servidor Debian, assim:

# mkdir -p /mnt/rescue
# mount /dev/md2 /mnt/rescue
# mount --bind /dev /mnt/rescue/dev/
# mount --bind /proc /mnt/rescue/proc/
# mount --bind /sys /mnt/rescue/sys/

Agora eu posso chroot para /mnt/rescue - mas depois que eu terminar, como desmontar o sistema de arquivos novamente?

umount: /mnt/rescue: target is busy.
    (In some cases useful info about processes that use
     the device is found by lsof(8) or fuser(1))

Acho que é porque dev , proc e sys estão vinculados ao sistema de arquivos montado. Mas também não é possível desmontá-los ...

    
por Afri 20.01.2013 / 10:00

5 respostas

13
  1. Você precisa primeiro sair da sessão chroot, geralmente um simples exit fará:

    exit
    
  2. Em seguida, desmonte TODOS os diretórios vinculados:

    umount /mnt/rescue/dev/
    umount /mnt/rescue/proc/
    umount /mnt/rescue/sys/
    
  3. Então:

    umount /mnt/rescue
    

Caso você esteja preocupado que sync não seja usado aqui, observe que não tem influência sobre a possibilidade de desmontagem. Desmontar liberações pendentes de gravação de qualquer maneira (tem que ser, porque não haveria nenhum lugar para eles irem após a desmontagem). A presença de um processo chrooted é irrelevante (exceto pelo fato de evitar a desmontagem). Na operação normal do sistema, a sincronização não tem efeito observável. A sincronização só faz diferença se um dispositivo for fisicamente desconectado sem ter sido desmontado ou se o sistema travar enquanto o dispositivo estiver montado.

    
por 20.01.2013 / 11:22
12

Execute o comando abaixo para forçar e desanexar o sistema de arquivos da hierarquia do sistema de arquivos e limpar todas as referências ao sistema de arquivos assim que ele não estiver mais ocupado.

umount -lf /mnt/rescue
    
por 12.10.2014 / 12:18
4

O motivo pelo qual você recebe o "alvo está ocupado". a mensagem é porque o ponto de montagem ( /mnt/rescue ) está aberto em um navegador de arquivos ou em uma sessão de terminal e também a ordem de desmontagem (aqui quero dizer dev/pts deve ser umount antes de dev/ )

Bem, a fim de desmontar todos os fs lá:

  • Verifique se o ponto de montagem não está aberto em um navegador de arquivos!
  • Depois de sair do diretório chroot change do diretório chroot dir ( cd )!
  • Um valor fs respeitando o pedido dev/pts => dev/ => proc/ => sys/ :

    sudo umount / mnt / resgate / dev / pts
    sudo umount / mnt / rescue / dev
    sudo umount / mnt / rescue / proc
    sudo umount / mnt / rescue / sys
    sudo umount / mnt / rescue

por 09.10.2015 / 02:30
2

Isto é como eu faço com o comando schroot no Ubuntu versão 10.04 para cima:

# list all sessions:
schroot --list --all-sessions
# if the above command does not work, just type 'mount'. The bind mount
# points with something like this in the mount path is the session name you want to get:
precise-a4aac8e0-663c-4fec-8fb2-16e4b06557e3 (<chroot_name>-<id>)

# now run this to properly end the session:
schroot -e -c precise-ca6c72e4-0e9f-4721-8a0e-cca359e2c2fd
    
por 13.07.2016 / 14:42
0

Saia do chroot. No sistema host, o comando 'mount' mostrará todo o caminho montado. (Inclui os caminhos que estão montados em chroot.) Por exemplo:

binfmt_misc on /home/user/projects/jsroot/proc/sys/fs/binfmt_misc

Em seguida, insira o ambiente chroot. No ambiente chroot, execute o comando desmonte para desmontar todo o caminho na ordem. (O caminho secundário deve ser desmontado antes do caminho pai.)

unmount /proc/sys/fs/binfmt_misc
unmount /proc/sys
unmount /proc
    
por 28.04.2017 / 08:49