В большинстве случаев Linux довольно специфичен в своих сообщениях об ошибках. «Это не сработало – попробуйте установить этот пакет». Однако есть один, который мне не особо помогает: «На устройстве не осталось места». Что является причиной этого? Я думал, что у меня 2 ТБ памяти, как она может быть заполнена? С чего начать поиск? Сегодня мы расскажем вам обо всем этом в нашем руководстве о том, как исправить ошибку «Нет места на устройстве» в Linux.
Также читайте: Как легко переименовать файлы в Linux
Проверьте свободное место на устройстве
Прежде чем идти дальше, рекомендуется проверить, действительно ли на диске осталось место. Хотя инструменты в среде вашего рабочего стола хороши, использовать их напрямую из командной строки может быть быстрее.
Если вы хотите использовать эти инструменты в среде своего рабочего стола, они предоставят вам легко читаемое представление информации, которую вы можете
Contents
Проверьте свободное место на устройстве
Fedora с GNOME, и инструмент анализа использования дисков GNOME показывает следующее.![Нет места на устройстве Анализатор диска](https://saintist.ru/wp-content/uploads/2024/05/no-space-on-device-disk-analyzer.jpg)
Начните с du
. Наведите его на базовый каталог на диске, на котором возникла проблема. Предположим, это раздел с /
.
sudo du -sh /
Чтобы все просмотреть, потребуется некоторое время. Теперь попробуйте df
.
sudo df -h
![Нет места на устройстве Df](https://saintist.ru/wp-content/uploads/2024/05/no-space-on-device-df-e1617063230208.png)
Добавьте /
и смонтированные под ним файловые системы. Например, если у вас есть /home
на отдельном диске, добавьте его к значению /
. Сумма должна быть близка к той, что у вас была с du
. В противном случае это может указывать на то, что процесс использует удаленный файл.
Конечно, главная проблема здесь заключается в том, соответствуют ли результаты этих команд размеру диска. Если да, то явно что-то не так.
Читайте также: Как запускать команды Bash в фоновом режиме в Linux
Возможные причины отсутствия места на устройстве
Здесь есть несколько основных причин. Если вы заметили несоответствие между du
и df
, вы можете перейти к первому варианту здесь. В противном случае начните со второго.
Удаленный файл, зарезервированный процессом
Иногда файл удаляется, но процесс все еще использует его. Linux не освободит хранилище, связанное с файлом, пока процесс еще запущен, но вы можете найти процесс и перезапустить его.
![Нет места на устройстве Lsof удалено](https://saintist.ru/wp-content/uploads/2024/05/no-space-on-device-lsof-deleted-e1617063333273.png)
Попробуйте найти процесс.
sudo lsof / | grep deleted
Необходимо указать проблемный процесс. Просто перезапустите его.
sudo systemctl restart service_name
Если это не сразу видно, выполните полную перезагрузку демона.
sudo systemctl daemon-reload
Читайте также: Исправление «имя пользователя отсутствует в файле sudoers. Об этом инциденте будет сообщено» Ошибка в Ubuntu
Недостаточно инодов
В файловых системах существует набор метаданных, который называется «иноды». Возможные причины отсутствия места на устройстве. Многие файловые системы имеют фиксированное количество индексных дескрипторов, поэтому вполне возможно заполнить максимальное количество индексных дескрипторов, не заполняя саму файловую систему. Для проверки можно использовать df
.
sudo df -i /
Сравните использованные индексные дескрипторы с общим числом индексных дескрипторов. Если в наличии больше нет, к сожалению, вы не сможете получить больше. Удалите некоторые ненужные или устаревшие файлы, чтобы очистить индексные дескрипторы.
Плохие блоки
Последняя распространенная проблема — плохие блоки файловой системы. Файловые системы со временем могут повредиться, а жесткие диски выйти из строя. Ваша операционная система, скорее всего, сочтет эти блоки пригодными для использования, если они не помечены иным образом. Лучший способ найти и пометить эти блоки — использовать fsck
с флагом -cc
. Помните, что вы не можете использовать fsck
из той же файловой системы, которую тестируете, поэтому вам, вероятно, придется использовать Live CD.
sudo fsck -vcck /dev/sda2
Очевидно, замените местоположение диска на диск, который вы хотите проверить. Вы можете найти это, используя ранее использованную команду df
. Кроме того, имейте в виду, что это, вероятно, займет много времени, поэтому будьте готовы выпить кофе.
Читайте также: Проверьте и восстановите файловую систему с помощью fsck [Linux]
Надеюсь, одно из этих решений решило вашу проблему. Эту проблему н
Недостаточно инодов
ть. Однако, если повезет, вы сможете устранить проблему и ваша система снова заработает нормально.Если вам нужны дополнительные рекомендации по Linux, ознакомьтесь с нашим руководством по как настроить Bluetooth в Linux . Или, чтобы узнать что-то другое, см. как установить браузер Safari для Mac в Linux . Наслаждайтесь!
Также читайте: 4 способа клонировать весь жесткий диск в Linux