คุณบังคับให้การเชื่อมต่อ CIFS ยกเลิกการต่อเชื่อมอย่างไร


149

ฉันมีการแชร์ CIFS ที่ติดตั้งบนเครื่อง Linux เซิร์ฟเวอร์ CIFS หยุดทำงานหรือการเชื่อมต่ออินเทอร์เน็ตหยุดทำงานและสิ่งใดก็ตามที่แตะ CIFS จะต้องใช้เวลาหลายนาทีก่อนที่จะหมดเวลาและไม่สามารถฆ่าได้ในขณะที่คุณรอ ฉันไม่สามารถเรียกใช้ ls ในโฮมไดเร็กตอรี่ของฉันได้เนื่องจากมี symlink ที่ชี้ภายใน CIFS mount และ ls พยายามที่จะติดตามมันเพื่อตัดสินใจว่าควรใช้สีอะไร ถ้าฉันพยายามที่จะขยายมัน (แม้จะมี -fl) กระบวนการ umount แฮงค์เช่นเดียวกับ ls แม้แต่ sudo kill -9 ก็ไม่สามารถฆ่ามันได้ ฉันจะบังคับให้เคอร์เนลยกเลิกการต่อเชื่อมได้อย่างไร


คำตอบ:


186

ฉันใช้ขี้เกียจ unmount: umount -l(นั่นเป็นตัวพิมพ์เล็กL)

ขี้เกียจ unmount แยกระบบไฟล์ออกจากลำดับชั้นของระบบไฟล์ในขณะนี้และล้างการอ้างอิงทั้งหมดไปยังระบบไฟล์ทันทีที่ไม่ยุ่งอีกต่อไป (ต้องการเคอร์เนล 2.4.11 หรือใหม่กว่า)


42
สิ่งนี้ไม่ได้ผลสำหรับฉันในตอนแรก หลังจากการทดลองในขณะที่ (ใน terminal เสมือนใหม่ทุกครั้ง) sudo umount -a -t cifs -lฉันมาด้วยนี้: ไม่ว่าจะเป็นกลอุบายหรือจำนวนครั้งแรกใช้เวลาสักครู่ (120s? 300s?) เพื่อให้เสร็จสมบูรณ์ ฉันได้รับคำเตือนมากมายเกี่ยวกับ umount ที่ถูกบล็อกนานกว่า 120 วินาที
Peter Jaric

2
จากนั้นฉันก็ต้องฆ่าม้าที่แขวนทั้งหมดก่อนที่ฉันจะขึ้นไปได้อีก
Peter Jaric

13
ฉันยังต้องการที่sudo umount -a -t cifs -l จะให้มันทำงาน
Joma

4
มันไม่ได้ผลสำหรับฉันจริงๆ ฉันลองทุกอย่างอื่นด้านบนและการติดตั้ง cifs หายไปจากรายการของฉัน / etc / mtab แต่ไม่สามารถเล่าซ้ำได้ดังนั้นมันจึงไร้ประโยชน์ cifs mount freezes เมื่อคอมพิวเตอร์ของฉันหยุดทำงานชั่วคราวในขณะที่ cifs share ถูกเมาท์
DH4

ฉันเห็นด้วย umount -a -t cifs -l เป็นสิ่งที่ฉันต้องการด้วยเพื่อผ่าน "Host is Down" ที่น่ากลัว
Pooch

70

umount -a -t cifs -l

ทำงานเหมือนเสน่ห์สำหรับฉันใน CentOS 6.3 มันช่วยฉันรีบูตเซิร์ฟเวอร์


8
คุณจะช่วยอธิบายเกี่ยวกับสิ่งที่ -aและ-lสวิตช์และวิธีการที่พวกเขากำลังช่วย?
ไอแซค

10
-a และ -t cifs unmounts ระบบไฟล์ cifs ทั้งหมด เป็นการดีกว่าที่จะระบุสิ่งที่คุณต้องการยกเลิกการต่อเชื่อม
dwery

2
นี่คือที่สมบูรณ์แบบถ้าคุณติดตั้งผ่านเบราว์เซอร์ไฟล์และคุณไม่สามารถหาจุดเมานต์ที่ละเมิด - หากคุณไม่รังเกียจที่จะเลิกเมานต์ทุกอย่าง!
ปราชญ์

1
ขอบคุณสิ่งนี้ช่วยประหยัดเวลาได้มากในวันนี้!
agam

