Trong khi tôi rời khỏi máy tính của mình, ổ USB được mã hóa của tôi đã vô tình bị ngắt kết nối bằng cách nào đó (mặc dù lúc đó nó vẫn được kết nối vật lý). Tôi chưa thể phục hồi (chưa thử khởi động lại). Bây giờ tôi đã ngắt kết nối hoàn toàn thiết bị, nhưng tôi vẫn nhận được "Thiết bị hoặc tài nguyên bận" khi tôi cố gắng xóa mục nhập lơ lửng trong / dev / mapper. Tôi có thể kết nối lại và gắn ổ đĩa mà không cần khởi động lại không?
Đây là những gì tôi đã thử (tên dài đổi thành "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
Sau khi kết nối lại thiết bị ...
$ sudo cryptsetup luksOpen "/dev/sde1" "luks-xxxxx"
Device luks-xxxxx already exists.
[EDIT] Lần này, tôi đã giải quyết vấn đề bằng cách đóng trình soạn thảo văn bản GUI không có tệp đang mở nhưng đã được khởi chạy từ một thư mục trên thiết bị được đề cập. Vì vậy, câu hỏi trở nên cụ thể hơn: Làm thế nào bạn có thể xác định ứng dụng nào đang giữ thiết bị mở?
Hãy nhớ rằng lsof
dường như không đưa ra một giải pháp dễ dàng bởi vì, một khi thiết bị bị ngắt kết nối, các tên liên quan được cung cấp lsof
không còn bao gồm tên của thiết bị bị ngắt kết nối.