Como eu determino o novo tamanho para resize2fs?

18

Eu quero reduzir um sistema de arquivos ext4 para criar espaço para uma nova partição e me deparei com o programa resize2fs . O comando é assim:

resize2fs -p /dev/mapper/ExistingExt4 $size

Como devo determinar $size se eu quiser subtrair exatamente 15 GiB do atual sistema de arquivos ext4? Posso usar a saída de df de alguma forma?

    
por Lekensteyn 18.06.2012 / 23:15

1 resposta

33

Você não deve usar df porque mostra o tamanho conforme informado pelo sistema de arquivos (neste caso, ext4).

Use o comando dumpe2fs -h /dev/mapper/ExistingExt4 para descobrir o tamanho real da partição. A opção -h torna dumpe2fs mostrar informações de super blocos sem muitos outros detalhes desnecessários. A partir da saída, você precisa da contagem de blocos e do tamanho de bloco .

...  
Block count:              19506168  
Reserved block count:     975308  
Free blocks:              13750966  
Free inodes:              4263842  
First block:              0  
Block size:               4096  
...

A multiplicação desses valores fornecerá o tamanho da partição em bytes . Os números acima são um múltiplo perfeito de 1024:

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

Desde que você quer encolher a partição por 15 GiB (que é 15 MiB vezes 1 KiB):

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

Como resize2fs aceita vários tipos de sufixos, sendo um deles K para "1024 bytes", o comando para encolher a partição para 62296032 torna-se KiB:

resize2fs -p /dev/mapper/ExistingExt4 62296032K

Sem unidade, o número será interpretado como um múltiplo do tamanho do bloco do sistema de arquivos (4096 neste caso). Veja man resize2fs (8)

    
por 18.06.2012 / 23:15