ในขณะที่ฉันไม่ได้อยู่ที่เครื่องคอมพิวเตอร์ไดรฟ์ USB ที่เข้ารหัสของฉันก็ถูกถอดออกโดยไม่ได้ตั้งใจอย่างใดอย่างหนึ่ง (แม้ว่าจะยังคงมีการเชื่อมต่อทางกายภาพในขณะนั้น) ฉันยังไม่สามารถกู้คืนได้ (ยังไม่ได้ลองรีบูต) ตอนนี้ฉันได้ตัดการเชื่อมต่ออุปกรณ์อย่างสมบูรณ์ แต่ฉันยังคงได้รับ "อุปกรณ์หรือทรัพยากรไม่ว่าง" เมื่อฉันพยายามที่จะลบรายการห้อยต่องแต่งใน / dev / mapper ฉันสามารถเชื่อมต่อใหม่และเชื่อมต่อไดรฟ์โดยไม่ต้องรีบู๊ต
นี่คือสิ่งที่ฉันได้ลอง (เปลี่ยนชื่อเป็น "xxxxx") ...
$ sudo dmsetup ls
luks-xxxxx (252:1)
luks-yyyyy (252:0)
$ sudo umount /dev/mapper/luks-xxxxx
umount: /dev/mapper/luks-xxxxx: not mounted
$ sudo fuser --kill /dev/mapper/luks-xxxxx
$ echo $?
1
$ sudo dmsetup info -c luks-xxxxx
Name Maj Min Stat Open Targ Event UUID
luks-xxxxx 252 1 L--w 1 1 0 CRYPT-LUKS1-xxxxx-luks-xxxxx
$ sudo dmsetup remove luks-xxxxx
device-mapper: remove ioctl on luks-xxxx failed: Device or resource busy
Command failed
หลังจากเชื่อมต่ออุปกรณ์อีกครั้ง ...
$ sudo cryptsetup luksOpen "/dev/sde1" "luks-xxxxx"
Device luks-xxxxx already exists.
[แก้ไข] ฉันแก้ไขปัญหาในครั้งนี้โดยปิดตัวแก้ไขข้อความ GUI ซึ่งไม่มีไฟล์เปิดอยู่ แต่ได้รับการเปิดตัวจากโฟลเดอร์บนอุปกรณ์ที่เป็นปัญหา ดังนั้นคำถามจึงมีความเฉพาะเจาะจงมากขึ้น: คุณจะระบุได้อย่างไรว่าแอปพลิเคชันใดที่เปิดอุปกรณ์ค้างไว้
โปรดจำไว้ว่าlsof
ดูเหมือนจะไม่ได้นำเสนอวิธีแก้ปัญหาที่ง่ายเพราะเมื่ออุปกรณ์ถูกตัดการเชื่อมต่อชื่อที่เกี่ยวข้องที่ให้ไว้จะlsof
ไม่รวมชื่อของอุปกรณ์ที่ถูกตัดการเชื่อมต่ออีกต่อไป