Você pode usar o parâmetro seek
de dd
para criar um arquivo esparso :
dd if=/dev/zero of=filesystem.img bs=1k seek=1024M count=1
criaria um arquivo que pode ter até 1G de tamanho, mas ocupará apenas o espaço necessário.
Estou construindo um sistema que fornece aos usuários certa quantidade de espaço em disco. O jeito que estou fazendo é:
Eu não quero usar o sistema de cotas do Linux, pois não quero que os usuários sejam usuários do sistema local.
O acima funciona bem, mas desperdiça espaço, pois os usuários não estão usando todo o seu subsídio, mas todo o subsídio já foi alocado.
Existe um comando que pode fazer o mesmo que dd, mas não alocar todo o arquivo de uma só vez? Então, eu poderia fazer um arquivo de 20gb e, quando montado, ele relataria 20gb de espaço, mas só ocuparia fisicamente o que foi gravado nele?
Você pode usar o parâmetro seek
de dd
para criar um arquivo esparso :
dd if=/dev/zero of=filesystem.img bs=1k seek=1024M count=1
criaria um arquivo que pode ter até 1G de tamanho, mas ocupará apenas o espaço necessário.
Dê uma olhada no arquivo esparso s.
dd if=/dev/zero of=file.img bs=1 count=0 seek=1024M
cria um arquivo esparso de 1024Mb que pode ser formatado e montado como um sistema de arquivos. Há mais informações sobre arquivos esparsos e usá-los aqui .
No CentOS, você pode usar as ferramentas qemu conforme abaixo:
qemu-img create -f raw the_filename 5G
Tags dd linux thin-provisioning