บังคับยกเลิกการต่อเชื่อมอุปกรณ์วิธีการ


8

ฉันได้ติดตั้งอุปกรณ์บล็อก (ฮาร์ดดิสก์ภายใน) เพื่อพูด~/HDและฉันพยายาม

~# umount ~/HD

มันตอบ

umount: device is busy.

ตอนนี้ฉันฆ่ากระบวนการทั้งหมดด้วยตนเองโดยตรวจสอบ

~# fuser -m ~/HD

ฉันยังตรวจสอบให้แน่ใจว่าไม่มีกระบวนการใดเข้าถึง~/HDเส้นทาง

~# lsof | grep HD

ยังคงumount ~/HDบอกว่าdevice is busyแม้จะมี-fตัวเลือก

PS: ฉันไม่ต้องการใช้-lตัวเลือกumountเนื่องจากอุปกรณ์ที่ติดตั้งนั้นเป็นอุปกรณ์ทำแผนที่ที่เข้ารหัสซึ่งจริง ๆ แล้วจะไม่ได้รับการต่อเชื่อมจนกว่าอุปกรณ์ mapper นั้นจะถูกถอนการติดตั้งอย่างชัดเจน

ดังนั้นโดยทั่วไปคำถามของฉันคือวิธีการมันบังคับให้umountเลิกเมานท์อุปกรณ์หรือวิธีการสามารถอุปกรณ์ที่ยังคงถูกทำเครื่องหมายเป็นที่วุ่นวายในขณะที่กระบวนการไม่มีการเข้าถึง (หรืออย่างน้อยfuserและlsofไม่รายงาน) และสิ่งที่ฉันสามารถทำอะไรกับมันได้หรือไม่

ฉันใช้ Ubuntu 9.10 x64


เกี่ยวข้อง: superuser.com/questions/73028
Ilari Kajaste

คำตอบ:


3

คุณจะเห็นพฤติกรรมนี้หากคุณติดตั้งอย่างอื่นในไดเรกทอรีย่อยของ ~ / hd ในกรณีนี้ทั้งฟิวเซอร์และ lsof จะไม่แสดงอะไรเลย หากคุณไม่ได้ติดตั้งอะไรเลยภายใต้ ~ / hd ('mount' จะตอบคำถามนี้) ฉันไม่แน่ใจว่าควรตรวจสอบอะไร


ฉันเลือกคำตอบที่ดีที่สุดแม้จะไม่ใช่เงื่อนไขของฉัน แต่อาจช่วยคนอื่นได้ อีกทั้งไม่สามารถหาคำตอบที่ดีกว่านี้ได้ ;)
Vikrant Chaudhary

5

ตรวจสอบให้แน่ใจว่าไดเรกทอรีทำงานปัจจุบันของคุณ (เรียกใช้ 'pwd') ไม่อยู่ภายใต้ ~ / hd หากคุณอยู่ในไดเรกทอรีนั้น umount จะปฏิเสธการยกเลิกการต่อเชื่อม


3

คำสั่งlsofจะบอกให้คุณทราบว่ากระบวนการใดบ้างที่เปิดไฟล์ไว้


2

เพื่อค้นหากระบวนการ / ผู้ใช้ที่ดำเนินการ:

fuser -u / path / to / mount

จากนั้นดำเนินการสิ่งต่อไปนี้เพื่อลบ:

fuser -k / path / to / mount

ในที่สุดก็umountอุปกรณ์การกระทำผิดกฎหมาย


เป็นอันตราย ใช้ด้วย-Mเช่นกัน
Tom Hale

1

Larsks wrote: "คุณจะเห็นพฤติกรรมนี้หากคุณติดตั้งอย่างอื่นในไดเรกทอรีย่อยของ ~ / hd ในกรณีนี้ทั้งฟิวเซอร์และ lsof จะไม่แสดงอะไรเลย"

การใช้ lsof กับ grep จะแสดงการใช้ไดเรกทอรีย่อย - เช่น "lsof | grep HD"

ฉันมีปัญหาเช่นเดียวกับโปสเตอร์ต้นฉบับและพบสาเหตุโดยใช้คำสั่งด้านบน


0

คุณพยายามใช้การซิงค์ไหม

ซิงค์ล้างคำสั่งแคชระบบแฟ้มโดยการบังคับบล็อกการเปลี่ยนแปลงที่จะ writed บนดิสก์


ไม่จำเป็นต้องซิงค์ - umount จะล้างแคชตามต้องการ
Kevin Panko

0

หากคุณต้องการเลิกเมานท์จริงๆคุณสามารถใช้umount -f

จากผู้ชาย umount :

-f     Force unmount (in case of an unreachable NFS system).  (Requires kernel 2.1.116 or later.)

ใช้งานไม่ได้ แต่ไม่ใช่ความผิดของคุณ มันเป็นความผิดของไลนัส :-(
peterh - Reinstate Monica

0

ฉันไม่สามารถถอดออกได้เนื่องจากผู้ใช้มีเซสชัน SMB ที่เปิดอยู่ การตรวจสอบที่คุ้มค่า


1
ดูเหมือนว่าจะเป็นความคิดเห็นมากกว่านี้และคำตอบสำหรับคำถามอายุ 5 ปี
Ramhound

ฉันไม่มีตัวแทนและฉันจะลดระดับลง แต่อายุไม่สำคัญเมื่อโพสต์มีมุมมอง ~ 21k หรือไม่ นี่คือที่ google นำฉันวันนี้และ lsof | grep / mnt / disk แก้ไขปัญหาของฉัน
FreeSoftwareServers

1
ใช่; มันเป็นเรื่องสำคัญเพราะความคิดเห็นไม่ใช่คำตอบ คุณสามารถแก้ไขคำตอบของคุณได้อย่างง่ายดายและทำให้มันเป็นคำตอบ แต่ในปัจจุบันวิธีการเขียนมันดูเหมือนความคิดเห็น คำตอบจะอธิบายวิธีแก้ปัญหาโดยละเอียดและตอบคำถามที่ถามโดยเฉพาะ คุณไม่มีชื่อเสียงในการโพสต์ความคิดเห็นเนื่องจากคำตอบไม่ใช่วิธีที่คุณโพสต์ความคิดเห็น
Ramhound

แน่นอนว่าฉันต้องการแสดงความคิดเห็น แต่ทำไม่ได้ แต่คุณอ้างอิงความจริงว่ามันอายุ 5 ปีเหมือนเป็นเรื่องสำคัญ ฉันจะอัปเดตมันแล้ว ... และเพิ่มส่วนคำสั่ง ls grep
FreeSoftwareServers

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