NFS-сервер мгновенно отключил соединение, теперь df, ls и umount все зависают

У меня есть запись fstab:

machine.local:/srv/files /res/files nfs defaults 0 0 

Он работал отлично до тех пор, пока machine.local не потерял связь на мгновение. Теперь эта доля недоступна. df , umount /res/files , ls /res все время вечно.

Что делать, если не перезагрузка?

NFS действительно должен повторно подключиться после восстановления сервера NFS. Это может занять несколько минут (нужно заметить таймаут). Параметр timeo позволяет вам изменить время ожидания таймаута.

umount -f /res/files , вероятно, отключит общий ресурс (и убьет все ожидающие его процессы), если вы попробуете его несколько раз.

В старых ядрах, если у вас есть доля, установленная с помощью intr , вы можете убить ожидающие процессы. На новых ядрах (2.6.25+) вы можете kill -9 .

Параметры клиента NFS задокументированы в man- nfs(5) .

Примечание. В некоторых версиях umount есть ошибка, в которой они пытаются установить файловую систему перед ее размонтированием. Если это так, вам понадобится тривиальная программа на C:

 #include <sys/mount.h> int main() { const char p[] = "/res/files"; umount2(p, MNT_FORCE); umount2(p, MNT_FORCE); return 0; } 

Мне нужно было сделать ленивый umount:

 umount -l /res/files mount /res/files 

https://bbs.archlinux.org/viewtopic.php?id=17567

Предполагая, что это система, которая ее поддерживает, вы можете попробовать принудительно размонтировать файловую систему, а затем снова установить:

 umount -f /res/files mount /res/files