我在使用 Manjaro 的系统中使用 KDE dolphin 解锁 luks 加密磁盘时遇到问题。
这个问题并不重要。可以通过重新启动来解决,但有时这样做并不方便,我发现了解一下可能会有用为什么这个问题首先出现。
因此,重新启动后我第一次解锁设备时一切都很好。如果我卸载系统,下次也可以。问题是,有时,我连接设备,输入密码后出现以下错误:
访问“Home”时发生错误,系统响应:请求的操作失败:解锁 /dev/sdxy 时出错:无法激活设备:文件存在
但是这个文件不能用 看到df -h
,并且它不是通过 挂载的/etc/fstab
,它总是在连接时挂载并解锁。该命令fuser
不会显示任何相关内容,lsof
仅返回:
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
lsof: WARNING: can't stat() fuse file system /run/user/1000/doc
Output information may be incomplete.
事实上,我看到一些进程使用这个文件夹(ps aux | grep 1000
),但不知道这是否真的有助于解决问题。
1779 ? Sl 0:03 /usr/lib/gvfsd-fuse /run/user/1000/gvfs -f -o big_writes
1847 ? S 0:03 file.so [kdeinit5] file local:/run/user/1000/klaunchermRxLKs.1.slave-socket local:/run/user/1000/kded5IKggHu.1.slave-socket
23434 ? S 0:00 file.so [kdeinit5] file local:/run/user/1000/klauncherDwiyfV.1.slave-socket local:/run/user/1000/dolphinaVwzoi.58.slave-socket
我怀疑终止这些进程可能会有所帮助,但不知道它是否安全(不能冒险这样做,因为知道,而不是不知道)。有任何想法吗?
编辑dmsetup info
:和的输出dmsetup table
:
DM设置信息
Name: luks-92bde790-5ca6-441b-bad3-5c3163292c8b
State: ACTIVE
Read Ahead: 256
Tables present: LIVE
Open count: 0
Event number: 0
Major, minor: 254, 1
Number of targets: 1
UUID: CRYPT-LUKS1-92bde7905ca6441bbad35c3163292c8b-luks-92bde790-5ca6-441b-bad3-5c3163292c8b
Name: luks-1f919383-2d4a-44e2-b28e-21bffd11dd6c
State: ACTIVE
Read Ahead: 256
Tables present: LIVE
Open count: 1
Event number: 0
Major, minor: 254, 0
Number of targets: 1
UUID: CRYPT-LUKS1-1f9193832d4a44e2b28e21bffd11dd6c-luks-1f919383-2d4a-44e2-b28e-21bffd11dd6c
dm设置表
luks-92bde790-5ca6-441b-bad3-5c3163292c8b: 0 4294963200 crypt aes-xts-plain64 0000000000000000000000000000000000000000000000000000000000000000 0 8:33 4096
luks-1f919383-2d4a-44e2-b28e-21bffd11dd6c: 0 3906401473 crypt aes-xts-plain64 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0 8:2 4096
答案1
如果在查看输出后dmsetup ls
发现您有陈旧的设备,您可以将其删除dmsetup remove
- 最好是在仔细验证该设备确实未在使用后。
我遇到了同样的问题,这样做后我能够再次解锁并挂载我的加密 USB 硬盘:
# dmsetup ls --tree
luks-f53274db-3ede-4a27-9aa6-2525d9305f94 (254:5)
`- (8:34)
# ls -l /dev/mapper/
total 0
crw------- 1 root root 10, 236 Nov 24 15:22 control
lrwxrwxrwx 1 root root 7 Nov 27 09:42 luks-f53274db-3ede-4a27-9aa6-2525d9305f94 -> ../dm-5
# dmsetup remove /dev/dm-5
答案2
我遇到了同样的错误(也在 Manjaro 上使用 KDE)。我的 USB 设备上有一个 LUKS 卷,但该卷未从计算机上完全删除。当我重新插入 USB 设备时,LUKS 卷拒绝解锁:
# udisksctl unlock -b /dev/sdg1
Passphrase:
Error unlocking /dev/sdg1: GDBus.Error:org.freedesktop.UDisks2.Error.Failed: Error unlocking /dev/sdg1: Failed to activate device: File exists
由于我试图解锁设备/dev/sdg1
,所以我不明白如何解锁@马丁R已识别出有问题的卷 UUID(而不是其他一些没有问题的 LUKS 卷)他们的答案特别是因为 中的条目/etc/fstab
具有与 中列出的不同的 UUID /dev/mapper
。
# grep /mount/point /etc/fstab
UUID=33333333-3333-3333-3333-333333333333 /mount/point ext4 defaults 0 0
# ls -lah /dev/mapper
total 0
crw------- 1 root root 10, 236 Oct 10 06:08 control
lrwxrwxrwx 1 root root 7 Oct 10 06:08 luks-11111111-1111-1111-1111-111111111111 -> ../dm-1
lrwxrwxrwx 1 root root 7 Oct 10 17:41 luks-22222222-2222-2222-2222-222222222222 -> ../dm-2
lrwxrwxrwx 1 root root 7 Oct 10 06:08 luks-00000000-0000-0000-0000-000000000000 -> ../dm-0
我能够验证哪个 LUKS 卷 UUID 在udisksctl
与设备分区一起使用时遇到问题。
# udisksctl info -b /dev/sdg1 | grep 'IdUUID'
IdUUID: 22222222-2222-2222-2222-222222222222
此时,哪个 dm 对象需要清理就很清楚了。
# dmsetup ls
luks-00000000-0000-0000-0000-000000000000 (254:0)
luks-11111111-1111-1111-1111-111111111111 (254:1)
luks-22222222-2222-2222-2222-222222222222 (254:2)
# dmsetup remove /dev/dm-2
然后,解锁并安装成功。
# udisksctl unlock -b /dev/sdg1
Passphrase:
Unlocked /dev/sdg1 as /dev/dm-2.
# mount /mount/point
答案3
就我而言,存在问题/etc/crypttab
。
我遵循了一些教程但没有真正理解它,所以我创建了一个如下文件:
secret UUID=AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA /root/AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA.lukskey
secret UUID=BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB /root/BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB.lukskey
并收到错误,因为由于上述配置,系统尝试/dev/mapper/secret
为每一行创建,但第二行失败。
改成下面就ok了:
luks-AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA UUID=AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA /root/AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA.lukskey
luks-BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB UUID=BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB /root/BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB.lukskey
/dev/mapper/luks-AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA
这导致了和的创建/dev/mapper/luks-BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB
。