По умолчанию Linux резервирует некоторую часть файловой системы для пользователя root, по крайней мере, для ext4 (чтобы обычные пользователи не могли полностью заполнить диск и привести к сбою системы, а также уменьшить фрагментацию). Однако df
отображает только свободное пространство, доступное обычным пользователям (даже при запуске от имени пользователя root). Как вы отображаете «реальное» свободное пространство, которое было бы доступно для root?
источник
tune2fs -l /dev/DEVICE | egrep "Block count|Reserved block count"
. Например, для моего раздела «мультимедийный буфер»:Block count: 2621440
иReserved block count: 128449
: 4,9% доступных блоков (консервативный параметр, помогающий предотвратить фрагментацию).cut
команду: вы можете выбрать поляawk
напрямую. На самом делеcut
команда не работает для меня , как и ожидалось. Во всяком случае, я дал другой ответ, который должен дать более точный ответ.tune2fs -m <percentage> <device-name>
чтобы изменить место на диске, зарезервированное только для использования root.sudo tune2fs -l $(df | grep -E '/$' | cut -d\ -f 1) | egrep "Reserved block count|Block size" | paste -sd\ | awk '{print ($4 * $7 / ( 1024 * 1024 ) ), "MB"}'
tune2fs /dev/sda1
или даже лучшеstat -f -c '%a blocks free and %f blocks free for root (%S bytes per block)' /
Используя команду tune2fs (находится в / sbin / tune2fs ), вы можете легко определить зарезервированное пространство : (и многое другое!)
Я предоставлю информацию о моей системе для справки, я собираюсь удалить посторонние строки, не важные для этого вопроса:
Заголовок ... и имя тома, я помечаю все свои диски, позволяет легко идентифицировать их при необходимости.
ДЕЙСТВИТЕЛЬНО хочу, чтобы это говорило «чистый» во время работы системы. Честное слово!
Здесь начинается информация о емкости хранилища данных:
Здесь вы можете видеть, что у меня всего 121 179 648 блоков ... с размером блока 4 КБ (4096), который умножается до некоторого большого числа (462 гигабайта ГБ). (Размер блока указан ниже)
И зарезервированные блоки ... посмотрев на число выше и число ниже ... вы сможете относительно быстро выяснить, у меня зарезервирован 1%. В этом случае (4,62 ГБ)
Сколько свободного места сейчас доступно? Прямо здесь!
И все важные размеры блока. Полезно для умножения.
Эти строки говорят, КТО блоки зарезервированы для ... пользователя 0, root, в данном случае
Здесь доступно гораздо больше информации, но это должно дать вам возможность быстро определить, сколько доступно и сколько еще зарезервировано для root. Простая математика.
Надеюсь это поможет. Помните ... справочные страницы - ваши друзья.
источник
Это отображает свободное место в байтах в разделе, связанном с "/ путь"
Вам не нужно быть суперпользователем, чтобы запустить его.
Кстати, я не совсем понимаю, в чем разница
% s размер блока (для более быстрой передачи)
% S основной размер блока (для количества блоков)
в использовании
stat
.источник
bc
чтобы получить количество байтов, или даже использовать,--format='%f*%S/1024/1024/1024' | bc
чтобы получить килобайты / мегабайты / гигабайты в зависимости от того, сколько разделов вы выберете.$(( ... ))
выполняет вычисление, но оно приводит только к целочисленной части фактора (если вы добавите деление). Или вы имеете в виду, что ваша оболочка не поддерживает арифметическое расширение?bc
вместо этого, вы можете получить коэффициент с произвольной точностью, если вам это нужно.