LUKS 加密分区中的 df 数据与 fdisk 数据不匹配

LUKS 加密分区中的 df 数据与 fdisk 数据不匹配

我在尝试理解 Ubuntu 中的 LUKS 加密设置时遇到了问题。在我之前有人用 Ansible 完成了这项工作,大致过程如下:

使用 DD 创建稀疏文件 dd of=/root/encfs bs=1 count=0 seek=40G

格式化 LUKS 分区 cryptsetup -y luksFormat /root/encfs

打开加密文件 cryptdisks_start datafs

创建文件系统 mkfs.ext4 -j /dev/mapper/datafs

挂载分区: mount /dev/mapper/datafs /data

稀疏文件似乎位于 30G 的磁盘中,但我认为它实际上位于另一个 64G 的磁盘上。我试图更改该加密卷的大小,并成功将稀疏文件放大,但 df 仍然显示它是 40G

有人知道我该怎么做: - 首先,确保分区位于我认为的磁盘上 - 其次,利用整个磁盘,使分区为 64G? - 附加问题:稀疏文件真的有必要吗?

我尝试删除 /root/encfs 并重新创建它,重新设置图像路径,但都没有效果。

由于我在网上找不到任何帮助,因此非常感谢任何指点/帮助。

非常感谢

答案1

您所看到的是sparse稀疏文件的属性:只有文件中至少被写入过一次的部分才会真正分配到磁盘上。

尚未在磁盘上分配的部分尚未实际使用,因此不会显示在dudf

举个例子:这是我在 Ubuntu PC 上所做的:

~$ df -h .
Filesystem                Size  Used Avail Use% Mounted on
/dev/mapper/payload-home  2.8T  540G  2.1T  21% /home

~$ dd if=/dev/zero of=./test.sparse bs=1 count=0 seek=5000G
0+0 records in
0+0 records out
0 bytes copied, 0.00022495 s, 0.0 kB/s

~$ ls -lh test.sparse 
-rw-r--r-- 1 me me 4.9T Apr 29 17:23 test.sparse

~$ du -h test.sparse 
0   test.sparse

~$ df -h .
Filesystem                Size  Used Avail Use% Mounted on
/dev/mapper/payload-home  2.8T  540G  2.1T  21% /home

因此:虽然磁盘有 2.1T 可用空间,但我可以轻松创建一个 5T 稀疏文件,该文件将显示为使用零字节,并且不会对df

如果我要填充该文件,则在写入超过 2 TB 的块后,我会收到“设备上没有剩余空间”的消息。

直接回答您的问题:df -h /path/to/file将告诉您文件位于哪个分区或卷以及该分区上有多少空间。

相关内容