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

Нет места на устройстве

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

Также читайте: Как легко переименовать файлы в Linux

Проверьте оставшееся место на устройстве

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

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

Нет места на устройстве Анализатор диска

Начните с du. Укажите его на базовый каталог на диске, где возникла проблема. Предположим, это раздел с /.

sudo du -sh /

Нет места на устройстве Du

Это займет некоторое время, чтобы пройти через все. Теперь попробуйте с df.

sudo df -h

Нет места на устройстве Df

Добавьте / и файловые системы, смонтированные под ним. Например, если у вас есть /home на отдельном диске, добавьте это вместе с чтением для /. Общая сумма должна быть близка к тому, что вы получили с du. Если нет, это может указывать на удаленный файл, используемый процессом.

Конечно, основная проблема здесь заключается в том, приходят ли результаты этих команд меньше размера диска. Если да, то явно что-то не так.

Также читайте: Как запускать команды Bash в фоновом режиме в Linux

Возможные причины отсутствия места на устройстве

Есть несколько основных причин. Если вы заметили несоответствие между du и df, вы можете перейти к первому варианту здесь. В противном случае начните со второго.

Удаленный файл, зарезервированный процессом

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

Нет места на устройстве Lsof удаленный

Попробуйте найти процесс.

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