Para fazer isso corretamente, você precisa:
- Primeiro, expanda o arquivo
.img
. - Em seguida, expanda o sistema de arquivos dentro.
A melhor maneira de fazer a primeira coisa é com dd
. Por alguma razão, algumas pessoas atribuem um tipo de mistério à maneira como o dd
funciona, mas realmente não existe nenhum. Por exemplo, para acrescentar um buraco ao final do seu arquivo .img
:
dd bs=1kx1k seek=100 of=.img </dev/null
Em qualquer sistema POSIX que irá truncar o arquivo para 100MiBs. Em um sistema GNU, o 1kx1k
bit pode ser reduzido para apenas M
. dd
procura 100MiBs no arquivo, encontra EOF em sua primeira leitura e fecha o arquivo. É uma única ação, e não requer leituras (além da primeira vazia) ou escreve - é muito quase atômica.
Se o arquivo era de 50 MiBs antes, agora será alocado 50 MiBs mais. Se o arquivo foi 150MiBs antes, isso vai cortar os últimos 50 MiBs da cauda. Em um sistema de arquivos que entende arquivos esparsos , o arquivo anexado hole não usará espaço em disco, e usará apenas o que for necessário para preenchê-lo.
Outras maneiras de fazer o mesmo em alguns sistemas:
fallocate -l100M .img
truncate -s100M .img
... ambos os comandos farão a mesma coisa dd
. Eu recomendo dd
porque nenhuma dessas ferramentas é portável, onde o comportamento de dd
é POSIX-spec ' d , e assim que você aprender a usar o disco-destruidor corretamente, nenhum disco nunca mais ousará para ficar no seu caminho.
Se você está apenas adicionando ao seu .img
, você pode fazer a coisa acima, montada ou não (embora se você tirasse um pouco de %).img
pode não funcionar como esperado) , mas você provavelmente precisará umount
.img
primeiro para redimensionar seu sistema de arquivos constituinte, e assim pode também. Você não precisa -d
estroy the loop device, no entanto.
Como você lida com a segunda coisa depende se .img
está particionado ou não. Se não for, como eu acho que é o caso baseado em seus comentários em outro lugar, então você só precisa abordar o fs por seu tipo. Para um arquivo ext[234]
.img
, você deve usar resize2fs
e acabar com isso. Para outros, você desejará ver as ferramentas de espaço do usuário relevantes e suas man
páginas.
Se .img
for particionado, pode ser mais complicado. Em tais casos, o modo como você lida com a situação dependerá do tipo de tabela de partição usada (seja GPT vs MBR vs híbrido-MBR) , seja a última partição na tabela de partições do arquivo e muito mais. Hesito em arriscar quaisquer detalhes aqui sem mais informações: se você precisar de conselhos sobre como lidar com um .img
particionado, por favor me avise com mais detalhes e eu ofereço o que puder.