NFS bağlantılı dizinin bağlantısını kesmeye zorla [kapalı]


163

Asılı bir Linux makinesinde NFS monte edilmiş bir dizin var. Bir bağlantıyı zorlamaya çalıştım, ama işe yaramıyor gibi görünüyor:

$ umount -f /mnt/data
$ umount2: Device or resource busy
$ umount: /mnt/data: device is busy

" mount" Yazarsam dizinin artık bağlanmadığı görülür, ancak " ls /mnt/data" yaparsam kilitleniyor ve bağlanma noktasını kaldırmaya çalışırsam şunu alıyorum:

$ rmdir /mnt/data
rmdir: /mnt/data: Device or resource busy

Makineyi yeniden başlatmak dışında yapabileceğim bir şey var mı?


3
Katılıyorum, kim bunu kapatmak için oy ciddiye karıştı. Bu sorun beni yıllarca rahatsız etti ve aşağıdaki cevap, Linux için umount -l, işe yaradığını bulduğum ilk çözüm.
Lizardx

1
Tamam, ama Süper Kullanıcı'da bulabilirsiniz. sorunun neden kapalı yerine taşınmadığını anlamıyorum.
deeenes

Umount için --forcebağlantısını kesme için daha çok çaba ve edecek -vveya -vvvmontaj ile sorunun ne olduğunu daha ortaya çıkaracaktır bile. Bu yüzden deneyin:umount -vvv --force /badmount
gaoithe

5
@deeenes Çünkü bu soru Eylül 2008'de sorulmuştur ve Süper Kullanıcı Temmuz 2009'a kadar başlatılmamıştır ;-)
Martin Tournoij

@Carpetsmoker ama 2013 yılında konu dışı olarak işaretlendi
16:57

Yanıtlar:


254

Tembel bir bağlantıyı deneyebilirsiniz:

umount -l

3
Bu her yerde uygulanmaz. Mesela FreeBSD'de yok.
Daniel Papasian

28
@Daniel: Emin, ama olan Linux soru (örneğin hatta olarak etiketlenen) ve Linux bunu var.
Jürgen A. Erhard

5
Bu komutu Ubuntu'da denedim ve işe yaramadı.
Kieran Andrews

1
Bu benim için çalıştı (Slackware 14.0). Ben (dahil lsof) her şeyi asılı NFS değil, bir CIFS montaj vardı . Yazdığım yedek komut dosyasından çıkarak soruna neden oldum. Komut dosyası dizini bağlar ve bağlantısını keser, ancak bağlantımın dağılmasından kurtulmakla ilgili bir şey rsync. Tembel kopukluğu bilmiyordum. Tüm soruna neden olan NAS cihazı olabilir. Başarıyla söktükten sonra, tekrar monte edebilmek için cihazı yeniden başlatmam gerektiği ortaya çıktı.
çeltik

10
@KieranAndrews ve Ubuntu'daki herkes deneyin fusermount -uz /path/to/file. Benim için bir cazibe çalıştı! :)
Matt Fletcher

78

NFS sunucusu kaybolduysa ve yeniden çevrimiçi olamıyorsanız, kullandığım bir numara NFS sunucusunun IP'si olan arabirime bir diğer ad eklemektir (bu örnekte, 192.0.2.55).

Linux

Bunun komutu kabaca şöyle:

ifconfig eth0:fakenfs 192.0.2.55 netmask 255.255.255.255

Burada 192.0.2.55, giden NFS sunucusunun IP'sidir. Daha sonra adrese ping atabiliyor olmanız ve ayrıca dosya sistemini sökebilmeniz gerekir (-f unmount komutunu kullanın). Daha sonra, eski NFS sunucusuna giden trafiği artık kendinize yönlendirmemek için takma adı arabirimi yok etmelisiniz:

ifconfig eth0:fakenfs down

FreeBSD ve benzeri işletim sistemleri

Komut şöyle bir şey olurdu:

ifconfig em0 alias 192.0.2.55 netmask 255.255.255.255

Ve sonra kaldırmak için:

ifconfig em0 delete 192.0.2.55

man ifconfig (8) daha fazlası için!


