Como determino o novo tamanho para o resize2fs?

22

Eu quero encolher um sistema de arquivos ext4 para abrir espaço para uma nova partição e me deparei com o resize2fsprograma. O comando fica assim:

resize2fs -p /dev/mapper/ExistingExt4 $size

Como devo determinar $sizese quero subtrair exatamente 15 GiB do atual sistema de arquivos ext4? Posso usar a saída de dfalguma forma?

Lekensteyn
fonte

Respostas:

39

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

Use o dumpe2fs -h /dev/mapper/ExistingExt4comando para descobrir o tamanho real da partição. A -hopção torna dumpe2fsshow super info do bloco sem muitos outros detalhes desnecessários. Na saída, você precisa da contagem e tamanho do bloco .

...  
Contagem de blocos:               19506168  
Contagem de blocos reservados: 975308  
Blocos gratuitos: 13750966  
Inodes livres: 4263842  
Primeiro bloco: 0  
Tamanho do bloco:                4096  
...

Multiplicar esses 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

Como você deseja reduzir a partição em 15 GiB (que é de 15 MiB vezes 1 KiB):

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

Como resize2fsaceita vários tipos de sufixos, um deles Kpara "1024 bytes", o comando para reduzir a partição para 62296032 KiB se torna:

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)

Lekensteyn
fonte
3
man resize2fs: Opcionalmente, o parâmetro size pode ser sufixado por um dos seguintes designadores de unidades: 's', 'K', 'M' ou 'G', para setores de 512 bytes, kilobytes, megabytes ou gigabytes, respectivamente . Pode ser mais simples do que fazer cálculos de blocos.
lkraav
1
Você não está faltando um kem resize2fs -p /dev/mapper/ExistingExt4 62296032?
Sopalajo de Arrierez
@SopalajodeArrierez Você está certo, Kfaltava uma capital . Sem essa carta, o resize2fs deve reclamar no meu caso, pois o tamanho é maior que o disco real.
21715 Lekensteyn
2
dumpe2fsnão relata o tamanho da partição; realmente informa o tamanho do sistema de arquivos. (O que é bom, porque é provavelmente o que você quer.)
Mehrdad