Linux на устройстве не осталось свободного места на
Со временем любая операционная система может засоряться по мере установки и удаления программ. Если ваш диск более 1 Тб, вы можете не утруждать себя очисткой Ubuntu, чтобы освободить место на диске. Но если ваш жесткий диск имеет ограниченное пространство, например, у меня 128 ГБ SSD в ноутбуке, освобождение дискового пространства становится необходимостью.
В этой статье я покажу вам некоторые из самых простых трюков, чтобы очистить вашу систему Ubuntu и получить больше места. Я также поделюсь некоторыми продвинутыми трюками, чтобы у вас был выбор.
Но перед этим давайте посмотрим, как найти свободное место, оставшееся на Ubuntu.
Проверьте свободное место на Убунту
Всегда полезно сначала проверить свободное дисковое пространство в Linux. Сделать это в Ubuntu довольно просто. Просто используйте инструмент Disk Usage Analyzer. Выполните поиск в меню и запустите программу. Здесь вы должны увидеть используемое дисковое пространство, а также оставшееся свободное место:
Как только вы узнали о состоянии свободного места на диске, пришло время очистить систему и освободить здесь еще немного свободного места.
Как освободить дисковое пространство в Ubuntu и Linux Mint
Существует несколько способов очистки дискового пространства в Ubuntu и других системах на базе Ubuntu. Здесь я покажу несколько трюков из командной строки, а также некоторые опции GUI.
Хоть я и упомянул несколько способов здесь, если вы новичок, избегайте тех, которые помечены как "для экспертов". Не то, чтобы вы не можете их использовать, но лучше избегать, если вы не знаете, что делаете.
Я использую Ubuntu 16.04 во время написания этой статьи, но вы можете использовать те же шаги для Ubuntu 18.04 и других версий Ubuntu, Linux Mint, Elementary OS и других дистрибутивов Linux на основе Ubuntu.
Вы также можете посмотреть видео, если не хотите читать.
1. Избавьтесь от пакетов программ, которые больше не требуются [Рекомендуется]
Если вы читали руководство по командам apt-get, вы могли наткнуться на опцию apt-get command 'autoremove'.
Эта опция удаляет библиотеки и пакеты, которые были установлены автоматически для создания зависимостей устанавливаемого пакета. Если пакет был удален, то эти автоматически установленные пакеты бесполезны в системе.
Эта команда также удаляет старые ядра Linux, которые были автоматически установлены при обновлении системы.
Это простая команда, которую вы можете запускать время от времени, чтобы освободить место в системе Ubuntu:
Как видите, эта она освободила 300 Мб свободного пространства в моей системе.
2. Удалите ненужные приложения [Рекомендуется]
У всех нас есть несколько игр и/или приложений, которые мы почти не используем. Думаете, это не так? Попробуйте найти всё установленное программное обеспечение в вашей системе Ubuntu.
Скорее всего, у вас установлено несколько приложений, которые вы редко используете. Может быть, вы установили их после просмотра какого-либо крутого обзора, из любопытства или для выполнения определенной задачи.
Если вам нужно больше места, избавиться от неиспользуемых или менее часто используемых приложений - это всегда хорошая идея.
Вы можете удалить программы в Ubuntu прямо в центре программного обеспечения или с помощью приведенной ниже команды, если знаете правильное название приложения:
3. Очистка APT-кэша в Ubuntu
Ubuntu использует APT (Advanced Package Tool) для установки, удаления и управления программным обеспечением в системе, при этом он сохраняет кэш ранее загруженных и установленных пакетов даже после их удаления.
Система управления пакетами APT хранит кэш DEB пакетов в /var/cache/apt/archives. Со временем этот кэш может увеличиваться и содержать множество пакетов, которые вам не нужны.
Вы можете увидеть размер этого кэша с помощью команды du ниже:
Как видите, у меня более 500 Мб кэш-памяти. Когда у вас почти нет места, эти 500 Мб могут быть очень полезными.
Теперь у вас есть два способа очистить APT кэш.
Либо удалить только устаревшие пакеты, как те, которые были заменены недавним обновлением, что делает их совершенно ненужными.
Либо удалить кэш apt целиком (освобождает больше дискового пространства):
4. Очистка логов системных журналов [Средний уровень]
Проблема в том, что с течением времени эти журналы занимают значительное место на диске. Вы можете проверить размер журнала с помощью этой команды:
Есть способы очистить системные журналы. Самый простой для вас - это очистить журналы, которые старше определенного дня.
5. Удаление старых версии Snap-приложений [Средний уровень]
Вы, наверное, уже знаете, что Snap-пакеты больше по размеру. Кроме того, в Snap хранятся как минимум две старые версии приложения (в случае, если вы хотите вернуться к предыдущей версии). Это съедает огромную часть пространства. В моем случае эта часть составляла более 5 GB.
Алан Поуп (Alan Pope), член команды Snapcraft в Canonical, создал небольшой скрипт, который вы можете использовать и запускать для очистки всех старых версий ваших snap приложений.
Здесь вам нужно создать новый shell скрипт и использовать следующие строки в нем:
Дайте ему разрешение на выполнение, запустите скрипт оболочки с помощью sudo и увидите магию. Скрипт удалил старые пакеты Snap и освободил более 2,5 ГБ пространства, используемого Snap.
6. Очистка кэша эскизов [Средний уровень]
Ubuntu автоматически создает эскизы для просмотра в файловом менеджере. Эти эскизы хранятся в скрытом каталоге в вашем аккаунте пользователя в каталоге
Со временем количество эскизов будет резко возрастать. Более того, кэш эскизов со временем будет содержать множество лишних элементов, которые больше не существуют.
Вы можете проверить размер кэша эскизов с помощью следующей команды:
В моей системе кэш эскизов размером более 300 Мб.
Так что это хорошая практика - очищать кэш эскизов каждые несколько месяцев или около того. Самый быстрый способ - использовать терминал (во избежание ошибок просто скопируйте команду):
7. Поиск и удаление дубликатов файлов
Иногда у вас могут быть дубликаты файлов в разных местах вашей системы. Избавление от дубликатов, безусловно, освободит некоторое пространство и очистит вашу систему Ubuntu.
Для этой задачи можно использовать графический интерфейс, такой как FSlint, или инструмент командной строки, такой как FDUPES.
Другие методы очистки системы [Для экспертов]
Удаление старых ядер Linux, которые были установлены вручную [Для экспертов].
Команда, рассмотренная в пункте 1, удаляет старое ядро Linux. Но она не сработает, если вручную установить ядро в Ubuntu. Но удаление старого, неиспользуемого ядра Linux все равно сэкономит Вам много места.
Поэтому, если Вы вручную установили ядро Linux, возможно, Вы сможете вручную и удалить его.
Сначала перечислите все установленные ядра Linux:
Удаление старых ядер - то же самое, что и удаление любого другого пакета. Я использую shell для набора номеров версий, чтобы немного сэкономить время на перепечатывании. Это подскажет вам список пакетов, которые будут удалены, так что вы можете дважды проверить этот список перед тем, как продолжить.
Замечание: Замените VERSION на версию ядра, которую хотите удалить.
Я рекомендую хранить как минимум два или, желательно, три ядра, включая самые последние. Таким образом, у вас будет по крайней мере одно/два других ядра для загрузки, если по какой-то причине последнее ядро не может быть загружено.
Удаление осиротевших пакетов [Для экспертов]
Этого шага лучше всего избегать, если вы новичок. Я не являюсь поклонником этого метода и советую вам избегать его.
Во-первых, давайте посмотрим, что такое осиротевший пакет в Ubuntu.
Предположим, вы установили пакет "myprogram". Но у этого пакета есть зависимость от библиотеки 'mylib'. Эта библиотека обычно устанавливается автоматически с помощью 'myprogram'. Когда вы удаляете 'myprogram', mylib может остаться в системе. Таким образом, mylib, в данном случае, становится сиротским пакетом.
Теперь команда, перечисленная в пункте 1, удаляет такие осиротевшие пакеты. Но представьте себе случай, когда вы вручную установили mylib перед установкой myprogram. Команда 'apt autoremove' в данном случае может не удалить осиротевший пакет. Следовательно, вам придется удалить его вручную.
Сначала вы должны найти все осиротевшие пакеты, а затем удалить их. К счастью, у нас есть GUI-инструмент для этого: gtkorphan, графическая оболочка для deborphan.
Установите gtkorphan через терминал:
А чтобы удалить осиротевшие пакеты, найдите инструмент Removed Orphaned Package и запустите его:
Честно говоря, я бы не рекомендовал этот вариант, если конечно тебе действительно не нужен каждый Мб свободного пространства.
Бонус: Использование графических инструментов GUI для освобождения пространства в Ubuntu
Мы видели несколько вариантов работы с командной строкой, чтобы освободить место в системе Linux, но я пойму, если вы не хотите использовать команды.
Запоминать все команды или использовать их все по очереди может быть неудобно. И именно поэтому у нас есть ряд GUI инструментов, которые помогут вам сделать это за несколько кликов с помощью простого в использовании интерфейса.
Stacer - это один из таких инструментов, который вы можете использовать.
Завершение
Итак, вы видели несколько способов очистки системы Ubuntu. Лично я использую apt-get autoremove чаще, чем любые другие команды, показанные здесь. Регулярное использование этой команды освобождает систему от лишних файлов.
Надеюсь, эта статья помогла Вам освободить место в Ubuntu, Linux Mint и других подобных дистрибутивах. Дайте мне знать, сработало ли это для Вас, или у Вас есть другой совет, которым Вы можете поделиться.
Избежать такой проблемы можно ещё на этапе планирования установки системы. Выделяйте под каталог /home отдельный раздел диска, тогда если вы займете всю память своими файлами, это не помешает работе системы. Также выделяйте больше 20 гигабайт под корневой раздел чтобы всем программам точно хватило места. Но что делать если такая проблема уже случилась? Давайте рассмотрим как освободить место на диске с Linux.
Первым дело надо понять на каком разделе у вас закончилась память. Для этого можно воспользоваться утилитой df. Она поставляется вместе с системой, поэтому никаких проблем с её запуском быть не должно:
На точки монтирования, начинающиеся со слова snap внимания можно не обращать. Команда отображает общее количество места на диске, занятое и доступное место, а также процент занятого места. В данном случае 100% занято для корневого раздела - /dev/sda5. Конечно, надо разобраться какая программа или файл заняла всё место и устранить эту проблему, но сначала надо вернуть систему в рабочее состояние. Для этого надо освободить немного места. Рассмотрим что можно сделать чтобы экстренно освободить немного памяти.
1. Отключить зарезервированное место для root
Обычно, у всех файловых систем семейства Ext, которые принято использовать чаще всего как для корневого, так и для домашнего раздела используется резервирование 5% памяти для пользователя root на случай если на диске закончится место. Вы можете эту память освободить и использовать. Для этого выполните:
sudo tune2fs -m 0 /dev/sda5
Здесь опция -m указывает процент зарезервированного места, а /dev/sda5 - это ваш диск, который надо настроить. После этого места должно стать больше.
2. Очистить кэш пакетного менеджера
Обычно, пакетный менеджер, будь то apt или yum хранит кэш пакетов, репозиториев и другие временные файлы на диске. Они некоторые из них ненужны, а некоторые нужны, но их можно скачать при необходимости. Если вам срочно надо дисковое пространство этот кэш можно почистить. Для очистки кэша apt выполните:
sudo apt clean
sudo apt autoclean
Для очистки кэша yum используйте команды:
3. Очистить кэш файловой системы
Вы могли удалить некоторые большие файлы, но память после этого так и не освободилась. Эта проблема актуальна для серверов, которые работают долгое время без перезагрузки. Чтобы полностью освободить память надо перезагрузить сервер. Просто перезагрузите его и места на диске станет больше.
4. Найти большие файлы
После выполнения всех перечисленных выше рекомендаций, у вас уже должно быть достаточно свободного места для установки специальных утилит очистки системы. Для начала вы можете попытаться найти самые большие файлы и если они не нужны - удалить их. Возможно какая-либо программа создала огромный лог файл, который занял всю память. Чтобы узнать что занимает место на диске Linux можно использовать утилиту ncdu:
sudo apt install ncdu
Она сканирует все файлы и отображает их по размеру:
Более подробно про поиск больших файлов читайте в отдельной статье.
5. Найти дубликаты файлов
С помощью утилиты BleachBit вы можете найти и удалить дубликаты файлов. Это тоже поможет сэкономить пространство на диске.
6. Удалите старые ядра
Ядро Linux довольно часто обновляется старые ядра остаются в каталоге /boot и занимают место. Если вы выделили под этот каталог отдельный раздел, то скоро это может стать проблемой и вы получите ошибку при обновлении, поскольку программа просто не сможет записать в этот каталог новое ядро. Решение простое - удалить старые версии ядер, которые больше не нужны.
Выводы
Нет похожих записей
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.
Есть два пути решения данной проблемы, но сперва нам надо узнать о наличии свободного места в системе. Для этого в терминале набираем следующее:
Из вывода нас интересует только две строчки:
Тут вывод показывает сколько места у нас осталось на основной системе «/«. Как видно что использовано всего 57% пространства.
Тут вывод показывает сколько места у нас осталось в директории «/home«, для данной директории мы выделили свое пространство на диске. Как видно что использовано всего 5% пространства.
И так вот мы и подобрались к решению самой проблемы. Напомню что у нас два пути по которому мы должны двигаться.
Первое — это если место закончилось, т.е. из вывода выше на всех примонтированных дисках у нас заполненность была 100%. То тут поможет только удаление ненужных файлов. Вот вам парочка статей о том, как освободить место на вашем диске в Linux.
- Какие файлы можно удалить при нехватке места на диске Linux (скоро ожидается)
- Программа ncdu. Как узнать, какие файлы и директории занимают наибольшее место на диске (скоро ожидается)
Второе — это если место на диске есть, как и в моем случае, но система выдает вам данное предупреждение о нехватке места ‘No Space Left on Device’. В этом случае необходимо проделать ряд мероприятий по настройке и очистке системы.
Далее я разберу только второй вариант — это когда место на диске есть, но система все равно ругается о нехватке ресурсов. И так поехали!
Удаление файлов занятых процессом
В системе иногда так случается, что файл удалён, но процесс все ещё использует его. Linux не освободит хранилище, связанное с файлом, пока процесс ещё запущен. Вам просто нужно найти этот зловредный процесс и перезапустить/удалить его.
Давайте введем следующую команду и посмотрим на процессы:
Если результатов нет, то попробуйте команду:
В списке должен присутствовать процесс, вызывающий проблему, затем просто перезапустите его:
или остановите данный процесс:
Для примера я перезапустил процесс unattended:
Недостаточно Инод (Inode)
Для современных файловых систем Linux есть такое понятие как иноды.
inodes — это набор метаданных на файловой системе. Иноды отслеживают информацию о файлах. Многие файловые системы имеют фиксированное количество инод, поэтому очень возможно занять максимальное выделенное количество без заполнения самой файловой системы. Вы можете использовать для проверки команду df:
В нормальных условиях, даже на системах интенсивно использующих постоянное хранилище, редко происходит потребление всех инод. Как правило, исчерпание inodes сигнализирует о другой проблеме. Обычно причиной является неконтролируемое создание огромного количество файлов из-за бага в системе или в программе.
В первую очередь нужно локализовать папку, в которой возникла проблема.
Следующая команда выведет количество используемых инод каждой директории, присутствующей в корне файловой системы:
Когда будет найдена директория с наибольшим количеством инод, то можно будет уже работать с данной директории.
В разных ситуациях для пользователей проблемными директориями оказывались:
- /var/lib/php/sessions/
- /var/cache/fontconfig
- /usr/src/
- /var/cache/eaccelerator/
- /var/log/squid3/
В /usr/src/ накапливалось слишком большое количество файлов, имеющих отношение к предыдущим ядрам. В /var/lib/php/sessions/ — бесконечные сессии phpMyAdmin. В /var/log/squid3/ и вообще в папке /var/log/ может накопиться огромное количество файлов с журналами от неправильно работающей программы или просто за много лет. В папке /var/cache/ может скопиться огромное количество файлов, имеющих отношение к кэшированию.
Когда проблемная директория найдена, то нужно её очистить. Скорее всего все файлы в ней не нужны, но надо конечно же понимать что удаляете. Также весьма вероятно, что файлов там астрономическое количество и их обработка может затянуться на часы, поэтому самый быстрый вариант — удалить директорию целиком, а затем создать её заново.
Плохие блоки
Ещё одна распространённая проблема — это плохие блоки в файловой системе. Со временем из-за износа дисков, файловые системы повреждаются. Ваша операционная система, скорее всего, увидит эти блоки пригодными для использования, если они не помечены иным образом. Лучший способ найти и пометить эти блоки — использовать fsck с флагом -cc. Помните, что вы не можете использовать fsck из той же файловой системы, которую тестируете. Вам, вероятно, понадобится использовать Live CD.
- замените /dev/sda1 на имя того диска и раздела, который вы хотите проверить. Кроме того, имейте в виду, что это, вероятно, займёт много времени.
Надеюсь, одно из этих решений решило вашу проблему. Эту проблему не всегда легко диагностировать в каждом случае. Однако, если повезёт, вы сможете устранить источник проблемы и продолжить пользоваться системой без её переустановки.
Если есть вопросы, то пишем в комментариях.
Также можете вступить в Телеграм канал, ВК или подписаться на Twitter. Ссылки в шапки страницы.
Заранее всем спасибо.
Задан список участников соревнований по плаванию и их результаты. Расположите результаты и фамилии участников в соответствии с занятым местом
Задан список участников соревнований по плаванию и их результаты. Расположите результаты и фамилии.
База данных, связанная с местом отправления и местом прибытия
В общем нужно создать базу данных аэропорта, но есть проблема, связанная с аэропортом отправления и.
Определить кратчайшее расстояние между местом бросания и местом нахождения тела спустя 3 с после бросания
Привет ребят. Не могу решить задачку по физике (возможно я неправильно понимаю условие). Итак.
PHP ищет файлы не в корне сайта, а в корне файловой системы
Всем привет! Пытаюсь настроить локальный сервер на Mac OS X 10.9.5 и не могу понять PHP ищет.
Решение
Вероятнее всего, именно в /tmp и закончилось свободное пространство.
Это произошло потому, что при нахождении всех системных директорий на одном разделе HDD, выделение нужного директориям пространства происходит динамически - "сколько нужно - столько и получи, лишнее - верни обратно", а вот при ручном вынесении конкретных директорий на другие разделы HDD пространство им из рутового раздела не выделяется - "сколько выделено пользователем - столько и имеешь".
Ручная разбивка иногда бывает полезна и нужна - в сложных случаях многодисковых кластеров из маленьких объёмов, в сложных случаях конфигураций пространства HDD из-за траблов с чтением данных на определённых участках диска и т.п. Но вышеприведённые траблы обычно решаются переносом всего на новый больший по объёму HDD - разметка делается с нуля, сообразно текущим нуждам с перспективой расширения.
Изначально возможность разнести систему по разным HDD была как раз задумана и востребована в силу маленьких объёмов существовавших тогда драйвов. Да были времена, когда мне друг и мой негласный гуру сказал про 40Гб диск - "У-у! Это огромнейшее пространство!"
При сегодняшних объёмах, занимаемых системой ей вполне достаточно выделить под рут гигов 15 - 20 и не задумываться - система будет сама этим пространством вполне рационально распоряжаться.
Если и выносить с рута на другой раздел какие-либо системные директории, то, кроме. разумеется /home (который, как я подразумеваю, у нас и так вынесен), можно вынести /usr/games (если вы любитель погамать) и вообще /usr (если у вас много юзеров, работающих в системе по сети с тонких клиентов или вы устанавливаете ну очень много, просто огромное количество приложений пользовательского уровня).
Типичный пример: вы хостите собственный WWW-ресурс в локалку - веб-интерфейс большого FTP-сервера. В этом случае вам лучше иметь хостовую систему на одном HDD, а весь сайт со всем его содержимым и медиаданные FTP - на другом. Для этого просто вынесем на второй HDD директорию /var/www и всё! Apache и SAMBA в системе настраиваются штатно - для них вся эта чехарда абсолютно прозрачна. В итоге: корень системы и несколько юзеров-админов на одном винте, а всё остальное расшаренное - на другом!
В остальных случаях этого делать не нужно.
В данный момент у вас наблюдается трабла - переполняется пространство на вынесенном разделе, когда на корневом его свободного завались.
Самое логичное будет перенести директорию с вынесенного раздела на корневой. Чем мы и займёмся.
Для этого нам лучше всего ребутнуться в init 1, или, по крайней мере, отключить сеть - чтобы в ту директорию (/tmp) у нас ничего не писалось помимо наших действий.
Прикол сей директории в том, что в неё и писать и читать имеет право всякий таракан, в отличие от других системных директорий, где право записи имеет только рут.
Мы же все действия будем делать из рута - в init 1 только в него попасть и можно
Читайте также: