我遇到过这样的情况:我的根文件系统应该有足够的可用空间,但 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 错误。请考虑联系您的提供商来修复此问题。