Bash 如何修改由自定义装载帮助程序创建的/etc/mtab条目,以便使用自定义“umount”?
在unix.SE上回答我的问题时,我意识到Bash 如何修改由自定义装载帮助程序创建的/etc/mtab条目,以便使用自定义“umount”?,bash,mount,Bash,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) < P> >,它决定了一个未使用的映射器名称,它可以
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)
< P> >,它决定了一个未使用的映射器名称,它可以用来安装LUKS/DM加密器加密设备(我知道/etc/mtab
中的mount-tluks/dev/hda/mnt/decrypted
的结果条目看起来像
/dev/mapper/tmp.mpI5ClExf8 on /mnt/decrypted type ext3 (rw,relatime,errors=continue,data=writeback)
#!/bin/bash
set -e
umount $1
cryptsetup luksClose $MAPPER
这样,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
,这可能类似于
/dev/mapper/tmp.mpI5ClExf8 on /mnt/decrypted type ext3 (rw,relatime,errors=continue,data=writeback)
#!/bin/bash
set -e
umount $1
cryptsetup luksClose $MAPPER
(同样,prototype,这只会正确处理umount/mnt/decrypted
调用,并且需要从mount选项获得MAPPER
)
那么,
mount.luks
必须如何修改呢?直接修改/etc/mtab
肯定是个坏主意。(例如,mount-n
和mount-f
能否以某种方式实现这一点?我知道这个问题很老,但我自己在寻找答案时遇到了它
如果您有足够新的发行版,例如Fedora 20,则可以修改mount.luks脚本以包含'-o helper=luks'
例如:
#!/bin/bash
set -e
MAPPER=$(mktemp -up /dev/mapper)
cryptsetup luksOpen $1 $(basename $MAPPER)
shift
mount -o helper=luks $MAPPER $* || cryptsetup luksClose $(basename $MAPPER)
umount使用helper的值来确定要运行的正确umount脚本,类似于mount使用-t选项的方式
注意:在Fedora 20上,/etc/mtab是指向/proc/self/mounts的符号链接。如果您使用cat/etc/mtab,则不会显示helper选项。但是,如果在没有选项的情况下执行mount,则会出现helper选项。听起来不错,谢谢!不幸的是,我没有Fedora,但可能相应的补丁也可以应用于其他发行版。