¿Cómo determino el nuevo tamaño para resize2fs?

22

Quiero reducir un sistema de archivos ext4 para hacer espacio para una nueva partición y encontré el resize2fsprograma. El comando se ve así:

resize2fs -p /dev/mapper/ExistingExt4 $size

¿Cómo debo determinar $sizesi quiero restar exactamente 15 GiB del sistema de archivos ext4 actual? ¿Puedo usar la salida de dfalguna manera?

Lekensteyn
fuente

Respuestas:

39

No debe usarlo dfporque muestra el tamaño según lo informado por el sistema de archivos (en este caso, ext4).

Use el dumpe2fs -h /dev/mapper/ExistingExt4comando para averiguar el tamaño real de la partición. La -hopción hace que dumpe2fsmostrar información de superbloque sin muchos otros detalles innecesarios. Desde la salida, necesita el recuento de bloques y el tamaño del bloque .

...  
Conteo de bloques:               19506168  
Recuento de bloques reservados: 975308  
Bloques libres: 13750966  
Inodos libres: 4263842  
Primer bloque: 0  
Tamaño de bloque:                4096  
...

Multiplicar estos valores dará el tamaño de la partición en bytes . Los números anteriores son un múltiplo perfecto de 1024:

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

Como desea reducir la partición en 15 GiB (que es 15 MiB por 1 KiB):

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

Como resize2fsacepta varios tipos de sufijos, uno de ellos Kpara "1024 bytes", el comando para reducir la partición a 62296032 KiB se convierte en:

resize2fs -p /dev/mapper/ExistingExt4 62296032K

Sin unidad, el número se interpretará como un múltiplo del tamaño de bloque del sistema de archivos (4096 en este caso). Ver hombre resize2fs (8)

Lekensteyn
fuente
3
man resize2fs: Opcionalmente, el parámetro de tamaño puede tener el sufijo de uno de los siguientes designadores de unidades: 's', 'K', 'M' o 'G', para sectores de 512 bytes, kilobytes, megabytes o gigabytes, respectivamente . Puede ser más simple que hacer cálculos en bloque.
lkraav
1
¿No te estás perdiendo un kat resize2fs -p /dev/mapper/ExistingExt4 62296032?
Sopalajo de Arrierez
@SopalajodeArrierez Tienes razón, Kfaltaba una capital . Sin esta carta, resize2fs debería quejarse en mi caso, ya que el tamaño es mayor que el disco real.
Lekensteyn
2
dumpe2fsno informa el tamaño de la partición; realmente informa el tamaño del sistema de archivos. (Lo cual es bueno, porque probablemente es lo que quieres.)
Mehrdad el