Cara untuk mengeceknya adalah fuser -vm /mnt/dir
, yang harus dijalankan sebagai root. Ini akan memberi tahu Anda proses mana yang mengakses titik pemasangan.
Alternatifnya adalah lsof /mnt/dir
, yang akan menampilkan setiap file yang terbuka di mount. Sekali lagi terbaik jalankan sebagai root.
Anda dapat menjalankan semua ini sebagai non-root, tetapi kemudian output akan terbatas pada proses Anda — yang dari pengguna lain hanya akan diam-diam tidak ditampilkan, meskipun mereka akan mencegah unmount sistem file.
Contoh:
Watt:~# fuser -vm /mnt/Zia/src
USER PID ACCESS COMMAND
/mnt/Zia/src: root kernel mount /mnt/Zia/src
anthony 24909 ..c.. bash
anthony 25041 F.c.. gvim
Kolom "akses" memberi tahu Anda cara mengaksesnya. Dalam hal ini, kernel menggunakannya sebagai mount (ya, tetapi unmount akan baik-baik saja hanya dengan ini). bash
memilikinya sebagai direktori kerja saat ini (harus ke cd
direktori yang berbeda sebelum unmount) dan gvim keduanya memiliki direktori saat ini dan memiliki file yang terbuka (harus menutup gvim itu).
Watt:~# lsof /mnt/Zia/src
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 24909 anthony cwd DIR 0,26 12288 3527682 /mnt/Zia/src/perl (zia.vpn.home:/home/anthony/src)
gvim 25041 anthony cwd DIR 0,26 12288 3527682 /mnt/Zia/src/perl (zia.vpn.home:/home/anthony/src)
gvim 25041 anthony 6u REG 0,26 16384 3526219 /mnt/Zia/src/perl/.utf8.c.swp (zia.vpn.home:/home/anthony/src)
Dalam output ini, Anda dapat melihat direktori saat ini untuk bash dan gvim (sebagai tipe DIR
). Anda juga dapat melihat file gvim mana yang terbuka untuk ditulis.
Cara memaksa masalah:
fuser
memiliki -k
opsi yang akan mengirim sinyal (default:) SIGKILL
ke setiap proses menggunakan mount. Ini adalah cara yang agak kuat untuk menghentikan gunung agar tidak sibuk. (Dan tentu saja, berhati-hatilah dengan apa yang kamu SIGKILL
!)
umount
memiliki -l
opsi untuk melakukan unmount malas. Mount akan dihapus dari namespace filesystem (jadi Anda tidak akan melihatnya di bawah /mnt/Zia/src
, dalam contoh) tetapi tetap terpasang, sehingga program yang mengaksesnya dapat terus melakukannya. Ketika program terakhir yang mengaksesnya keluar, unmount akan benar-benar terjadi.
Ada satu penyebab final yang bisa diperbaiki dari unmount gagal, dan itu adalah server NFS turun. Di sini Anda dapat menggunakan umount -f
, tetapi Anda berisiko kehilangan data jika melakukannya. (Klien mungkin telah membuat cache penulisan yang belum dikonfirmasi oleh server, dan penulisan itu akan dibuang. Aplikasi, bagaimanapun, telah diberitahu bahwa penulisan berhasil.)