我读了很多关于LUKS/ encrypted /cryptsetup的教程,特别是关于如何创建加密的文件容器。
第一步是使用dd
创建文件。
然后,一些教程将文件映射到/dev/loop0
并格式化循环设备,其他教程则直接格式化文件,而不将其映射到循环设备中。
我的问题是:是否需要循环设备步骤?有什么关系?
发布于 2015-07-09 06:07:07
如果您不亲自管理循环设备,cryptsetup
将自动设置循环设备,并在不再需要时关闭它。因此,两者之间没有区别;cryptsetup
总是在循环设备上工作。请参见man cryptsetup
:
回环设备上的注释通常直接用于块设备(磁盘分区或LVM卷)。但是,如果设备参数是文件,则密码设置将尝试分配回送设备并将其映射到该文件中。这种模式需要Linux内核2.6.25或更高版本,它支持循环自动标记(循环设备在最后一次自动关闭时被清除)。当然,您总是可以手动将文件映射到循环设备。有关示例,请参见密码设置常见问题。当设备映射处于活动状态时,您可以在status命令输出中看到循环备份文件。还请参见losetup(8)。
发布于 2018-11-15 20:43:14
您可以使用dd
或fallocate
(或head
或其他一些工具)创建一个文件作为您的容器。然后,正如Vincent所说,cryptsetup
可以为您处理循环设置/拆卸。
fallocate -l 100M mypath/filecontainer
sudo losetup # Debug for demonstration, not necessary in a real script
sudo cryptsetup -y luksFormat mypath/filecontainer
sudo losetup # Debug for demonstration, not necessary in a real script
sudo cryptsetup luksOpen mypath/filecontainer filecontainer
sudo losetup # Debug for demonstration, not necessary in a real script
sudo mkfs -t ext4 /dev/mapper/filecontainer
sync
sudo cryptsetup luksClose filecontainer
sudo losetup # Debug for demonstration, not necessary in a real script
在调试sudo losetup
输出中,注意filecontainer
条目的AUTOCLEAR = 1
。相反,您可以疯狂地使用loopdev=$(sudo losetup -f); mount -o loop <etc>
,但是让cryptsetup
处理它要好得多。
关键是要确保您首先使用cryptsetup luksOpen containerfile mappedname
将其默认挂载到/dev/mapper/mappedname
(您可以给它一个从/
开始的完整路径,我相信它将在那里挂载,然后格式化/dev/mapper/mappedname
目标,并确保您没有直接接触filecontainer
,否则您将绕过加密引擎,只创建一个未加密的回送文件。
https://askubuntu.com/questions/599044
复制相似问题