Плутанина щодо використання диска: на домашньому розділі Linux на SSD відсутнє 10G


15

Linux Mint говорить мені, що у мене є лише 622 Мб вільного місця на диску, але має залишитися кілька гігабайт.

Переглядаючи розділи, мені кажуть, що невикористаних приблизно десять гігабайт. Я google проблему та не знайшов рішення, але я знайшов підказку, що я повинен перевірити використання диска df -h.

sudo df -h /home
Filesystem      Size  Used Avail Use% Mounted on
/dev/nvme0n1p8  189G  178G  622M 100% /home

Вихід для мене не має сенсу: різниця між Sizeі Usedстановить 11 ГБ, але він відображається лише 622Mяк Доступний.

SSD не старий, тому я не очікував такої розбіжності.

Що я повинен зробити?


3
як зауважив @Kusalananda, ви не повинні просто сумніватися, чому ви не отримаєте ці 10 Гб (на що я сподіваюся, що я правильно звернувся у своїй відповіді), а й чому ви використовуєте більшу частину місця в / вдома. Якщо ви знаєте, чому (наприклад: зберігайте багато медіафайлів тощо), це нормально, якщо ви цього не зробите, вам варто потурбуватися про це, потенційна чистка дає більше 10 Гб економії місця. То що б це було?
AB

"Дивлячись на розділи, мені кажуть, що не використовуються десять гігабайт". - Де вам це сказали?
ctrl-alt-delor

2
@ ctrl-alt-delor from dfs 's output - Розмір: 189G, Використовується: 178G
billyjmc

@ ctrl-alt delor, я отримав цифру 10 Гб від gparted - а пізніше 11G з виходу df, як правильно було зроблено billyjmc.
tobiornottobi

Відповіді:


22

Якщо файлова система ext4, є зарезервовані блоки, здебільшого для полегшення обробки та уникнення фрагментації та доступні лише для кореневого користувача. Для цього налаштування його можна змінити в реальному часі за допомогою tune2fs (не всі налаштування можна обробляти таким чином, коли файлова система змонтована):

-м зарезервовано-відсотків блоків

Встановіть відсоток файлової системи, який може бути розподілений лише привілейованими процесами. Збереження деякої кількості блоків файлової системи для використання привілейованими процесами робиться, щоб уникнути фрагментації файлової системи та дати можливість системним демонам, таким як syslogd (8), продовжувати нормально функціонувати після того, як непривілейовані процеси не можуть записуватись у файлову систему. Зазвичай відсоток зарезервованих блоків за замовчуванням становить 5%.

Тож якщо ви хочете знизити бронювання до 1% (~ 2 Гб), отримуючи таким чином доступ до ~ 8 ГБ не більше зарезервованого місця, ви можете зробити це:

sudo tune2fs -m 1 /dev/nvme0n1p8

Примітка: -mопція фактично приймає десяткове число як параметр. Ви можете використовувати -m 0.1для резервування лише близько 200 Мб (і отримати доступ до більшості тих, які раніше були недоступними 10 Гб). Ви також можете скористатися -rопцією, а не резервувати безпосередньо за блоками. Мабуть, не рекомендується мати 0 зарезервованих блоків.


3
Користувач не «повертається» 8 Гб. Ви отримуєте на 8 ГБ більше витратити. Було б краще відстежити, що використовує весь простір на диску, а потім, можливо, очистити його, якщо потрібно, або іншим чином перемістити його в інше місце або виростити розділ.
Kusalananda

1
@Kusalananda Я зміню словниковий запас. Щодо використання, мені потрібні відгуки ОП. Питання ніколи не натякало на те, що невідомо високе використання, не вистачає лише 10 Гб.
AB

1
Дуже хороша і корисна відповідь, дякую. 5%, здається, дуже чітко відповідають пропущеним 10 гігабайт. Мене не турбує використання загальної кількості дискового простору, і я все одно можу виробити свій розділ. :)
tobiornottobi

4
Ваша відповідь, безумовно, правильна, але, можливо, варто відзначити, що значення простору, захищеного коренем, у цьому випадку не величезне. Це так /home, і резервування місця для кореня там не так важливо, як для інших частин файлової системи (наприклад, для того, щоб системні журнали все ще могли бути записані). Крім того, оскільки це SSD, запобігання фрагментації може не мати пріоритету, який він робить на металевих дисках, що обертаються.
marcelm

@marcelm Це має сенс для мене. Але чи все-таки це корисно на / home-розділі на SSD чи це просто марнотрата місця? Чи рекомендуєте ви зменшити корінний зарезервований простір до 1%?
tobiornottobi

8

Видалені файли також можуть сприяти "відсутньому простору"

lsof | grep deleted | grep /home

повертає цей вихід для мене

chrome    11181           criggie   15u      REG              254,0   
4194304  50651663 /home/criggie/.config/google-chrome/BrowserMetrics/BrowserMetrics-5D0236AF-2BAD.pma (deleted)

Звідси видно, що Chrome, який працює як PID 11181, відкрив цей файл BrowserMetrics, потім видалив його, і досі відкритий файл файлів. Це означає, що файл є невидимим у списку каталогів, але все ще займає місце на диску.

Чому програми роблять це? Коли запущений бінарний файл закінчиться, ОС випустить відкриту ручку файлу і файл на диску піде, не ризикуючи залишити застарілий темп-файл навколо.

Те, що я не бачу, - це наскільки велике використання диска цього файлу.


2
Більшість добре написаних програм не повинні цього робити. Це помилка, і слід повідомити, що більшість цих незрозумілих помилок насправді не з’являються, поки ви не перебуваєте у фазі оптимізації, і якщо вона вимкнена, вона навіть не може бути реально виявлена ​​під час тестування. Зауважте, що може бути певна причина, чому вони роблять це, може бути обґрунтування, яке я не знаю тут, щоб тримати ручку так довго.
П’яна коду мавпи

4
@DrunkenCodeMonkey Dude - його Chrome ... ти абсолютно прав.
Criggie

4
@DrunkenCodeMonkey, це робить дуже багато добре написаних програм. Шаблон відкритого видалення-закриття для створення тимчасових файлів на * nix майже універсальний, тому що він гарантує, що файл буде видалений при виході програми, незалежно від того, як вона закінчується: нормальне припинення, збій, вбитий через втрату пам’яті, вбитий від відключення електроенергії тощо
Марк

3
@DrunkenCodeMonkey так, що робити, якщо програма ніколи не робиться з нею?
Лише близько

3
@DrunkenCodeMonkey: Шаблон відкрито-видалити- працювати -закрити . Якщо програма все ще робить щось із вмістом тимчасового файлу (наприклад, використовує його як кеш-диск на диску або записує в нього телеметричні дані), то, звичайно, вона повинна тримати його відкритим. (Звичайно, можливо також, що це дійсно незамкнена ручка файлів, яку програма мала закрити, але не. Але зважаючи на те, що існує лише один такий файл і немає інших очевидних ознак витоку ресурсу, Я б почав з припущення, що файл, ймовірно, спеціально зберігається відкритим.)
Ilmari Karonen
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.