Na verdade, existem quatro comportamentos diferentes que resize2fs
pode ter (um deles é trivial). Depende se o sistema de arquivos é montado ou desmontado e se você está diminuindo ou se estendendo.
-
Montado, estendendo
Aqui,
resize2fs
tenta redimensionar on-line. Mais ou menos, isso apenas diz ao kernel para fazer o trabalho. O kernel então começa a escrever metadados adicionais do sistema de arquivos no armazenamento recém-disponível. Você pode continuar usando o sistema de arquivos quando isso acontecer.Note que sistemas de arquivos ext3 muito antigos podem não suportar redimensionamento online. Você terá que desmontar o sistema de arquivos antigo para estender.
-
Desmontado, estendendo
Desta vez,
resize2fs
faz o trabalho em vez do kernel. Principalmente, isso consiste em gravar metadados adicionais do sistema de arquivos no armazenamento recém-disponível. -
Montado, encolhendo
Isso não é suportado. Deve apenas imprimir um erro. Este é o comportamento trivial.
-
Desmontado, encolhendo
Este é o mais demorado, e também o mais perigoso (embora ainda seja razoavelmente seguro). Se possível (por exemplo, há espaço suficiente),
resize2fs
faz o sistema de arquivos usar apenas os primeiros bytes tamanho do armazenamento. Ele faz isso movendo os metadados do sistema de arquivos e seus dados. Após a conclusão, haverá armazenamento não utilizado no final do dispositivo de bloco (volume lógico), não utilizado pelo sistema de arquivos.
lvextend
e lvreduce
alteram o tamanho do volume lógico. Eles também podem alterar o tamanho do sistema de arquivos se receberem a opção -r
, que provavelmente é o caminho certo a seguir, especialmente com a redução. Acidentalmente, dar o tamanho errado para lvreduce
é uma maneira fácil de perder dados; -r
impede isso (garantindo que resize2fs
seja informado do mesmo tamanho).