5
ifconfig eth0:fakenfs ...' and Umount -f -l / my / mount / dir ' kombinasyonu benim için sorunu çözdü.
pts

1
Ben de, unmount sorunu dizüstü bilgisayarımı askıya almamı engelliyor, bu yüzden bu çözüm gerçekten yararlı. Ben de otomatikleştirmek için kendi senaryom yaptı.
albfan

Linux'tan bir takma ad kaldırmak için öyle ifconfig eth0:fakenfs deletemi? Yoksa başka bir şey mi arıyorum? Gibi ifconfig eth0 delete 192.0.2.55mi?
Ehtesh Choudhury

2
@Shurane Linux altında, bir takma adı kaldırmak ifconfig eth0:fakenfs downhile yapmalıdır.
Sven

1
teşekkürler, parlak bir çalışma! benim durumumda nfs sunucusu tekrar çevrimiçi oldu ve hala onu umount olamazdı, bu hile yaptı, şerefe
nmirceac

20

Koşmayı dene

lsof | grep /mnt/data

Bu, / mnt / verisine erişen ve bağlantısının kesilmesini engelleyecek işlemleri listelemelidir.


1
Kesinlikle yararlı, ama tamamen beni kurtarmadı. Ama yardımsever.
James T Snell

2
Lsof sonsuza dek askıda kaldığında, "lsof -b" komutunu deneyin (NFS ile ilişkilendirilmiş bir lsof hatası vardır, bkz. Örneğin bugzilla.redhat.com/show_bug.cgi?id=962755 ).
dr0i

11

Ben aynı sorunu vardı ve ne umount /path -f, ne umount.nfs /path -f, ne fuser -km /path, eserleri

sonunda basit bir çözüm buldum>. <

sudo /etc/init.d/nfs-common restart, sonra basit umount;-) yapalım


5
Benim için çalıştıumount -f -l ...
mivk

Ubuntu sunucusunda 14.04 yapmak zorunda kaldım sudo service nfs-kernel-server restart, ama cevabınız beni doğru yola götürdü, teşekkürler!
Murmel

4

NFS sunucunuz kayboldu.

İdeal olanı, NFS sunucusunun geri gelmesidir.

Değilse, "umount -f" hile yapmış olmalıdır. HER ZAMAN işe yaramıyor, ancak sık sık işe yarıyor.

NFS dosya sistemini hangi işlemlerin KULLANdığını bilirseniz, bu işlemleri öldürmeyi deneyebilirsiniz ve sonra bir bağlantı kesilmesi işe yarayabilir.

Sonunda, yeniden başlatmanız gerektiğini tahmin ediyorum.

Ayrıca, NFS sürücülerinizi yumuşak bir şekilde BAĞLAMAYIN. Çalıştıklarını garanti etmek için sabit bağlar kullanırsınız. Yazma yapıyorsanız bu gereklidir.


Yumuşak ve sert montaj vs kullanım durumları gibi görünmektedir. Evet, yumuşak bir bağlanma, NFS sunucusu bir nedenden dolayı çökerse, o anda yazılmakta olan dosyaların bozulmasına neden olur ve bu nedenle sistem için kritik dizinler uygun olmayabilir, ancak müzik ve filmler gibi kritik olmayan dosyaları olan bir sürücü için çalışır sadece iyi.
zrajm

4

Burada çalışan bir cevap bulunamadı; ancak linux üzerinde "umount.nfs4 / volume -f" komutunu çalıştırabilirsiniz ve kesinlikle bu bağlantıyı keser.


4
Umount.nfs4 umount için bir alt komut değil mi? Başka bir deyişle, umount -f /some/mountpointile aynıdır umount.nfs4 /some/mountpoint -f.
Ville

1
İlginç. Yanımda (NFS Sunucusu kaybolduktan sonra): umountçağrılar umount.nfs, sonsuza kadar askıda kalır (seçenek ne olursa olsun). umount.nfs4 /mnt -foldukça uzun sürer, ancak tamamlanır. umount.nfs4 /mnt -lhemen tamamlanır (belki de süreçleri beklemediği için).
Tino
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.