Как исправить ошибку "Нет места на устройстве" в Linux

Чаще всего Linux довольно конкретен в своих сообщениях об ошибках. “Это не сработало – попробуйте установить этот пакет.” Однако есть одно сообщение, которое действительно не помогает мне: “Нет места на устройстве.” Что его вызывает? Я думал, что у меня 2 ТБ хранилища, как оно может быть заполнено? С чего мне начать искать? Сегодня мы проведем вас через все это в нашем руководстве о том, как исправить ошибку “Нет места на устройстве” в Linux.
Также читайте: Как легко переименовать файлы в Linux
Проверьте оставшееся место на устройстве
Прежде чем двигаться дальше, хорошей идеей будет проверить, действительно ли на диске осталось место. Хотя инструменты в вашей рабочей среде хороши, использовать прямые команды из командной строки может быть быстрее.
Если вы хотите использовать инструменты в вашей рабочей среде, они дадут вам легко читаемые представления информации, которую вы можете найти с помощью этих инструментов. Я использую Fedora с GNOME, и инструмент анализа дискового пространства GNOME показывает мне следующее.

Начните с du. Укажите его на базовый каталог на диске, где возникла проблема. Предположим, это раздел с /.
sudo du -sh /
Это займет некоторое время, чтобы пройти через все. Теперь попробуйте с df.
sudo df -h
Добавьте / и файловые системы, смонтированные под ним. Например, если у вас есть /home на отдельном диске, добавьте это вместе с чтением для /. Общая сумма должна быть близка к тому, что вы получили с du. Если нет, это может указывать на удаленный файл, используемый процессом.
Конечно, основная проблема здесь заключается в том, приходят ли результаты этих команд меньше размера диска. Если да, то явно что-то не так.
Также читайте: Как запускать команды Bash в фоновом режиме в Linux
Возможные причины отсутствия места на устройстве
Есть несколько основных причин. Если вы заметили несоответствие между du и df, вы можете перейти к первому варианту здесь. В противном случае начните со второго.
Удаленный файл, зарезервированный процессом
Иногда файл будет удален, но процесс все еще использует его. Linux не освободит хранилище, связанное с файлом, пока процесс все еще работает, но вы можете найти процесс и перезапустить его.

Попробуйте найти процесс.
sudo lsof / | grep deletedПроблемный процесс должен быть в списке. Просто перезапустите его.
sudo systemctl restart service_nameЕсли это не очевидно, выполните полную перезагрузку демона.
sudo systemctl daemon-reloadТакже читайте: Исправление ошибки “имя пользователя не в файле sudoers. Этот инцидент будет зафиксирован” в Ubuntu
Недостаточно инодов
Существует набор метаданных на файловых системах, называемый “иноды”. Иноды отслеживают информацию о файлах. Многие файловые системы имеют фиксированное количество инодов, поэтому очень возможно заполнить максимальное количество инодов, не заполняя саму файловую систему. Вы можете использовать df, чтобы проверить.
sudo df -i /
Сравните использованные иноды с общими инодами. Если больше нет доступных, к сожалению, вы не сможете получить больше. Удалите некоторые бесполезные или устаревшие файлы, чтобы освободить иноды.
Плохие блоки
Последняя распространенная проблема – это плохие блоки файловой системы. Файловые системы могут со временем повреждаться, и жесткие диски выходят из строя. Ваша операционная система, скорее всего, будет рассматривать эти блоки как используемые, если они не помечены иначе. Лучший способ найти и пометить эти блоки – использовать fsck с флагом -cc. Помните, что вы не можете использовать fsck с той же файловой системой, которую вы тестируете, поэтому вам, вероятно, понадобится использовать живой CD.
sudo fsck -vcck /dev/sda2Очевидно, замените расположение диска на диск, который вы хотите проверить. Вы можете найти это, используя команду df из предыдущего раздела. Также имейте в виду, что это, вероятно, займет много времени, так что будьте готовы взять кофе.
Также читайте: Проверьте и исправьте вашу файловую систему с помощью fsck [Linux]
Надеюсь, одно из этих решений решило вашу проблему. Эта проблема не всегда легко диагностируется. Но, если повезет, вы сможете ее устранить и вернуть вашу систему к нормальной работе.
Если вы ищете больше советов по Linux, посмотрите наше руководство о том, как настроить Bluetooth в Linux. Или, для чего-то немного другого, посмотрите, как установить браузер Safari от Mac в Linux. Наслаждайтесь!
Также читайте: 4 способа клонировать весь жесткий диск в Linux