如何在文件中创建加密文件系统?

ani*_*uia 20 filesystem encryption ext4

在 flossstuff 博客上找到了这个有趣的教程

它解释了如何创建一个空文件,将其格式化为 ext4,并将其安装为设备。

我想知道它是否可以创建为加密的 ext4 文件系统。

我曾尝试使用 palimpsest(系统菜单中的磁盘实用程序)来格式化已创建的文件系统,但它无法正常工作,因为它检测到正在使用的文件系统。

如果我尝试卸载文件系统,那也不会起作用,因为它没有检测到设备(因为它不是像硬盘驱动器或 USB 驱动器这样的真实设备)。

所以我的问题是,是否可以选择从一开始就创建加密的文件系统?我用过这些命令:

创建一个 200Mb 大小的空文件:

dd if=/dev/zero of=/path/to/file bs=1M count=200
Run Code Online (Sandbox Code Playgroud)

使其成为ext4:

mkfs -t ext4 file
Run Code Online (Sandbox Code Playgroud)

将其安装在我家中的文件夹中:

sudo mount -o loop file /path/to/mount_point
Run Code Online (Sandbox Code Playgroud)

mkfs命令有什么方法可以创建加密的 ext4 文件系统,要求提供解密密码?

我打算用它来加密 Dropbox 中的文件。

mix*_*xel 11

按照以下步骤创建一个包含文件系统的加密文件:

1.创建给定大小文件的更快方法是:

fallocate -l 128M /path/to/file
Run Code Online (Sandbox Code Playgroud)

2.使用dm-crypt工具在文件中创建LUKS(Linux 统一密钥设置)分区:

cryptsetup -y luksFormat /path/to/file
Run Code Online (Sandbox Code Playgroud)

您可以检查文件是否已加密容器:

/path/to/file: LUKS encrypted file, ver 1 [aes, xts-plain64, sha1] UUID: 7e2af5a1-3fab-43ea-a073-3b9cc6073f00
Run Code Online (Sandbox Code Playgroud)

3.打开加密容器:

cryptsetup luksOpen /path/to/file data
Run Code Online (Sandbox Code Playgroud)

data是设备映射器卷名。您可以选择其他名称。

这将打开 LUKS 设备,并将其映射到我们提供的名称,在我们的例子中,在/dev/mapper/data.

4.ext4在此设备上创建文件系统:

mkfs.ext4 /dev/mapper/data
Run Code Online (Sandbox Code Playgroud)

5.然后创建挂载点:

mkdir /path/to/mount
Run Code Online (Sandbox Code Playgroud)

6.并在那里安装设备:

mount /dev/mapper/data /path/to/mount
Run Code Online (Sandbox Code Playgroud)

7.卸载文件系统并关闭 LUKS 设备:

umount /path/to/mount
cryptsetup luksClose data
Run Code Online (Sandbox Code Playgroud)

现在您已经加密了带有 ext4 文件系统的 LUKS 容器。当您想使用它时,只需重复第 3 步和第 6 步。完成后调用第 7 步。

这篇文章对我很有帮助。

总有一天,您的容器将耗尽空间。假设加密容器文件大小为 128 MB,我们希望将其大小增加到 512 MB。要增加其容量,请执行以下步骤:

1.卸载并关闭 LUKS 设备(请参阅上面列表中的第 7 步)。

2.增加容器文件大小:

 dd if=/dev/zero of=/path/to/file bs=384M count=1 oflag=append conv=notrunc
Run Code Online (Sandbox Code Playgroud)

3.打开 LUKS 设备。

cryptsetup luksOpen /path/to/file data
Run Code Online (Sandbox Code Playgroud)

4.调整 LUKS 设备大小以匹配容器文件大小。从手册页:

如果未指定 --size(以扇区为单位),则使用底层块设备的大小。

所以你可以:

cryptsetup resize data
Run Code Online (Sandbox Code Playgroud)

5.然后调整 ext4 文件系统的大小:

e2fsck -f /dev/mapper/data
resize2fs /dev/mapper/data
Run Code Online (Sandbox Code Playgroud)

6.现在您可以重新挂载文件系统:

mount /dev/mapper/data /path/to/mount
Run Code Online (Sandbox Code Playgroud)


enz*_*tib 10

您可以使用cryptmount加密文件系统,如果文件系统在文件上也是如此。

cryptmount手册有一个非常简单和详细的解释,我的报告(修改)在这里,它做明确提及的是基于文件的文件系统。

此外,如果您需要加密目录,encfs可能值得考虑。