![Linux 上的加密、循环设备和日志文件系统](https://linux22.com/image/1271007/Linux%20%E4%B8%8A%E7%9A%84%E5%8A%A0%E5%AF%86%E3%80%81%E5%BE%AA%E7%8E%AF%E8%AE%BE%E5%A4%87%E5%92%8C%E6%97%A5%E5%BF%97%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F.png)
我一直在阅读有关 Truecrypt、loop-AES 和 Cryptoloop 等工具的资料,这些工具使用“循环设备”在文件中创建加密磁盘卷。
在 loop-AES 的 README 页面上,有一段关于日志文件系统的段落:
http://loop-aes.sourceforge.net/loop-AES.README
不要在文件支持循环设备之上使用日志文件系统。设备支持循环设备可以与日志文件系统一起使用,因为设备支持循环可确保写入按照日志文件系统要求的顺序到达磁盘盘片(当然,必须在磁盘驱动器上禁用写入缓存)。使用文件支持循环设备,正确的写入顺序可能仅扩展到底层文件系统的页面缓存(驻留在 RAM 中)。VM 可以按其希望的任何顺序将这些页面写入磁盘,从而破坏日志文件系统的写入顺序期望。
您知道他们所说的“在文件支持的循环设备之上”是什么意思吗?他们指的是这样一种情况:我的磁盘使用日志文件系统(如 ext3、ext4 或 XFS)进行物理格式化,然后在该文件系统中创建一个包含虚拟磁盘卷的文件?还是他们描述的是相反的情况,即日志文件系统位于包含虚拟磁盘卷的文件中?
我的 Linux 分区格式为 ext4,所以如果他们指的是第一种情况,我必须调整分区大小并创建一个 ext2 或 FAT 分区来保存将容纳 Truecrypt/loop-AES/Cryptoloop 卷的文件。
答案1
“文件支持循环设备”是循环安装的磁盘文件。
例如将 /home/mike/mydisk.raw 挂载到 /mnt 上。
设备备份是指您从 /dev 挂载了某些东西,例如 /dev/sda3
他们所指的情况结构如下:
Files
|
v
Journaled Filesystem
|
v
Encrypted loop mount
|
v
Disk file
|
v
Journaled Filesystem
|
v
Physical device
如您所见,链中有两个文件系统,它们具有两大缓存和两大日志功能。这不仅浪费资源,还会导致写入顺序问题。因此,不要在顶层文件系统上使用日志功能。关闭它很简单。
他们说“我同意”的情况结构如下:
Files
|
v
Journaled Filesystem
|
v
Encrypted loop mount
|
v
Physical disk
您会看到,该安排中只有一个文件系统(并且只有一组日志和缓存)。