Путаница с использованием диска: 10G отсутствует на домашнем разделе Linux на SSD


15

Linux Mint говорит мне, что у меня всего 622 МБ свободного дискового пространства, но должно остаться несколько гигабайт

Глядя на разделы, мне говорят, что около десяти гигабайт не используется. Я погуглил проблему и не нашел решения, но нашел подсказку, с которой мне следует проверить использование диска 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 ГБ (что, я надеюсь, я правильно указал в своем ответе), но и почему вы используете большую часть пространства в / home. Если вы знаете, почему (например, храните много медиафайлов и т. Д.), Это нормально, если нет, вам следует позаботиться об этом, так как потенциальная очистка даст более 10 ГБ экономии места. Так что бы это было?
AB

«Глядя на разделы, мне говорят, что осталось около десяти гигабайт неиспользованных». - где вам это сказали?
ctrl-alt-delor

2
@ ctrl-alt-delor из dfвыходных России - Размер: 189G, Использовано: 178G
billyjmc

@ ctrl-alt delor, я получил цифру 10GB от gparted - и позже 11G от вывода df, как правильно предположил billyjmc.
Tobiornottobi

Ответы:


22

Если файловая система - ext4, существуют зарезервированные блоки, в основном, для облегчения обработки и предотвращения фрагментации, доступные только для пользователя root. Для этого параметра его можно изменить в режиме реального времени с помощью tune2fs (не все параметры можно обрабатывать, как показано, когда смонтирована файловая система):

-m забронированный-блоков-процент

Установите процент файловой системы, который может быть распределен только привилегированными процессами. Резервирование некоторого количества блоков файловой системы для использования привилегированными процессами выполняется для того, чтобы избежать фрагментации файловой системы и позволить системным демонам, таким как syslogd (8), продолжать правильно функционировать после того, как непривилегированные процессы не смогут записать в файловую систему. Обычно процент зарезервированных блоков по умолчанию составляет 5%.

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

sudo tune2fs -m 1 /dev/nvme0n1p8

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


3
Пользователь не «возвращает» 8 ГБ. Они получают на 8 ГБ больше. Было бы лучше отследить, что занимает все дисковое пространство, а затем, при необходимости, выполнить очистку этого или переместить его в другое место или увеличить раздел.
Кусалананда

1
@Kusalananda Я изменю словарный запас. Что касается использования, мне нужна обратная связь с OP. Вопрос никогда не намекал на то, что там было неизвестное высокое использование, пропустив только 10 ГБ.
AB

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

4
Ваш ответ, безусловно, правильный, но, возможно, стоит отметить, что ценность зарезервированного корневого пространства в этом случае невелика. Это так /home, и резервирование места для root там не так важно, как для других частей файловой системы (например, чтобы гарантировать возможность записи системных журналов). Кроме того, поскольку это твердотельный накопитель, предотвращение фрагментации может не иметь приоритета на вращающихся металлических дисках.
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 ... вы абсолютно правы.
Кригги

4
@DrunkenCodeMonkey, очень много хорошо написанных программ делают это. Шаблон open-delete-close для создания временных файлов в * nix является почти универсальным, потому что он гарантирует, что файл будет удален при выходе из программы, независимо от того, как он выходит: нормальное завершение, сбой, уничтожение из-за нехватки памяти, уничтожение при отключении питания и т.д.
Марк

3
@DrunkenCodeMonkey так, что, если программа никогда не будет сделана с этим?
оставил около

3
@DrunkenCodeMonkey: шаблон открыт-удален- работает -закрыт . Если программа все еще что-то делает с содержимым временного файла (например, использует его как кэш на диске или записывает в него данные телеметрии), то, конечно, она должна оставаться открытой. (Конечно, также возможно, что это действительно устаревший дескриптор файла, который программа должна была закрыть, но не закрыла. Но, учитывая, что существует только один такой файл и что нет других очевидных признаков утечки ресурса, Я бы начал с предположения, что файл, вероятно, хранится открытым специально.)
Ильмари
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.