它解释了如何创建一个空文件,将其格式化为 ext4,并将其作为设备安装。
我想知道它是否可以创建为加密的 ext4 文件系统。
我尝试使用 palimpsest(系统菜单中的磁盘实用程序)来格式化已创建的文件系统,但它不起作用,因为它检测到正在使用的文件系统。
如果我尝试卸载文件系统,那也行不通,因为它无法检测到设备(因为它不是像硬盘或 USB 驱动器这样的真实设备)。
所以我的问题是,是否有一个选项可以从一开始就将文件系统创建为加密的?我使用了以下命令:
创建一个200Mb大小的空文件:
dd if=/dev/zero of=/path/to/file bs=1M count=200
将其设为 ext4:
mkfs -t ext4 file
将其安装到我家里面的一个文件夹中:
sudo mount -o loop file /path/to/mount_point
该命令有没有什么方法mkfs
可以创建一个加密的 ext4 文件系统并要求输入解密密码?
我计划使用此方法来加密 Dropbox 内部的文件。
答案1
按照以下步骤创建包含文件系统的加密文件:
1.创建给定大小的文件的更快方法是:
fallocate -l 128M /path/to/file
2.创造卢克斯(Linux 统一密钥设置)文件内的分区使用dm-隐窝工具:
cryptsetup -y luksFormat /path/to/file
您可以检查文件是否是加密容器:
/path/to/file: LUKS encrypted file, ver 1 [aes, xts-plain64, sha1] UUID: 7e2af5a1-3fab-43ea-a073-3b9cc6073f00
3.打开加密容器:
cryptsetup luksOpen /path/to/file data
data
是设备映射器卷名。您可以选择其他名称。
这将打开 LUKS 设备,并将其映射到我们提供的名称,在我们的例子中,在 创建一个文件/dev/mapper/data
。
4.ext4
在此设备上创建文件系统:
mkfs.ext4 /dev/mapper/data
5.然后创建挂载点:
mkdir /path/to/mount
6.并在那里安装设备:
mount /dev/mapper/data /path/to/mount
7.要卸载文件系统并关闭 LUKS 设备:
umount /path/to/mount
cryptsetup luksClose data
现在您已拥有加密的 LUKS 容器,其中有 ext4 文件系统。当您想要使用它时,只需重复步骤 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
3.打开 LUKS 设备。
cryptsetup luksOpen /path/to/file data
4.调整 LUKS 设备大小以匹配容器文件大小。来自手册页:
如果未指定 --size(以扇区为单位),则使用底层块设备的大小。
因此您可以:
cryptsetup resize data
5.然后调整 ext4 文件系统的大小:
e2fsck -f /dev/mapper/data
resize2fs /dev/mapper/data
6.现在您可以重新挂载文件系统:
mount /dev/mapper/data /path/to/mount
答案2
您可以使用cryptmount
它来加密文件系统,即使文件系统位于文件上。
手册页cryptmount
有一个非常简单和详细的解释,我在这里报告(修改),它明确提到了基于文件的文件系统。
步骤1
在 中添加条目/etc/cryptmount/cmtab
,内容如下:mycrypt { dev=/media/data/mycrypt dir=/home/enzotib/mycrypt fstype=ext4 mountoptions=defaults cipher=twofish keyfile=/etc/cryptmount/mycrypt.key keyformat=builtin }
其中
/media/data/mycrypt
,支持文件是由 创建 的dd
,而/home/enzotib/mycrypt
是所需的挂载点。第 2 步
生成秘密解密密钥sudo cryptmount --generate-key 32 mycrypt
步骤3
执行以下命令sudo cryptmount --prepare mycrypt
然后系统会要求你输入设置密钥时使用的密码
步骤 4
创建文件系统sudo mkfs.ext4 /dev/mapper/mycrypt
步骤 5
执行sudo cryptmount --release mycrypt
步骤 6
现在挂载文件系统mkdir /home/enzotib/mycrypt cryptmount -m mycrypt
然后卸载它
cryptmount -u mycrypt
此外,如果您需要加密目录,encfs
可能值得考虑。
答案3
您可以使用 losetup 命令-e参数来创建加密循环设备。详细信息请参阅http://tldp.org/HOWTO/Cryptoloop-HOWTO/loopdevice-setup.html