Não é possível excluir o diretório NFS antigo: Dispositivo ou recurso ocupado

2

No server1, tivemos um compartilhamento NFS montado do server2 assim:

/nfs/server2/share

Recentemente, removemos o server2 para instalar um novo sistema operacional nele. Agora não podemos obter a configuração do NFS como estava. Quando faço isso:

ls -l /nfs/server2

e está vazio. Portanto, não posso montar meu compartilhamento em /nfs/server2/share .

Quando tento criar o diretório /nfs/server2/share , obtenho

mkdir: cannot create directory 'share': No such file or directory

Acho que isso é porque realmente não acha que o diretório /nfs/server2 realmente existe. Mesmo se eu usar a opção -p com mkdir, não funciona.

Em seguida, tentei remover /nfs/server2 para poder recriá-lo. Eu tento rm -r /nfs/server2 mas recebo

rm: cannot remove directory '/nfs/server2': Device or resource busy

Então, agora estou perdido. Eu preciso montar esse compartilhamento NFS no mesmo local exato em server1 (em /nfs/server2/share ) porque outro software no servidor1 depende disso. Mas se eu não puder criar esse diretório de compartilhamento e não conseguir remover esse diretório, o que eu faço?

Além disso, apenas para teste, tentei montar o compartilhamento em /nfs/testing/share e ele montou muito bem. Mas como eu disse, preciso montá-lo no mesmo local.

UPDATE

O servidor2 não está montado de forma alguma no servidor1. Eu acho que o problema começou quando outro administrador derrubou server2 para reinstalar o sistema operacional sem primeiro desmontar o compartilhamento no servidor1. Não tenho certeza se isso faz diferença ou não. Em qualquer caso, mount | grep server2 não mostra nada e não há nada em fstab .

RESOLVIDO

Aparentemente, o automount estava em execução no server1 e esse serviço estava impedindo-me de excluir o diretório NFS antigo. Falta de comunicação entre sysadmins FTL ...

Suponho que a maneira de resolver este problema teria sido grep para algum processo ou serviço que está usando esse diretório que eu tentei excluir. Mas eu não sei como fazer isso.

    
por Jake Wilson 16.03.2010 / 17:48

3 respostas

1

Para referência futura, a opção mount --move é muito útil para mover uma montagem mal-comportada para fora do caminho. Veja também a opção umount -l .

    
por 16.03.2010 / 20:08
0

Você pode descobrir quais processos estão usando quais arquivos com lsof(1) .

Você precisará executar isso como root para acessar todas as informações sobre processos em sua máquina.

O Unix trata quase tudo como arquivos, assim você também pode obter uma lista de recursos de rede em uso.

Tente:

lsof | grep TCP 

uma ótima ferramenta de diagnóstico!

    
por 16.03.2010 / 19:42
0

Para visualizar as montagens atuais, procure em /etc/mtab , não /etc/fstab . /etc/fstab mostra o que a máquina tenta montar no início do sistema. /etc/mtab é um arquivo dinâmico que mostra o que é montado AGORA. Por exemplo, o comando mount , sem opções, mostra montagens atuais. As informações são fornecidas lendo /etc/mtab . Então agora você tem duas maneiras de ver o que está montado. Eles também mostram todas as opções para cada montagem, incluindo as padrão, que não são mostradas em /etc/fstab .

    
por 16.09.2016 / 19:12