当我离开电脑一段时间后,我的加密USB驱动器不知何故意外卸载了(尽管当时它仍然物理连接着)。我还没有能够恢复(尚未尝试重新启动)。我现在已经完全断开了设备,但是当我尝试删除/dev/mapper中的悬空条目时,仍然显示"设备或资源忙"。我是否可以重新连接并挂载驱动器而无需重新启动?
以下是我尝试过的方法(长名称更改为"xxxxx")...
重新连接设备后...
[编辑]我解决了这个问题,这次是通过关闭一个没有打开文件但是从相关设备的文件夹中启动的GUI文本编辑器。所以问题变得更具体:如何确定哪个应用程序正在占用设备?
请注意,因为一旦设备断开连接,lsof似乎没有提供简单的解决方案,所以lsof提供的相关名称不再包括已断开设备的名称。
以下是我尝试过的方法(长名称更改为"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提供的相关名称不再包括已断开设备的名称。
/dev/disk/by-uuid
,成功找到了解决方法。解决方法与之前相同(先运行sudo dmsetup ls
,然后运行sudo lsof |grep xxx,x
,最后关闭/终止相关进程)。 - Brent Bradburn