Existe uma alternativa melhor que dd
para estender um arquivo. O comando dd
requer vários parâmetros para executar corretamente (para não corromper seus dados). Eu uso truncate
em vez disso. Apesar de seu nome, também pode estender o tamanho de um arquivo:
truncate - shrink or extend the size of a file to the specified size
-s, --size=SIZE
set or adjust the file size by SIZE
SIZE is an integer and optional unit (example: 10M is 10*1024*1024). Units > are K, M, G, T, P, E, Z, Y (powers of 1024) or KB, MB, ... (powers of 1000).
SIZE may also be prefixed by one of the following modifying characters: '+' extend by, '-' reduce by, '<' at most, '>' at least, '/' round down to multiple of, '%' round up to multiple of.
assim,
truncate -s +1G MyDrive.vhd
expande com segurança seu arquivo em 1 gigabyte. E, sim, ele faz uma expansão esparsa quando suportado pelo sistema de arquivos subjacente, portanto, os blocos reais seriam alocados sob demanda.
Quando um arquivo é expandido, não se esqueça de executar o resize2fs:
resize2fs MyDrive.vhd
Além disso, tudo pode ser feito online (sem umount
'o dispositivo) para sistemas de arquivos que suportam redimensionamento online:
losetup -c loopdev
atualiza informações do kernel em um arquivo de apoio,
e
resize2fs loopdev
redimensiona o sistema de arquivos montado on-line