Как раздел может быть полным, если 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 гигабайт.
- Как это может быть?
- Где искать оставшиеся 6+ гигабайт использованных гигабайт?
Я использую openSUSE 12.2:
snip:~ # cat /etc/SuSE-release
openSUSE 12.2 (x86_64)
VERSION = 12.2
CODENAME = Mantis
1 ответ
Сначала немного справочной информации
Если у вас есть btrfs в корневой файловой системе на http://www.opensuse.org/en/, то произойдут две вещи:
- openSUSE автоматически начнет использовать snapper для создания снимков вашей корневой файловой системы.
- снимки будут занимать дисковое пространство, которое дю не показывает
Это означает, что вам не хватит места на диске раньше, чем вы ожидаете. Поэтому рекомендация (не в документации) - создавать разделы, использующие моментальные снимки, в два раза больше, чем обычно.
Я не нашел способ показать размер каждого снимка или общий размер всех снимков.
Таким образом, вы должны контролировать свободное место на диске с df
или это специфическая команда btrfs для рута (/
) файловая система:
btrfs filesystem df /
Очистка снимков окуня
Благодаря NerdyRoom™ "Радости btrfs и OpenSuSE - или" на устройстве не осталось места ". Я нашел самый простой способ удалить старые снимки, которые вы можете удалить (и вам придется делать, когда у вас заканчивается свободное место на диске).
Первый забег snapper list
чтобы увидеть порядковый номер снимков, которые там.
Из этого списка выберите разумную нижнюю и верхнюю границу снимков для удаления.
Затем запустите это с нижней (1
) и верхний (3656
) связаны:
for i in `seq 1 3656`; do snapper delete $i; done
Изменить 20161212:
Анонимный пользователь предложил изменить, чтобы сделать это короче. Я согласен, так как вышеперечисленное можно сделать короче, как описано на странице руководства snapper
snapper delete 1-3656