在我的 Linux 系统上,我有一个大小为 1073741824 字节的文件“1gb.file”。
我会将此文件放入一个带有 ext4 文件系统的 LUKS 容器(“1gb.file.crypt”)。
文件“1gb.file.crypt”必须有多大才能为其中的luksformat
和 ext4 文件系统(我会做的mkfs.ext4 -m 0
)提供足够的空间luksdevice
。
如何在 ext4 文件系统中获取足够的空间,以便我可以将 1073741824 字节的文件放入里面,如何计算?
如果我将 3 ... 7 或 10GB 的文件放入具有 ext4 文件系统的 LUKS 容器中,那么容器的大小是多少?
如何计算?
容器内部和 ext4 文件系统中还留有一些空闲的 MB,这是可以的,但我不想有数百 MB 的空闲空间。
我不知道它是否相关,但文件和容器是只读的。
或者我应该把容器弄得足够大,然后在文件放入后再缩小它?但该怎么做呢?
这取决于 ext4 文件系统的设置方式,预测这一点的最短方法是将 ext4 文件系统放在图像文件中,直到找到适合您的文件的大小。这取决于您的 LUKS 标头(加密本身不会增加数据大小,这很糟糕,但标头需要适合所有密钥和加密参数)。
但是,您并不是第一个问“文件系统必须有多大才能容纳文件中这么多字节”的人。我在至少两个答案中已经解决了这个问题,其中我现在只能找到一个(但这两个问题并不是这个平台上唯一的问题):
无论文件系统是什么,答案总是相同的:显然存在文件系统开销;当您想要对该文件执行任何操作时,可能会用尽空间。请注意,ext4 是一个日志文件系统:即使只是更改文件属性(如修改或访问时间),也需要空间来记录日志。因此,对于您的目的而言,文件系统的选择是错误的。
所以,你想要的听起来毫无用处。不要使用像 ex4 这样的可变文件系统,而是将文件放入只读文件系统中,这个文件系统只包含文件本身,例如
然后加密。