df -h 显示使用率为 100%,但大小不相加

df -h 显示使用率为 100%,但大小不相加

我遇到过这样的情况:我的根文件系统应该有足够的可用空间,但 Debian 却表现得好像没有剩余可用空间一样。非 root 用户甚至拒绝写任何关于缺少可用空间的抱怨。例如:

~$ echo "qwertyu" > test
-bash: echo: write error: Spazio esaurito sul device

(抱歉,语言问题,我没有亲自安装服务器。错误显示“设备上的可用空间不足”)。但 root 会毫无怨言地写入同一目录。此外,如果我以 root 身份执行 df -h,我会得到以下信息:

/# df -h
File system                                             Dim. Usati Dispon. Uso% Montato su
rootfs                                                   48G   46G       0 100% /
udev                                                     10M     0     10M   0% /dev
tmpfs                                                   397M   88M    310M  23% /run
/dev/disk/by-uuid/8063903c-80ad-4f72-81b0-cd67dbd48fc7   48G   46G       0 100% /
tmpfs                                                   2,0G     0    2,0G   0% /dev/shm
tmpfs                                                   2,0G     0    2,0G   0% /sys/fs/cgroup
tmpfs                                                   5,0M     0    5,0M   0% /run/lock
tmpfs                                                   100M     0    100M   0% /run/user
/dev/sdb1                                                99G  9,6G     84G  11% /disk2

但 du 条目不合逻辑:

/# du -sh /* | sort -hr
du: impossibile accedere a "/proc/12905/task/12905/fd/4": File o directory non esistente
du: impossibile accedere a "/proc/12905/task/12905/fdinfo/4": File o directory non esistente
du: impossibile accedere a "/proc/12905/fd/4": File o directory non esistente
du: impossibile accedere a "/proc/12905/fdinfo/4": File o directory non esistente
9,4G    /disk2
3,8G    /var
3,2G    /data
1,6G    /usr
277M    /opt
130M    /root
129M    /lib
88M /run
45M /home
18M /boot
7,6M    /bin
6,0M    /sbin
5,2M    /etc
28K /tmp
16K /lost+found
8,0K    /media
4,0K    /srv
4,0K    /selinux
4,0K    /mnt
4,0K    /lib64
0   /vmlinuz
0   /sys
0   /proc
0   /initrd.img
0   /dev

(错误提示“无法访问 yada yada:没有此文件或目录”)。请注意 /disk2 是另一个分区的挂载。

检查文件系统也无济于事:

/# e2fsck -n /dev/sda1
e2fsck 1.42.5 (29-Jul-2012)
Warning!  /dev/sda1 is mounted.
Attenzione: essendo un controllo a sola lettura, il journal non verrà ripristinato.
/dev/sda1: clean, 86568/3145728 files, 11666588/12563712 blocks

(“由于这是只读检查,因此日志将无法恢复”,但我猜下面的“清理”排除了这种可能性)。

知道这里可能发生了什么吗?假设系统在某个 VM 上运行,我只能通过 SSH 访问它。

答案1

唯一合理的解释是文件系统以只读方式安装。 dmesg | grep -i "\-fs"如果是这样,应该会显示一些错误。

如果您使用的是虚拟机,则可能无法从虚拟机内部完全访问 fs,从而导致您无法从虚拟机内部修复 fs 错误。请考虑联系您的提供商来修复此问题。

相关内容