在回答我的问题How to mount a cryptsetup container just with mount
?了在unix.SE,我意识到,mount -t luks
将调用脚本mount.luks
,目前看起来是这样的:如何修改由自定义安装助手创建的/ etc/mtab条目,以便使用自定义的`umount`?
#!/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
在/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
可以以某种方式实现此目的吗?)
听起来不错,谢谢!不幸的是,我没有Fedora,但也许各自的补丁也可以应用于其他发行版。 –