如果 du 没有显示分区已满,怎么会知道分区已满呢?

如果 du 没有显示分区已满,怎么会知道分区已满呢?

在我的一个系统上,根分区已满:

snip:˜ # df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs           11G  9.3G     0 100% /
devtmpfs        744M   36K  744M   1% /dev
tmpfs           751M     0  751M   0% /dev/shm
tmpfs           751M  296K  751M   1% /run
/dev/sda7        11G  9.3G     0 100% /
tmpfs           751M     0  751M   0% /sys/fs/cgroup
tmpfs           751M  296K  751M   1% /var/lock
tmpfs           751M  296K  751M   1% /var/run
tmpfs           751M     0  751M   0% /media
/dev/sda5       151M   39M  104M  28% /boot
/dev/sda8       4.4G  207M  3.3G   6% /home

du并没有显示接近9.3千兆字节的使用量:

snip:~ # du /* -s -h
5.2M    /bin
34M /boot
36K /dev
22M /etc
199M    /home
154M    /lib
20M /lib64
0   /media
0   /mnt
0   /opt
0   /proc
7.9M    /root
288K    /run
7.1M    /sbin
0   /selinux
756K    /srv
0   /sys
0   /tmp
1.6G    /usr
1.1G    /var

它仅占约3 GB。

  • 怎么可能?
  • 我应该在哪里查找剩余的 6+ GB 的已用空间?

我正在使用 openSUSE 12.2:

snip:~ # cat /etc/SuSE-release
openSUSE 12.2 (x86_64)
VERSION = 12.2
CODENAME = Mantis

答案1

首先介绍一些背景信息

如果你有文件系统在你的根文件系统上http://www.opensuse.org/en/,那么将会发生两件事:

  1. openSUSE 将自动开始使用鲷鱼采取快照根文件系统。
  2. 快照将占用磁盘空间没有显示

这意味着您将比预期更快地耗尽磁盘空间。因此建议(不在文档中)是将使用快照的分区设置为通常大小的两倍

我还没有找到显示每个快照的大小或所有快照的总大小的方法。

因此,您必须使用df针对根 ( /) 文件系统的 btrfs 特定命令来监视可用磁盘空间:

btrfs filesystem df /

清理 snapper 快照

谢谢NerdyRoom™ » btrfs 和 OpenSuSE 的乐趣 – 或“设备上没有剩余空间”。 我发现了删除您可能想要删除的旧快照的最简单方法(当磁盘空间不足时您必须这样做)。

首先运行snapper list以查看存在的快照的序列号。

从该列表中,选择要删除的快照的合理下限和上限。

然后使用下限 ( 1) 和上限 ( 3656) 运行此操作:

for i in `seq 1 3656`; do snapper delete $i; done

编辑20161212:

一位匿名用户建议修改一下,让这段代码更短。我同意,因为上面的代码可以按照以下方式缩短:snapper 手册页

snapper delete 1-3656

相关内容