Не знаю, можно ли это сделать, как вы говорите, "используя только системные файлы", но можно используйте resize2fs
, чтобы получить оценку без монтажа. Со страницы руководства:
-M Shrink the file system to minimize its size as much as possible,
given the files stored in the file system.
-P Print an estimate of the number of file system blocks in the
file system if it is shrunk using resize2fs's -M option and then
exit.
Таким образом, resize2fs -P /dev/PARTITION
даст вам оценку того, сколько блоков занимает файловая система на этом разделе. Общее количество блоков на разделе можно найти, как вы сказали, из /proc/partitions
или с помощью blockdev --getsz /dev/PARTITION
, затем выполните небольшие арифметические действия. Я не знаю, насколько близок предполагаемый минимальный размер к фактическому использованию диска, но я предполагаю, что минимальный размер больше, чем фактическое использование диска, чтобы дать некоторую свободу действий. Мы можем проверить это, смонтировав его и запустив du
.