Как раздел может быть полным, если du ​​не показывает его?

1961
Jeroen Wiert Pluimers

В одной из моих систем корневой раздел заполнен:

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
Вы отключили какие-либо файлы? (например, удаление / очистка файла журнала, когда он все еще используется. Таким образом, удаление его из списка каталогов, пока он все еще занимает место на диске?) Hennes 11 лет назад 1
Другая идея: Вы использовали пространство в каталоге на /, а затем смонтировали другой каталог поверх этого, таким образом маскируя старые файлы? Hennes 11 лет назад 0
@ Хеннес нет и нет. Я сбит с толку: я никогда не видел, чтобы подобное происходило в системе Linux. Jeroen Wiert Pluimers 11 лет назад 0
Давайте нюанс предыдущего комментария @Hennes: я не сделал сознательно. Может ли быть какая-нибудь подсистема, которая могла бы сделать это? Jeroen Wiert Pluimers 11 лет назад 0
Его легко проверить, перезагрузившись (чтобы освободить несвязанные файлы), а затем загрузившись в однопользовательском режиме. Второе также может быть выполнено другими способами, например, `tellinit 1`, возможно,` shutdown` без -h -r (не уверен насчет этого в linux, в BSD, который переводит вас на уровень выполнения 1), `umount -a`. Или просто смотреть на то, что смонтировано и тестировать это. Hennes 11 лет назад 0
Ваши маунты могут просто «скрывать» много вещей под ними. Mat 11 лет назад 0
Я собираюсь загрузиться в однопользовательском режиме и посмотреть, что происходит. Jeroen Wiert Pluimers 11 лет назад 0
@Hennes Я загрузил систему восстановления с компакт-диска, так как она не работала должным образом в однопользовательском режиме, потому что root был переполнен. Из системы спасения я сделал `mount / dev / sda7 / mnt`, затем` chroot / mnt`, затем `du -s -h *` снова: практически тот же результат: результаты `du` не складываются к результату `df`. Jeroen Wiert Pluimers 11 лет назад 1
Удачи с fsck (до монтажа RW)? Кроме того, не стесняйтесь добавлять это к сообщению, чтобы мы могли удалить комментарии. Hennes 11 лет назад 2
Я нашел его на форумах openSUSE: он использует btrfs и снимки. Так что снимки занимают много места. И мне нужно найти способ удалить старые снимки. https://forums.opensuse.org/english/get-technical-help-here/install-boot-login/490199-how-can-partition-full-if-du-does-not-show.html#post2583491 Jeroen Wiert Pluimers 11 лет назад 0
Я думаю, что нашел это: http://www.nrtm.org/index.php/2012/03/13/the-joys-of-btrfs-and-opensuse-or-no-space-left-on-device/ Jeroen Wiert Pluimers 11 лет назад 0
@Hennes нашел это и отправил ответ. Jeroen Wiert Pluimers 11 лет назад 0

1 ответ на вопрос

1
Jeroen Wiert Pluimers

Сначала немного справочной информации

Если у вас есть btrfs в корневой файловой системе на http://www.opensuse.org/en/, то произойдут две вещи:

  1. openSUSE автоматически начнет использовать snapper для создания снимков вашей корневой файловой системы.
  2. снимки будут занимать дисковое пространство, которое дю не показывает

Это означает, что вам не хватит места на диске раньше, чем вы ожидаете. Таким образом, рекомендация (не в документации) - создавать разделы, использующие моментальные снимки, в два раза больше, чем обычно .

Я не нашел способ показать размер каждого снимка или общий размер всех снимков.

Таким образом, вы должны отслеживать свободное место на диске с помощью dfэтой команды btrfs для /файловой системы root ( ):

btrfs filesystem df / 

Очистка снимков окуня

Благодаря NerdyRoom ™ »Радости btrfs и OpenSuSE - или« на устройстве не осталось места ». Я нашел самый простой способ удалить старые снимки, которые вы можете удалить (и вам придется делать, когда у вас заканчивается свободное место на диске).

Сначала запустите, snapper listчтобы увидеть порядковый номер снимков, которые там есть.

Из этого списка выберите разумную нижнюю и верхнюю границу снимков для удаления.

Затем запустите это с нижней ( 1) и верхней ( 3656) границей:

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

Изменить 20161212:

Анонимный пользователь предложил изменить, чтобы сделать это короче. Я согласен, так как вышеперечисленное можно сделать короче в соответствии с man-страницей snapper :

snapper delete 1-3656 

Похожие вопросы