3 лучших способа исправить ошибку «Нет свободного места на устройстве» в Linux
Ошибки без ясной причины являются наиболее раздражающими проблемами, с которыми приходится иметь дело. И хотя Linux обычно специфичен в своих сообщениях об ошибках, это один из немногих случаев, когда он ошибается.
Получение сообщения об ошибке «На устройстве не осталось места» мало что объясняет, особенно если ваш диск далеко не заполнен. Почему появляется это сообщение об ошибке? Почему вы не можете создавать новые файлы, хотя на диске достаточно места? И самое главное, как это исправить?
Давай выясним.
Действительно ли на вашем жестком диске достаточно места(Hard Drive Actually Have Enough Space) ?
Прежде чем спешить с поиском решения, для начала убедитесь, что проблема действительно существует. В конце концов, если в вашей системе действительно закончилось место на диске, не нужно паниковать. Вы можете просто удалить ненужные данные, чтобы освободить больше места.
Есть две системные команды Linux для получения информации о дисковом пространстве — du и df. Команда du оценивает использование дискового пространства, а команда df анализирует наличие свободного места на диске. Использование их в сочетании с sudo дает вам точный отчет о том, сколько места на самом деле доступно на диске.
- Начнем с команды du. Его вывод может быть довольно длинным и громоздким, поэтому мы будем использовать флаги -s и -h. -s обобщает результаты, а -h обеспечивает удобочитаемость. Итак, введите команду sudo du -sh /where/, указывающую на базовый каталог.
- Не беспокойтесь обо всех сообщениях об отказе в разрешении — именно так он просматривает все подкаталоги системы. В зависимости от размера диска вам, возможно, придется оставить его включенным на некоторое время, так как он рекурсивно проходит через все.
- Когда du завершит сканирование, он выведет простой список каталогов вместе с их размерами. Например, это результат применения команды du к обычному каталогу.
Теперь мы будем использовать df, чтобы узнать, сколько свободного места доступно. Команду df гораздо проще использовать, так как она показывает только смонтированные файловые системы и статистику их использования. И снова мы будем использовать флаг -h, чтобы сделать вывод понятным для человека.
судо дф -ч(sudo df -h )
Идея состоит в том, чтобы подсчитать результаты команд du и df. Любое несоответствие указывает на место на диске, которое не является свободно доступным, несмотря на то, что оно не используется какими-либо файлами или папками.
Почему Linux показывает(Does Linux Show) «Нет свободного(Space Left) места на устройстве»?
Если вы видите сообщение об ошибке «Нет свободного места на устройстве», несмотря на то, что на вашем диске достаточно свободного места, это не связано с аппаратным обеспечением. Выяснение точной причины ошибки может потребовать некоторого устранения неполадок.
- Недавно удаленный файл. Наиболее распространенной причиной появления этой ошибки является недавно удаленный файл. Часто файл удаляется, когда процесс все еще использует его, сохраняя зарезервированное место, даже если файл уже исчез.
- Недостаточно инодов(Enough Inodes) : Другой частой причиной является нехватка инодов(inodes) . Иноды — это индексные страницы файловой системы Unix , содержащие метаданные каждого файла в хранилище. Однако количество инодов не безгранично, и исчерпание инодов до того, как освободится место для хранения, может привести к ошибке «Нет свободного места на устройстве».
- Неисправный жесткий(Hard) диск: тогда, конечно, существует вероятность того, что жесткий диск просто выходит из строя, и большая часть видимого свободного места занята поврежденными секторами. Поскольку системе не удается записать какие-либо файлы в эти места, она выдает ошибку.
Исправление 1: перезапуск процессов с использованием удаленных файлов(Using Deleted Files)
Наиболее вероятной причиной ошибки «Нет свободного места на устройстве» является процесс, все еще использующий удаленный файл. К счастью, исправить эту ошибку несложно. Вам просто нужно перезапустить процесс(restart the process) , чтобы освободить зарезервированное хранилище.
- Чтобы найти проблемный процесс, вам нужно использовать команды lsof и grep. Команда lsof предоставит вам список всех открытых файлов, используемых запущенными процессами, а grep может сузить выбор до тех, которые удалены. Итак, введите sudo lsof / | grep удален, где / — базовый каталог, а | конвейер для связывания вывода lsof с grep.
- Теперь вы можете перезапустить затронутый процесс с помощью команды sudo systemctl restart service_name, где имя службы — это имя службы, которая оказалась в поиске.
- Если таких процессов несколько или вы просто не хотите заморачиваться поиском конкретных служб, вы можете просто сбросить их все с помощью команды sudo systemctl daemon-reload. Это регенерирует все зависимости, принимая во внимание любые изменения в файловой системе.
После этого пространство для хранения, удерживаемое процессом, должно снова стать доступным, что позволит вам записывать файлы без каких-либо ошибок.
Исправление 2: проверьте индексные дескрипторы
Хотя каждый диск имеет большое количество инодов, оно конечно. И если ваша система замусорена невероятным количеством файлов, можно достичь этого предела до исчерпания емкости накопителя. Вот почему лучше иметь большие файлы, чем слишком много маленьких.
Вы можете легко проверить доступность индексных дескрипторов, используя флаг -i с командой df. Как это:
судо дф -я(sudo df -i )
Это четко покажет общее количество инодов, присутствующих в файловой системе, а также количество, используемое в настоящее время. Если в вашей системе не осталось свободных инодов, это является источником ошибки «Нет свободного места на устройстве».
Поскольку иноды создаются только при первом форматировании диска, невозможно создать больше инодов. Все, что вы можете сделать, это удалить все ненужные файлы, чтобы освободить индексные дескрипторы для будущих файлов.
Исправление 3: пометить плохие блоки
Повреждение данных(Data) — неизбежная судьба любого жесткого диска. В то время как новый диск не столкнется с этой проблемой, старые жесткие диски постепенно начнут выходить из строя.
Это означает, что части жесткого диска становятся непригодными для использования, хотя файловая система по-прежнему считает их функциональными. Эти плохие блоки ложно завышают кажущееся свободное пространство на диске, тогда как на самом деле в них нельзя записать файлы. Это приводит к ошибке «Нет свободного места на устройстве», поскольку операционная система пытается сохранить какие-либо данные в этих местах, но не может.
Не существует реального способа решить эту проблему, так как поврежденные сектора являются результатом физического износа жесткого диска. Единственное, что вы можете сделать, это пометить поврежденные сектора, чтобы на них больше не ссылалась файловая система.
Для этого вам необходимо загрузиться с Live CD , так как вы не можете выполнить проверку файловой системы(File System Check) на работающем диске. Как только вы это сделаете, просто используйте следующую команду:
sudo fsck -vcck /dev/sda
Это заменяет /dev/sda на путь к диску, который вы хотите восстановить. Это автоматически обнаружит все поврежденные блоки на диске и пометит их как непригодные для использования. Однако это не даст вам дополнительной емкости для хранения, поэтому будьте готовы очистить некоторые бесполезные файлы, чтобы освободить место на диске.
Как лучше всего исправить ошибку «Нет свободного места на устройстве»?
Обычной причиной появления ошибки «На устройстве не осталось места» в Ubuntu или любом другом дистрибутиве Linux является удаленный файл, который все еще используется запущенным процессом. Это резервирует хранилище, которое было занято файлом, предотвращая запись данных в это пространство другими операциями.
Устранить эту проблему также проще всего, так как все, что вам нужно сделать, это перезапустить рассматриваемый процесс. Однако другие причины ошибки решить не так просто.
Независимо от того, страдает ли ваш диск от плохих блоков данных или у него закончились inode, нет прямого способа решить эти проблемы. Вы должны удалить существующие файлы, чтобы освободить место для записи новых данных.
Related posts
8 способов исправить ошибку «У вас нет прав на сохранение в этом месте» в Windows
Исправить ошибку «Word не удается запустить конвертер MSWRD632.WPC/SSPDFCG_x64.CNV»
Исправить ошибку «Не удается запустить Microsoft Office Outlook»
Как исправить «Не удалось загрузить изображение. Нажмите, чтобы повторить» Ошибка Instagram
Как исправить ошибку «Windows не удается получить доступ к указанному пути или файлу устройства»
Исправить ошибку «Вам понадобится новое приложение, чтобы открыть этот ms-windows-store» в Windows
Как исправить ошибку Outlook «Извините, у нас возникли проблемы с открытием этого элемента»
Как исправить ошибку «Ошибка страницы в невыгружаемой области»
Как Fix Dev Error 6068 (топ 14 Ways)
Исправлена ошибка Netflix "Невозможно подключиться к Netflix"
Как исправить ошибку «Windows не удалось завершить форматирование»
13 способов исправить «Это сообщение не было загружено с сервера» на iPhone и iPad
Как исправить ошибку «Не удалось создать виртуальную машину Java»
Исправить ошибку «Файл слишком велик для целевой файловой системы»
Исправить ошибку «Не удалось установить Windows на этот диск»
Как исправить ошибку «Windows не удалось настроить один или несколько компонентов системы»
Как исправить ошибку Discord «Нет маршрута»
7 способов исправить ошибку «Драйвер недоступен» для принтеров HP на ПК с Windows
8 способов исправить «Ой, Snap!» Ошибка сбоя страницы в Chrome
Как исправить ошибку «Устройство TPM не обнаружено» в Windows