我有一个 luks 设备,它在启动时由 /etc/crypttab 打开。lsblk 看起来像这样:
sdc 8:32 1 114,6G 0 disk
└─luks-672dcc74-d002-47dc-b61b-525baf91dc7c 253:2 0 114,6G 0 crypt
我像这样安装设备:
pmount /dev/mapper/luks-672dcc74-d002-47dc-b61b-525baf91dc7c
我这样卸载它(两者都有效):
pumount /dev/mapper/luks-672dcc74-d002-47dc-b61b-525baf91dc7c
pumount /media/mapper_luks-672dcc74-d002-47dc-b61b-525baf91dc7c
但是在 pumount lsblk 之后看起来像这样:
sdc 8:32 1 114,6G 0 disk
为什么 pumount 关闭了 luks 设备?从 pumount 的手册页上说:
Normally, pumount will not luksClose (see cryptsetup(1)) a device pmount did not open.
luks 设备在启动时由 /etc/crypttab 打开,而不是由 pmount 打开!为什么 pumount 会关闭 luks 设备?这是一个错误吗?
我在 debian 靶心上。
注意:我完全不熟悉
pumount
,我什至没有可用于测试的 Debian 安装,所以我只是从 Debian 获取源代码并根据我在其中找到的内容做出大胆的假设......pumount
有一个选项,--luks-force
可以关闭它没有打开的 LUKS 设备(正如您已经从联机帮助页中引用的那样)。但是从源代码来看,似乎在实现上有错误。
所以
pumount.c
这里有一些选项解析:...就是这样!该选项设置
luks_force = 1
变量。否则初始化为0。但这一点都不重要,因为...该变量未在任何地方使用。
里面有这么一段
luks.c
代码:因此,
luksClose
如果存在锁定文件,或者如果force
为真,它就会这样做。这个函数是
pumount.c
这样调用的:所以不管你做什么,
force
它总是设置为 1,因此它关闭了 LUKS 设备。最后一行可能是应该使用
luks_force
变量而不是 1 的地方。