13

ใน RHEL 6 สิ่งนี้ได้ผล:

umount -f -a -t cifs -l 

ทำงานได้ต้องรอ 30 นาทีเต็มก่อนที่จะถึงเวลา น่าจะดีที่สุดที่จะทำซอฟต์เมาท์เป็น jnice หมายถึง
XMAN

11

สิ่งนี้ใช้ได้สำหรับฉัน (Ubuntu 13.10 Desktop ไปยังเซิร์ฟเวอร์ Ubuntu 14.04): -

 sudo umount -f /mnt/my_share

ติดตั้งด้วย

 sudo mount -t cifs -o username=me,password=mine //192.168.0.111/serv_share /mnt/my_share

โดยที่ serv_share ตั้งค่าและชี้ไปที่ในไฟล์ smb.conf


6

ฉันมีปัญหานี้เป็นเวลาหนึ่งวันจนกระทั่งฉันพบความละเอียดที่แท้จริง แทนที่จะพยายามบังคับให้ถอนติดตั้งการแชร์ smb ที่หยุดทำงานให้เมาท์การแชร์ด้วยตัวเลือก "อ่อน" หากกระบวนการพยายามเชื่อมต่อกับการแชร์ที่ไม่พร้อมใช้งานกระบวนการจะหยุดพยายามหลังจากผ่านไประยะหนึ่ง

soft ทำให้เมานต์อ่อน การเรียกระบบไฟล์ล้มเหลวหลังจากผ่านไปหลายวินาที

mount -t smbfs -o soft //username@server/share /users/username/smb/share

stat /users/username/smb/share/file
stat: /users/username/smb/share/file: stat: Operation timed out

อาจไม่ใช่คำตอบที่แท้จริงสำหรับคำถามของคุณ แต่เป็นวิธีแก้ไขปัญหา


19
หากคุณดูman mount.cifsคุณจะสังเกตเห็นว่าsoftเป็นค่าเริ่มต้นจริง ๆ
Benj

2

ลองใช้ umount -f / mnt / share ทำงานได้ดีกับ NFS ไม่เคยลองกับ cif

นอกจากนี้ให้ดูที่ autofs มันจะติดส่วนแบ่งเฉพาะเมื่อเข้าถึงและจะยกเลิกการต่อเชื่อม afterworlds

มีการสอนที่ดีที่www.howtoforge.net


5
น่าเสียดายที่ -f ใช้งานไม่ได้กับ CIFS จำนวนยังคงแขวนอยู่
smoofra

2

ฉันมีปัญหาที่คล้ายกันมากกับ davfs ในหน้าคนของumount.davfsผมพบว่า ตัวเลือกจะถูกละเลยโดย-f -l -n -r -v umount.davfsการบังคับ unmount davfs umount -i -f -l /media/davmountของฉันติดผมต้องใช้


1

มีตัวเลือก -f ในการนับที่คุณสามารถลองได้:

umount -f /mnt/fileshare

คุณกำลังระบุตัวเลือก '-t cifs' เพื่อติดตั้งหรือไม่ ตรวจสอบให้แน่ใจด้วยว่าคุณไม่ได้ระบุตัวเลือก 'ยาก' ที่จะเมานต์

คุณอาจต้องการพิจารณาfusesmbเนื่องจากระบบไฟล์จะทำงานใน userspace คุณสามารถฆ่ามันเหมือนกับกระบวนการอื่น ๆ


4
-f และ -t ไม่ช่วยจำนวนที่ยังคงค้าง
smoofra

คุณรีบู๊ตแล้วตั้งแต่เพิ่มตัวเลือก '-t cifs' เพื่อเมาท์ ฉันไม่คิดว่าจะมีสิ่งใดที่คุณสามารถทำได้เพื่อแก้ไขจุดเมานท์ของคุณในตอนนี้ความหวังเดียวของคุณคือการลองและติดตั้งมันในแบบที่ทนต่อความล้มเหลวได้มากขึ้นในอนาคต
Chris AtLee

1
umount -f -t cifs -l /mnt &

ระวัง&ปล่อยให้umountทำงานในพื้นหลัง จะถอดระบบแฟ้มแรกเพื่อที่คุณจะพบอะไรยินดีต้อนรับท่านเข้าumount /mntหากคุณเรียกใช้dfคำสั่งแล้วมันจะumount /mntบังคับ



โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.