Як звільнити місце на диску
Блог про Linux, Bash та інші інформаційні технології

Аналіз використання дискового простору
Перш ніж щось робити, потрібно проаналізувати, що саме займає так багато місця на диску, які директорії. Для цього підійде програма baobab, яка візуально зображує диск з усіма директоріями або піддиректорією якоїсь директорії. Виглядає це в такий спосіб (картинка з вікіпедії):

Виглядає наочно, видно розмір як у відсотках, і у одиницях виміру.
Видалення непотрібних програм
Насамперед бажано видалити всі програми, якими ви не користуєтеся. Більшість людей використовують досить обмежений набір програм, а встановлюють, зазвичай, помітно більше, ніж використовують. Відповідно, якщо у вас є зайві програми, вони просто посідають місце на диску, і їх можна видалити командою
Разом із програмами часто встановлюються бібліотеки. Частина з них буде видалена разом із програмою, а частина залишиться. І цю другу частину зазвичай можна видалити командою
Видалення «осиротілих» пакетів
Після видалення пакетів можуть залишитися такі пакети, від яких вже жоден пакет в системі не залежить, і які автоматично не видаляються командою
Такі пакети можна знайти за допомогою програмиdeborphan. Для цього доведеться встановити пакет із однойменною назвою
Після запуску програма виводить список «осиротілих» пакетів, які можна видалити або вручну, або за допомогою такої простої конструкції:
Видалення налаштувань, що залишилися від віддалених пакетів
Після видалення пакетів командою
Результат має виглядати приблизно так:
Видалити такі налаштування можна такою командою:
Видалення налаштувань програм із директорії користувача
Більшість програм, які зберігають налаштування та дані, зберігають їх саме в домашній директорії користувача. Зазвичай це або директорія, назва якої починається з точки, наприклад
або директорія з назвою програми у директорії
У мене, наприклад, була директорія
/.config/google-chrome розміром 3,5 гігабайта.
Видалити такі директорії можна вручну, або використовувати для цього програму bleachbit. Вона знає, де зберігаються налаштування та дані досить великої кількості програм, і може вам допомогти з їх видаленням. Вона є у стандартних репозиторіях і її можна поставити командою
Хоча, чесно кажучи, коли ви розберетеся з тим, де зберігаються налаштування різних програм і як почистити кеш менеджера пакетів, може бути bleachbit вам і не потрібно.
Архівація даних
Це, мабуть, найстаріший і найвідоміший спосіб. Ви можете заархівувати дані, які вам поки не дуже потрібні, і вони займатимуть помітно менше місця. З сучасних архіваторів варто відзначити xz, що дає непоганий стиск, а з класичними, що стали вже класичними, природно, tar + «bzip2 -best».
Використання файлової системи зі стисненням
Якщо хочете, можете спробувати щось не зовсім звичайне, щось на зразок fusecompress.Щоправда, збирати доведеться з вихідних кодів і користь досить сумнівна з огляду на швидкість роботи.
Використання хмарних сховищ
Цей варіант для тих, хто не боїться, що дані будуть переглядати різні корпорації. Для того, щоб не займати локальне дискове місце, хмарне сховище потрібно монтувати як віддалену файлову систему за допомогою davfs2. Для цього найкраще підходить, як не дивно Yandex.Disk. Є, щоправда, маленький мінус. DavFS копіює синхронізовані файли в свою директорію, тому може копіювати файли на віддалений сервер займати додаткове місце.
Створення жорстких посилань на однакові файли
Ці методи не підходять. Як звільнити місце на диску?
Якщо способи вище не підходять, просто купіть диск якомога більше і не морочте людям голову.
Як зменшити витрату дискового простору
Щоб менше піклуватися про витрачання дискового простору, можна вжити низку заходів. Це вас, швидше за все, не врятує, але все-таки трохи допоможе.
1. Вимкнути кеш менеджера пакетів або перенести його в оперативну пам'ять
У дистрибутивах на базі Red Hat кешування зазвичай за замовчуванням відключено у налаштуваннях yum. Для цього є спеціальна опція keepcache=0 у файлі /etc/yum.conf. У дистрибутивах на базі Debian дещо складніше. Штатного налаштування, що відповідає за відключення кешу немає, але є парочка воркараундів.
Перший воркараунд полягає у видаленні пакетів після встановлення через директиву Dpkg::Post-Invoke. Для цього створимо файл /etc/apt/apt.conf.d/02autoclean і запишемо до нього наступне:
Другий воркараунд полягає у завданні порожніх значень для наступних змінних:
В офіційній документації вказується таке:
Тому,мабуть, можна цей спосіб вважати офіційним.
2. Вимкнути логи
Для робочої станції можна відключити логи зовсім (у більшості випадків на робочій станції їх дивляться ну дуже рідко, якщо взагалі дивляться), або зменшити їх кількість, яка зберігає logrotate, наприклад, до 5. Для серверів відключати логи вкрай не рекомендується, краще перенаправляти їх інший сервер, у якому rsyslog налаштований прийом логів.
3. Використовувати оперативну пам'ять для зберігання даних, які зазвичай пишуться на диск
Це може бути, наприклад, кеш браузера, або ще якісь часові дані, у тому числі кеш пакетного менеджера. Зазвичай такі дані не дуже важливі та їх збереження після перезавантаження не є обов'язковим. Насправді є два варіанти віртуальної файлової системи, яку можна використовувати – це ramfs та tmpfs. Зараз в основному використовується tmpfs, яка по суті дуже схожа на старішу ramfs, але яка дозволяє обмежувати обсяг віртуального диска. Ось приклад:
Після цього можна робити символічні посилання на /mnt/ramdisk і не забути зробити відповідний запис /etc/fstab
Плюс такого підходу ще й у тому, що операції введення-виведення з RAM-диском у рази швидше, ніж на найшвидшому SSD.
4. Якщо ви використовуєте віртуальні машини на зразок VirtualBox, розгляньте можливість використання контейнерів, наприклад, LXC. Досить часто можливостей контейнерів більш ніж достатньо, і повна віртуалізація, яка використовує більше ресурсів, у тому числі дискового простору, — це певний обгоред.