我有 1TB 驱动器,使用 ubuntu 21.04 在 root 上运行 zfs。我的系统使用的内存不足 70GB。我已经使用 600GB 创建(截断)了一个图像文件。我将此图像文件用于不同的 zfs 数据集。然后我销毁了池和图像文件数据集。我还将图像文件截断为 0。我能够恢复大约 200GB。我缺少超过 400GB 的磁盘空间。 zfs 报告我正在使用 673GB。我没有看到使用超过 70GB。我没有看到任何快照使用如此多的磁盘空间。
#zfs 列表 -o 空间 -r rpool 显示rpool/ROOT/ubuntu_ycu6f2使用 636GB 用于快照。我找不到这些快照。
NAME AVAIL USED USEDSNAP USEDDS USEDREFRESERV USEDCHILD
rpool 241G 673G 0B 96K 0B 673G
rpool/ROOT 241G 647G 0B 96K 0B 647G
rpool/ROOT/ubuntu_ycu6f2 241G 647G 636G 3.83G 0B 6.56G
....
zfs list -t 快照 rpool/ROOT/ubuntu_ycu6f2
NAME USED AVAIL REFER MOUNTPOINT
rpool/ROOT/ubuntu_ycu6f2@autozsys_14wuai 245M - 637G -
rpool/ROOT/ubuntu_ycu6f2@autozsys_edz0lw 122M - 637G -
rpool/ROOT/ubuntu_ycu6f2@autozsys_m7el6f 201M - 637G -
rpool/ROOT/ubuntu_ycu6f2@autozsys_4fi5he 167M - 4.14G -
rpool/ROOT/ubuntu_ycu6f2@autozsys_3af8r6 130M - 4.35G -
如何找到丢失的磁盘空间在哪里以及如何恢复它。
答案1
查看输出REFER
中的列zfs list
。请注意,前三个快照引用 637G。最后两个快照分别仅引用 4.14G 和 4.35G。这样看来,您截断的文件仍然在前三个快照中引用,但在后两个快照中不再引用。
要回收空间,您需要删除截断文件之前的快照:
sudo zfs destroy -v rpool/ROOT/ubuntu_ycu6f2@autozsys_14wuai
sudo zfs destroy -v rpool/ROOT/ubuntu_ycu6f2@autozsys_edz0lw
sudo zfs destroy -v rpool/ROOT/ubuntu_ycu6f2@autozsys_m7el6f
将选项添加-v
到zfs destroy
命令行将显示每个命令释放了多少空间。一旦您销毁了这些快照,您应该会重新获得大约 633G 的可用空间。