Как определить новый размер для resize2fs?

22

Я хочу сжать файловую систему ext4, чтобы освободить место для нового раздела, и наткнулся на resize2fsпрограмму. Команда выглядит так:

resize2fs -p /dev/mapper/ExistingExt4 $size

Как мне определить, $sizeхочу ли я вычесть ровно 15 ГиБ из текущей файловой системы ext4? Могу ли я использовать вывод dfкак-то?

Lekensteyn
источник

Ответы:

39

Не следует использовать, dfпотому что он показывает размер в соответствии с сообщением файловой системы (в данном случае ext4).

Используйте dumpe2fs -h /dev/mapper/ExistingExt4команду, чтобы узнать реальный размер раздела. В -hопции делает dumpe2fsпоказывать супер данные блока без много других ненужных деталей. С выхода, вам нужно количество блоков и размер блока .

...  
Количество блоков:               19506168  
Количество зарезервированных блоков: 975308  
Свободных блоков: 13750966  
Бесплатные иноды: 4263842  
Первый блок: 0  
Размер блока:                4096  
...

Умножение этих значений даст размер раздела в байтах . Вышеуказанные числа оказываются идеальным кратным 1024:

$ python -c 'print 19506168.0 * 4096 / 1024'
78024672.0

Поскольку вы хотите уменьшить раздел на 15 ГиБ (что в 15 МБ раз на 1 КБ):

$ python -c 'print 19506168.0 * 4096 / 1024  -  15 * 1024 * 1024'
62296032.0

Так как resize2fsпринимает несколько видов суффиксов, один из которых Kдля "1024 байта", команда для сокращения раздела до 62296032 КиБ становится:

resize2fs -p /dev/mapper/ExistingExt4 62296032K

Без единицы число будет интерпретироваться как кратное размеру блока файловой системы (в данном случае 4096). Смотрите man resize2fs (8)

Lekensteyn
источник
3
man resize2fs: при желании к параметру размера может быть добавлен один из следующих обозначений единиц измерения: 's', 'K', 'M' или 'G' для секторов по 512 байт, килобайт, мегабайт или гигабайт соответственно , Может быть проще, чем делать блочные вычисления.
Икра
1
Вы не пропуская ни kв resize2fs -p /dev/mapper/ExistingExt4 62296032?
Сопалахо де Аррирес
@SopalajodeArrierez Вы правы, столица Kпропала. Без этого письма resize2fs должен жаловаться в моем случае, так как размер больше, чем реальный диск.
Лекенштейн
2
dumpe2fsне сообщает размер раздела; он действительно сообщает о размере файловой системы. (Что хорошо, потому что это, вероятно, то, что вы хотите.)
Mehrdad