奇怪的问题...
为什么我已使用完整的 / 分区,但它实际上并未使用?
快速信息:
xwing ~ # df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 16G 15G 75M 100% /
/dev/root 16G 15G 75M 100% /
devtmpfs 5,9G 0 5,9G 0% /dev
tmpfs 5,9G 552K 5,9G 1% /run
rc-svcdir 1,0M 72K 952K 8% /lib64/rc/init.d
cgroup_root 10M 0 10M 0% /sys/fs/cgroup
shm 5,9G 0 5,9G 0% /dev/shm
cachedir 4,0M 4,0K 4,0M 1% /lib64/splash/cache
/dev/sda1 124M 43M 76M 36% /boot
/dev/sda5 63G 25G 36G 42% /home
/dev/sda6 483G 147G 312G 33% /mnt/data
tmpfs 8,0G 0 8,0G 0% /var/tmp/portage
也许是 i-node?不……
xwing ~ # df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
rootfs 1048576 548459 500117 53% /
/dev/root 1048576 548459 500117 53% /
devtmpfs 1525561 517 1525044 1% /dev
tmpfs 1525918 374 1525544 1% /run
rc-svcdir 1525918 61 1525857 1% /lib64/rc/init.d
cgroup_root 1525918 5 1525913 1% /sys/fs/cgroup
shm 1525918 1 1525917 1% /dev/shm
cachedir 1525918 2 1525916 1% /lib64/splash/cache
/dev/sda1 32768 314 32454 1% /boot
/dev/sda5 4194304 145765 4048539 4% /home
/dev/sda6 32153600 11325 32142275 1% /mnt/data
tmpfs 1525918 1 1525917 1% /var/tmp/portage
但:
xwing ~ # du -sxh /
8,3G /
也许我的安装过程中出了什么问题?(但无论如何,请注意我使用了 du 和 -x,它仅从 / 文件系统计算文件……)
/我添加了空格以便于阅读/
xwing ~ # mount
rootfs on / type rootfs (rw)
/dev/root on / type ext4 (rw,noatime,data=ordered)
devtmpfs on /dev type devtmpfs (rw,relatime,size=6102244k,nr_inodes=1525561,mode=755)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
tmpfs on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755)
rc-svcdir on /lib64/rc/init.d type tmpfs (rw,nosuid,nodev,noexec,relatime,size=1024k,mode=755)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,relatime)
cgroup_root on /sys/fs/cgroup type tmpfs (rw,nosuid,nodev,noexec,relatime,size=10240k,mode=755)
cpuset on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cpu on /sys/fs/cgroup/cpu type cgroup (rw,nosuid,nodev,noexec,relatime,cpu)
cpuacct on /sys/fs/cgroup/cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct)
freezer on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620)
shm on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,relatime)
cachedir on /lib64/splash/cache type tmpfs (rw,nosuid,nodev,noexec,noatime,size=4096k,mode=755)
/dev/sda1 on /boot type ext2 (rw,noatime)
/dev/sda5 on /home type ext4 (rw,noatime)
/dev/sda6 on /mnt/data type ext4 (rw,noatime)
tmpfs on /var/tmp/portage type tmpfs (rw,size=8G)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
核心:
morsik@xwing ~ $ uname -a
Linux xwing 3.6.2-gentooxwing #8 SMP Sun Oct 21 21:36:53 CEST 2012 x86_64 Intel(R) Core(TM) i7-3610QM CPU @ 2.30GHz GenuineIntel GNU/Linux
真的……我对此已经没有任何办法了。
我尝试过的:
- 检查 rm -rf /usr/portage/distfiles/* 后是否还有一些 fd 处于打开状态
- 同步
- 重启
- 文件系统检查
编辑和解决方案:
与往常一样,我在寻求帮助后找到了解决方案(-;
安装(如 Luke404 所说)/ 分区在其他地方并执行 du -sh /mnt/something 发现有 15G 的数据,因此与 df 中相同。
问题是什么?
山!
我后来创建了 /home 分区,并将其添加到 /etc/fstab,我将文件从 /home(在 / 分区上)复制到 /home(在 /home 分区上),但我忘记从 /home 上的 / 分区中删除文件。
所以我的旧文件仍然在 /home 上(在 / 分区上)。
但是为什么 du -sxh 告诉我是 8G?很简单...
-x 强制不检查不同的挂载点,因此...挂载时它没有检查 /home。因此我丢失了 /home。
感谢 Luke404 和 pidpawel 在 IRC 上帮助我。
在写完这个编辑部分后,我看到了这里的答案,并且 Scrivener 在这里得到了要点!
愚蠢的问题就是愚蠢的(-;
答案1
这种问题总是很有趣。
我的猜测是?您的某个挂载点下有文件。这是什么意思?嗯,du -sh 将手动检查它能找到的所有文件。
假设我有一个目录 A。如果我将一堆文件转储到 A,然后在 A 上挂载 /dev/sdb,df -h 会说我有一堆 du 无法找到的文件!
这种情况最常发生在定期挂载和卸载的挂载点上,例如 USB 驱动器、网络驱动器等。在启动期间自动发生挂载时很少见到这种情况,因为发生这种情况的窗口要小得多。
答案2
您是否检查过(当前)无法访问的位置的文件?例如/home
在根文件系统上,您du
无法看到,因为您已经在 上安装了另一个文件系统/home
?
您可以通过将文件系统绑定挂载到其他地方来查看这些内容:
# mkdir /foo
# mount -o bind / /foo
# cd /foo
# du...