Processa a tentativa de acessar um bloco do sistema de arquivos indefinidamente se o driver do sistema de arquivos nunca responder.
Para um sistema de arquivos que é armazenado em um dispositivo de armazenamento, a principal causa para não responder é que o hardware subjacente não está respondendo ou está com defeito. Isso geralmente produz mensagens copiosas nos logs do kernel (visíveis com dmesg
no Linux ou no arquivo de log apropriado, como /var/log/kern.log
) e, eventualmente, causa um tempo limite e um erro de E / S (EIO).
Sistemas de arquivos com suporte de rede podem não responder porque nenhuma resposta do servidor está chegando, o que pode ocorrer porque a rede está inoperante ou a máquina do servidor está inativa ou o programa do servidor não está sendo executado ou configurado corretamente. Dependendo do tipo de sistema de arquivos, do driver e de sua configuração, isso pode resultar em um tempo limite ou em uma espera infinita. O NFS, em particular, é padronizado para uma espera infinita: ele é sem estado (se o servidor ficar inativo no meio de uma operação, a operação pode continuar quando o servidor retornar), então os clientes bloqueiam até que o servidor responda (porque se o servidor não voltar eventualmente, em seguida, o sistema de arquivos irá se comportar corretamente).
Para sistemas de arquivos FUSE, cabe ao programa implementar o sistema de arquivos. O FUSE é muito flexível, pois pode ser implementado por programas arbitrários. O reverso da moeda é que às vezes os sistemas de arquivos FUSE não são muito robustos internamente ou dependem de muitos outros componentes que podem se comportar mal.
Se um sistema de arquivos não estiver respondendo, primeiro verifique que tipo de sistema de arquivos é. No Linux, procure o ponto de montagem em /proc/mounts
; o ponto de montagem é o segundo campo e o tipo de sistema de arquivos é o terceiro campo. Isto diz-lhe onde procurar mais pistas:
- Para sistemas de arquivos em um dispositivo de armazenamento, procure nos logs do kernel.
- Para sistemas de arquivos com suporte de rede, verifique a conectividade de rede e verifique se o servidor está respondendo. Registros relevantes geralmente estão em registros de serviço (por exemplo,
/var/log/syslog
ou/var/log/daemon.log
ou um registro específico do serviço de rede). - Para sistemas de arquivos FUSE, verifique se o processo está respondendo.
Se você tem processos bloqueados em E / S e desistiu de esperar que o sistema de arquivos retornasse, você pode querer forçar a desmontagem do sistema de arquivos. Se for um sistema de arquivos FUSE, matar o processo que o fornece fará o truque. Para qualquer tipo de sistema de arquivos, no Linux, você pode executar uma “desmontagem lenta” com umount -l
: isso desanexa o sistema de arquivos do seu ponto de montagem, mesmo se o driver do sistema de arquivos estiver travado; o motorista continua operando (por exemplo, ele continua se comunicando com o hardware, se é isso que está fazendo).