回答我的问题如何仅使用 ? 安装 cryptsetup 容器mount
?在 unix.SE 上,我意识到这mount -t luks
将调用脚本mount.luks
,目前看起来像这样:
#!/bin/bash
set -e
MAPPER=$(mktemp -up /dev/mapper)
cryptsetup luksOpen $1 $(basename $MAPPER)
shift
mount $MAPPER $* || cryptsetup luksClose $(basename $MAPPER)
也就是说,它确定了一个未使用的映射器名称,cryptsetup可以使用它来安装一个 LUKS/dm-crypt 加密设备(我知道$*
如果涉及子类型很容易递归,请考虑这是一个原型)在解密之后(在提示输入密码)。
问题是,mount -t luks /dev/hda /mnt/decrypted
in的结果条目/etc/mtab
看起来像
/dev/mapper/tmp.mpI5ClExf8 on /mnt/decrypted type ext3 (rw,relatime,errors=continue,data=writeback)
这样umount /dev/hda
将失败并且umount /mnt/decrypted
只会卸载映射器但使加密设备保持打开状态。映射器也无关紧要。我想要实现的是有一个条目
/dev/hda on /mnt/decrypted type luks.ext3 (rw,relatime,errors=continue,data=writeback,mapper=/dev/mapper/tmp.mpI5ClExf8)
这样umount
就会调用umount.luks
,可能类似于
#!/bin/bash
set -e
umount $1
cryptsetup luksClose $MAPPER
(同样,原型,这只会umount /mnt/decrypted
正确处理调用,MAPPER
需要从挂载选项中获取)
那么,mount.luks
必须如何修改呢?直接修改/etc/mtab
肯定是个坏主意。(例如可以以某种mount -n
方式mount -f
实现这一目标吗?)