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

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

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

Проверьте свободное место на устройстве

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

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

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

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

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

Потребуется время, чтобы все пройти. Теперь попробуйте с помощью df.

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

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

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

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

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

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

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

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

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

Следует указать проблемный процесс. Просто перезапустите его.

Если это не сразу видно, выполните полную перезагрузку демона.

Недостаточно инодов

В файловых системах есть набор метаданных, называемых индексными дескрипторами. Inodes отслеживают информацию о файлах. Многие файловые системы имеют фиксированное количество inodes, поэтому очень возможно заполнить максимальное выделение inodes, не заполняя саму файловую систему. Вы можете использовать df для проверки.

Нет места на дескрипторах устройства

Сравните используемые inodes с общим количеством inodes. Если в наличии больше нет, к сожалению, вы не сможете получить больше. Удалите ненужные или устаревшие файлы, чтобы очистить inodes.

Плохие блоки

Последняя распространенная проблема - плохие блоки файловой системы. Файловые системы со временем могут повреждаться, а жесткие диски умирают. Ваша операционная система, скорее всего, посчитает эти блоки пригодными для использования, если они не отмечены иначе. Лучший способ найти и пометить эти блоки - использовать fsck с флагом -cc. Помните, что вы не можете использовать fsck из той же файловой системы, которую вы тестируете, поэтому вам, вероятно, понадобится Live CD.

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

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

Если вам нужны другие указатели для Linux, см. Наше руководство по настройка Bluetooth в Linux. Или, если хотите что-то другое, см. как установить браузер Mac Safari в Linux. Наслаждаться!

По теме:

3 комментария

  1. Как исправить ошибку "Нет места на устройстве" в Linux - Удалите кое-что!

  2. Привет

    Вы забыли небольшую неприятную деталь…
    В (реальном) случае "На устройстве не осталось места" вы не сможете войти в систему или даже запустить ее !!

    Подготовьте живой системный ключ !!
    ;-)


    На самом деле это зависит от обстоятельств. Я копировал файлы, когда он дал мне предупреждение и смог удалить вещь. Я также смог войти в систему в режиме восстановления, чтобы решить проблему, когда мне не удавалось регулярно входить в систему. Вы также можете запустить USB-накопитель с ОС, а затем скопировать и удалить достаточно данных, чтобы получить обычный вход. Тем не менее, я думаю, что ваше предложение - хорошая идея.