我通过创建了一个加密的容器
#!/bin/bash
dd if=/dev/zero of=$1 bs=1 count=0 seek=$2
MAPPER=$(mktemp -up /dev/mapper)
LOOPDEV=$(losetup --find --show $1)
cryptsetup luksFormat $LOOPDEV
cryptsetup luksOpen $LOOPDEV $(basename $MAPPER)
mkfs.ext3 $MAPPER
cryptsetup luksClose $MAPPER
losetup -d $LOOPDEV
例如container
,为此脚本指定的文件将包含通过加密的ext3文件系统cryptsetup luksFormat
。
要安装它,我目前使用另一个脚本,说dm.mount container /mnt/decrypted
:
#!/bin/bash
set -e
MAPPER=$(mktemp -up /dev/mapper)
LOOPDEV=$(losetup --find --show $1)
cryptsetup luksOpen $LOOPDEV $(basename $MAPPER) || losetup -d $LOOPDEV
mount $MAPPER $2 || (
cryptsetup luksClose $MAPPER
losetup -d $LOOPDEV
)
并卸载它dm.umount /mnt/decrypted
:
#!/bin/bash
set -e
MAPPER=$(basename $(mount | grep $1 | gawk ' { print $1 } '))
LOOPDEV=$(cryptsetup status $MAPPER | grep device | gawk ' { print $2 } ')
umount $1
cryptsetup luksClose $MAPPER
losetup -d $LOOPDEV
有很多冗余,并且可以手动获取循环设备和映射器,而这两者都可以保持匿名。有没有一种方法可以简单地执行类似的操作mount -o luks ~/container /mnt/decrypted
(提示输入密码),umount /mnt/decrypted
而不是简单的方法?
编辑基本上,我对上面的脚本感到满意(尽管可以改进错误检查...),所以
-o luks=~/container
与-o loop ~/loopfile
使用我编写的脚本类似,如何实现安装选项?
无需重写就可以实现mount
吗?还是-t luks -o loop ~/container
可以实施?
mount