Существует ли инструмент Linux CLI для определения «используемого» пространства раздела? (например, gparted)

Существует ли инструмент Linux CLI для определения «используемого» пространства раздела? (например, gparted)

Я уменьшаю раздел Linux SDCard, используя замечательное руководство AOakley. Я пытаюсь автоматизировать это, но, похоже, нет инструмента командной строки для определения количества используемых байтов в разделе.

Например, gparted сообщает мне, что занято 1,88 ГБ из 6,99 ГБ (обратите внимание, я использую /dev/loop0, который смонтирован во втором разделе /dev/sdb):

dfнеправильно:

% df /dev/loop0
Filesystem  ... Use%
udev        ... 0%

...и fdiskне partedраспечатывать использованное пространство.

Что я могу использовать из командной строки, чтобы определить используемое пространство в разделе gparted?

ОТВЕТ: Резюме ниже: Раздел, ext4который позволяет мне использовать dumpe2fsи извлекать: free blocks, block count(всего), и block sizeкоторый можно объединить, чтобы точно соответствовать gparted. Оказывается, он resize2fsобрабатывает фрагментацию во время сжатия. Смотрите страницу руководства для ext4получения дополнительной информации (хотя редактор страницы руководства немного озлоблен по поводу GiB против GB! :)

решение1

dfпочти правильный инструмент, но вы должны запросить точку монтирования (или любой файл ниже), которая принадлежит файловой системе, которую вы хотите проверить, а не узел устройства. Узел, который вы использовали, /dev/loop0, является специальным файлом, который принадлежит udevвиртуальной файловой системе; следовательно, вы получили udev.

Смонтируйте /dev/loop0(или /dev/sdb2, я не уверен, зачем это нужно /dev/loop0) где-нибудь (это может быть romount) и вызовите df /the/mountpoint. Затем dfвам расскажут, что файловая система сообщает о себе.

Я сказал " dfэтопочти«правильный инструмент», поскольку нет гарантии, что вы сможете сжать файловую систему (а затем и раздел) до размера, сообщаемого инструментом. То, что dfвыведет результат, может быть вашей первой (или, скорее, нулевой) оценкой.

Вам нужны разные инструменты для изменения размера различных полевых систем. В идеальном мире такой инструмент (или какой-то сопутствующий инструмент) способен сообщить вам минимальный возможный размер или, по крайней мере, минимальный размер, для которого изменение размера будет наверняка успешным. В реальности вы можете столкнуться с этим:

Известные ошибки
Минимальный размер файловой системы, оцененный с помощью, resize2fsможет быть неверным, особенно для файловых систем с размером блока 1 КБ и 2 КБ.

(источник)

gpartedиспользует специфические для файловой системы инструменты. Я запустил его с straceи не увидел никаких доказательств того, что он использует df. Я увидел btrfs filesystem show …, dumpe2fs …, …

Краткое содержание:

  • Вы использовали dfего неправильно.
  • В любом случае лучше использовать инструмент, специфичный для файловой системы; gpartedделает. Я не могу сказать вам, какой инструмент вам следует использовать, поскольку вы не указали рассматриваемую файловую систему.

Связанный контент