![报告称文件系统已满,其中一半由 ecrypt 使用,另一半由 /home/user 使用](https://linux22.com/image/1011832/%E6%8A%A5%E5%91%8A%E7%A7%B0%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E5%B7%B2%E6%BB%A1%EF%BC%8C%E5%85%B6%E4%B8%AD%E4%B8%80%E5%8D%8A%E7%94%B1%20ecrypt%20%E4%BD%BF%E7%94%A8%EF%BC%8C%E5%8F%A6%E4%B8%80%E5%8D%8A%E7%94%B1%20%2Fhome%2Fuser%20%E4%BD%BF%E7%94%A8.png)
我使用安装程序提供的选项来安装我的工作站以加密我的“/home”目录,我希望它在使用上完全透明,但在系统警告我文件系统已满后,我发现一半的空间被报告为由“ecrypt”文件使用,而另一半被“/home/username”目录使用。
我确实读过关于 /home/user 是虚拟挂载的事实真实的.ecrypt 中的数据不应占用硬盘空间。
然而我的系统(ubuntu 16.04)似乎不能理解这一点,导致我无法充分使用我的硬盘。
“df”报告/home分区的大小为226G,“du”确认其中一半是/home/user,一半是.ecrypt部分。
其他使系统调用检查文件系统的实用程序也遇到同样的问题,例如 python os.statvfs('/home/') 显示的结果与“du”一致。
如果 eCrypt 不会“双倍”使用 /home 文件夹的空间,我该如何帮助系统理解这一点?如果我的硬盘确实已满,我该如何正确使用 eCrypt,以免它使我的 /home 数据所需的空间增加一倍?
以下是先前讨论的命令的确切结果:
系统信息 :
$> uname -a
Linux pc-name 4.15.0-43-generic #46~16.04.1-Ubuntu SMP Fri Dec 7 13:31:08 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
df 结果:
$> df -h
udev 3,9G 0 3,9G 0% /dev
tmpfs 787M 9,5M 778M 2% /run
/dev/mapper/ubuntu--vg-root 226G 199G 16G 93% /
tmpfs 3,9G 71M 3,8G 2% /dev/shm
tmpfs 5,0M 4,0K 5,0M 1% /run/lock
tmpfs 3,9G 0 3,9G 0% /sys/fs/cgroup
/dev/nvme0n1p2 473M 121M 328M 27% /boot
/dev/nvme0n1p1 511M 3,5M 508M 1% /boot/efi
tmpfs 787M 36K 787M 1% /run/user/1000
/home/username/.Private 226G 199G 16G 93% /home/username
lsblk 的结果:
$>sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL
NAME FSTYPE SIZE MOUNTPOINT LABEL
nvme0n1 238,5G
├─nvme0n1p3 LVM2_member 237,5G
│ ├─ubuntu--vg-swap_1 swap 7,9G
│ │ └─cryptswap1 swap 7,9G [SWAP]
│ └─ubuntu--vg-root ext4 229,6G /
├─nvme0n1p1 vfat 512M /boot/efi
└─nvme0n1p2 ext2 488M /boot
结果:
$> sudo du -h --max-depth=1 /home/
119G /home/username
119G /home/.ecryptfs
237G /home/
Python 观点:
Python 2.7.12 (default, Nov 12 2018, 14:36:49)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> statvfs = os.statvfs('/home/')
>>> statvfs.f_frsize * statvfs.f_blocks
242521694208
#that is 242G of hardrive
>>> statvfs.f_frsize * statvfs.f_bfree
29071433728
>>> statvfs.f_frsize * statvfs.f_bavail
16728436736
#16G of free space
欢迎提供任何能够进一步解决或诊断问题的帮助,例如检查实际磁盘使用情况的工具。
-- 编辑添加用户未登录时的 df 信息:
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
udev 3,9G 0 3,9G 0% /dev
tmpfs 787M 9,5M 778M 2% /run
/dev/mapper/ubuntu--vg-root 226G 201G 14G 94% /
tmpfs 3,9G 252K 3,9G 1% /dev/shm
tmpfs 5,0M 4,0K 5,0M 1% /run/lock
tmpfs 3,9G 0 3,9G 0% /sys/fs/cgroup
/dev/nvme0n1p2 473M 121M 328M 27% /boot
/dev/nvme0n1p1 511M 3,5M 508M 1% /boot/efi
tmpfs 787M 120K 787M 1% /run/user/1002
答案1
按照 Xen2050 的建议后,我找到了问题的根源。当错误发生时,“双倍”大小确实超出了磁盘空间,因此由于 eCrypt 虚拟安装(如预期的那样),磁盘未满。经过调查,发现磁盘一方面被 /home 分区有效使用(~120G),另一方面也被包含 62G docker libs 的 /var/lib 有效使用...
最初的误解来自于使用 eCrypt 的用户的 df 输出,其显示:
/dev/mapper/ubuntu--vg-root 226G 199G 16G 93% /
/home/username/.Private 226G 199G 16G 93% /home/username
让我相信所有的空间都被 /home/username 分区占用了