加密分区上的交换内存是否已加密?

Kol*_*dez 6 swap luks disk-encryption

如果我将 Ubuntu 安装在加密的 ext4 分区上,通常会有一个/swapfile. 现在我希望交换的内存默认也是加密的。然而,手册页swapon

内核中的交换文件实现期望能够直接写入文件,而不需要文件系统的帮助。

现在,“直接”的含义仍然不明确,特别是 ext4 之上的加密层是否被视为这个意义上的“文件系统”。先验的,我不能排除这样一种可能性:内核首先简单地获取交换文件在磁盘上的位置,然后直接写入磁盘,而不使用加密层,这样内存数据最终会在磁盘上未加密。

我的怀疑是否属实(适用于哪些 Linux 版本)?如果没有,请提供直接解决此问题的来源;不仅仅是互联网上如何在加密分区上设置交换文件的众多说明之一。谢谢你!

Ste*_*itt 6

\n

加密分区上的交换内存是否已加密?

\n
\n

如果分区是通过块设备(LUKSdm-crypt等)加密的,那么可以。

\n
\n

先验的,我不能排除内核首先简单地获取交换文件在磁盘上的位置,然后直接写入磁盘的可能性

\n
\n

这几乎就是内核所做的事情;内核不会直接写入磁盘而是写入块设备。实际上,交换文件应被视为托管文件系统的设备上的保留块;不能依赖其他文件系统功能。

\n

添加交换文件后,内核会将其使用的所有块映射到底层块设备上。一旦\xe2\x80\x99s完成,通过直接寻址底层块设备来完成对交换文件的读取和写入;不涉及内核\xe2\x80\x99s VFS 层\xe2\x80\x99。

\n

这样做的实际后果包括任何基于文件系统的加密都无法使用。但是,底层块设备不一定是物理设备,因此托管在整体加密的卷中的文件系统中的交换文件将正常工作(并被加密)。所以 Ext4 加密不会\xe2\x80\x99 起作用,但 LUKS 会。

\n

另请参阅如何在 Linux 中设置加密交换文件?(但请注意,\xe2\x80\x99t 中的信息并不全部适用于当前内核)。

\n