Flashdrive de montagem - montado no diretório home

3

Eu queria montar meu flashdrive e cometi o erro de configurar o caminho de montagem como /home/my_name . Agora todos os meus documentos, downloads, imagens, etc. estão indisponíveis desde que o meu flashdrive substituiu minha pasta pessoal anterior.

Quando vou para o terminal e digito sudo umount /home/my_name , recebo a mensagem de erro:

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

Existe uma maneira de corrigir isso, onde posso restaurar minha antiga pasta /home/my_name e montar o flashdrive em um local adequado?

    
por Eliah Kagan 28.12.2016 / 21:47

1 resposta

2

Uma montagem em um diretório não vazio oculta os arquivos contidos nela, o que geralmente é chamado de sombreamento . Isso não faz com que os arquivos estejam em risco. Há várias etapas fáceis para solucionar problemas, consertar ou (quando necessário) solucionar esse problema.

Certifique-se de que seu próprio shell não é o que impede que o sistema de arquivos seja desmontado.

Para um sistema de arquivos montado em sudo fuser -km /home/my_name , executar sudo fuser -km /home/my_name para eliminar todos os processos que acessam o sistema de arquivos, como você fez, normalmente é suficiente para permitir que você desmonte-o. Você relatou que quando você fez isso, seu terminal foi fechado como resultado.

Isso acontecerá se seu diretório atual, no shell, for o ponto de montagem que você está tentando desmontar ou um de seus subdiretórios. (Seu shell está morto e, em seguida, o programa do terminal em execução vê que o shell foi fechado e, na maioria das configurações, também é encerrado automaticamente, da mesma forma que quando você executa o comando exit .)

Para corrigir isso, simplesmente navegue para fora da montagem e tente desmontá-la novamente. Por exemplo, você pode alterar o diretório para / first:

cd /
sudo umount /home/my_name

Encontre e feche ou mate qualquer processo que esteja acessando arquivos na montagem.

Se você já está em uma situação onde não quer matar processos com fuser , ou se você é incapaz de fazer isso e precisa descobrir quais são esses processos, você tem várias opções para encontrá-los, incluindo alguns utilitários gráficos. Vou ilustrar brevemente uma opção aqui.

Você pode executar lsof em um diretório para ver quais processos estão acessando arquivos dentro dele:

lsof /home/my_name

Isso funciona bem para pontos de montagem. Às vezes, lsof é capaz de obter informações melhores se você executá-las como root, embora isso não seja necessário:

sudo lsof /home/my_name

A saída de lsof geralmente parece algo assim:

ek@Io:~$ sudo lsof ~/mnt/old
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output information may be incomplete.
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
flock   15529   ek  cwd    DIR    7,0     2048 1280 /home/ek/mnt/old
flock   15529   ek    3rW  REG    7,0    21114 1311 /home/ek/mnt/old/md5sum.txt
less    15530   ek  cwd    DIR    7,0     2048 1280 /home/ek/mnt/old
less    15530   ek    3r   REG    7,0    21114 1311 /home/ek/mnt/old/md5sum.txt
less    15530   ek    5r   REG    7,0      231 1325 /home/ek/mnt/old/README.diskdefines
bash    27465   ek  cwd    DIR    7,0     2048 1280 /home/ek/mnt/old

Isso informa os arquivos e processos que estão sendo usados. Em particular, se você tem uma situação em que seu shell é o que está impedindo a desmontagem, e você não notou que este é o caso, então lsof irá deixar claro como:

ek@Io:~$ lsof ~/mnt/old
lsof: WARNING: can't stat() tracefs file system /sys/kernel/debug/tracing
      Output information may be incomplete.
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
bash    27465   ek  cwd    DIR    7,0     2048 1472 /home/ek/mnt/old/boot

No exemplo acima, a única coisa que impedia que o sistema de arquivos fosse desmontado é que eu havia navegado em um subdiretório do ponto de montagem com meu shell ( bash ) e ainda estava lá.

Se você precisar de mais informações sobre um processo, uma maneira é executar ps com seu ID de processo, que é fornecido na segunda coluna da saída de lsof :

ek@Io:~$ ps 27465
  PID TTY      STAT   TIME COMMAND
27465 pts/3    Ss+    0:04 -bash

Você também pode matar o processo pelo seu PID ( kill 27465 , mas com o número apropriado em sua situação). Geralmente, é melhor tentar isso antes de passar para o kill -KILL 27465 mais strong. (O -9 flag funciona no lugar se -KILL também.)

Naturalmente, antes de usar o comando kill ou instalações semelhantes, geralmente é melhor tentar fechar os programas normalmente, especialmente se houver dados importantes em jogo. Por exemplo, é melhor salvar um documento e fechar um processador de texto do que sair do processador de texto com o comando kill .

Acesse os arquivos sombreados por meio de uma montagem de ligação não-recursiva.

Como Paulo diz em em Superusuário , você pode acessar arquivos sombreados por montagens criando uma montagem de ligação e navegando até lá:

sudo mkdir /mnt/root
sudo mount --bind / /mnt/root

Esses comandos são ligeiramente adaptados da excelente resposta de Paul para essa pergunta. (Eu o encorajo a consultar essa página para detalhes adicionais.) Você não precisa usar /mnt/root , mas é uma escolha tão boa quanto qualquer outra.

Se você fizer dessa forma, todo o seu sistema de arquivos raiz estará acessível através de /mnt/root .

Se você tiver uma partição /home separada, convém vincular a montagem de ligação a ela:

sudo mkdir /mnt/home
sudo mount --bind /home /mnt/home

Este é o mesmo que para / , apenas com /home .

Reiniciar.

sugestão do oldfred para reiniciar o sistema é uma solução razoável para este problema. Você deve ser capaz de desligar e reinicializar o sistema, se quiser. Seus dados são sombreados por uma montagem, mas não devem estar em risco de serem perdidos.

A reinicialização deve ser segura, mas você não precisa reiniciar para resolver isso, se não quiser. Se você tiver problemas com os métodos fornecidos acima e quiser fazê-los funcionar, por favor, comente ou (melhor) edite sua postagem. (Outras pessoas lendo isso com problemas semelhantes devem considerar postar uma nova pergunta.)

    
por Eliah Kagan 28.12.2016 / 23:02

Tags