cryptdisks_start:预检失败:设备包含文件系统类型crypto_LUKS

Mar*_*ich 7 encryption gnome3 luks cryptsetup

我正在尝试使用cryptdisks_start打开在我的/etc/crypttab. 不幸的是,该命令失败并显示以下错误消息:

martin ~ # cryptdisks_start luks-01a2e5d8-9211-40ce-b160-d3f973d1a155
 * Starting crypto disk...
 * luks-01a2e5d8-9211-40ce-b160-d3f973d1a155 (starting)..
 * luks-01a2e5d8-9211-40ce-b160-d3f973d1a155: the precheck for '/dev/disk/by-uuid/01a2e5d8-9211-40ce-b160-d3f973d1a155' failed:  - The device /dev/disk/by-uuid/01a2e5d8-9211-40ce-b160-d3f973d1a155 contains a filesystem type crypto_LUKS.
 * luks-01a2e5d8-9211-40ce-b160-d3f973d1a155 (failed)...
   ...fail!
Run Code Online (Sandbox Code Playgroud)

一个相当奇怪的错误,因为该设备当然必须包含一个crypto_LUKS文件系统!

来自 的相关行/etc/crypttab,由 GNOME Disks 设置:

luks-01a2e5d8-9211-40ce-b160-d3f973d1a155 UUID=01a2e5d8-9211-40ce-b160-d3f973d1a155 /etc/luks-keys/luks-01a2e5d8-9211-40ce-b160-d3f973d1a155 nofail
Run Code Online (Sandbox Code Playgroud)

Mar*_*ich 10

它不起作用,因为该/etc/crypttab行缺少 option 关键字luks。将行更改为此解决了问题:

luks-01a2e5d8-9211-40ce-b160-d3f973d1a155 UUID=01a2e5d8-9211-40ce-b160-d3f973d1a155 /etc/luks-keys/luks-01a2e5d8-9211-40ce-b160-d3f973d1a155 luks,nofail
Run Code Online (Sandbox Code Playgroud)

这是因为cryptdisks_start使用选项来确定正在使用哪种加密,以便使用正确的命令打开设备。如果没有该luks选项,cryptdisks_start将尝试将设备作为普通 dm-crypt 设备打开cryptsetup create。幸运的是,健全性检查可以防止这种情况发生,尽管它会导致令人困惑的错误消息。

显然,GNOME3 的磁盘工具/etc/crypttab在使用解锁图标和保存密码时写入了这条错误的行。