root полный линукс. Нет свободных блоков

9

df -hсообщает, что раздел / заполнен на 100%. Во время работы du -hs *на каждом каталоге этого раздела видно, что все еще много места.

tune2efsкоторый сообщает только один блок, чтобы быть свободным. Также побежал fsck, что также показывает все используемые блоки.

Использование ионода составляет 14% в разделе '/'.

Обратите внимание, что / var, / usr, / dev, / tmp, / home смонтированы на разных разделах и в них есть свободное место.

Пожалуйста, дайте мне знать возможные причины, по которым все блоки заняты и отчеты о дисках заполнены, даже если места много.

Анкит
источник
1
какие файлы журналов вы недавно удалили?
Майк
Попробуй du -shx /и посмотри, говорит ли это, что места достаточно. Это оценит все, /не полагаясь на то, что вы поймали все возможные каталоги.
Insyte
du -shx / 188M Раздел '/' имеет размер 2 ГБ.
Ankit

Ответы:

13

Наряду с проблемой открытых файлов, которая обычно приводит к тому, что в противном случае свободное место остается недоступным, нередкой проблемой являются файлы, экранированные точками монтирования. Например, если у вас есть /tmpотдельный логический том, но файлы в каталоге /tmpв корневой файловой системе все еще есть , эти файлы будут занимать пространство, но будут скрыты при монтировании.

Попробуйте зайти в однопользовательский режим при загрузке, чтобы не работало ничего, что могло бы держать открытыми монтирования, размонтировать все и убедиться, что в каталогах нет файлов, которые обычно используются в качестве точек монтирования.

Дэвид Спиллетт
источник
1
Спасибо, Дэвид, за идею. Я пошел работать в этом направлении. Выяснил, что к машине подключен жесткий диск USB. Машина была перезагружена утром. Похоже, что жесткий диск не был обнаружен при загрузке, и некоторые его данные были отправлены в раздел «/». Я понял это, когда размонтировал / tmp и точку монтирования внешнего диска.
Ankit
11

Это часто происходит из-за того, что файл, открытый для записи, был удален, но процесс записи в файл не был перезапущен, поэтому файл был возвращен. Вы можете использовать lsof для поиска файлов, которые открыты, но не связаны (удалены)

lsof +L1

должен сделать свое дело. Как говорится на странице руководства:

Спецификация формы +L1выберет открытые файлы, которые не были связаны. Спецификация формы +L1 <file_system>будет выбирать несвязанные открытые файлы в указанной файловой системе.

user9517
источник
lsof + L1 ничего не дает. т.е. нет открытого несвязанного файла. Все остальное я могу проверить.
Ankit
Это позволило мне найти виновника в моей системе - это никак не связано с томами, экранированными при монтировании. У меня был зависший процесс резервного копирования, который занимал 90% корневого тома во временных файлах. lsof +L1перечислил их все очень просто.
Синхронно
0

Если файл удален, в то время как другой процесс удерживает его открытым, этот процесс может продолжить запись и, в конечном итоге, незаметно заполнить диск. Как только процесс, удерживающий открытым файл, завершается, блоки становятся доступными.

Попробуйте оценить каждый из запущенных демонов. Если возможно, перезапустите их. Если вы не можете понять это, перезагрузка окна должна очистить его.

Insyte
источник
Перезагрузил систему, запустил fsck, ничего не помогло.
Ankit
0

Вероятно, это связано с тем, что некоторый процент доступного пространства зарезервирован для пользователя root.

См. Зарезервированное место для root в файловой системе - почему? или диск заполнен на сервере Linux, количество используемых блоков намного меньше, чем количество доступных блоков

Кристоффер Хаммарстрём
источник