Disco rígido alocado dinamicamente baseado em arquivo no Linux

2

Eu posso criar um arquivo regular em um sistema de arquivos existente (digamos, ext4), transformá-lo em um dispositivo de bloco (via losetup ) e formatá-lo com um sistema de arquivos ext4.

Mas o disco rígido acima é de tamanho fixo.

Pergunta:

  1. VirtualBox permite que você crie tipos de discos rígidos VDI, VMDK e VHD que podem ser de tamanho fixo ou dinâmico. Existe alguma maneira de criar um disco rígido baseado em arquivo e dimensionado dinamicamente para ser usado por um SO host Linux?

  2. É possível empregar qualquer um desses três tipos de discos rígidos dinamicamente baseados em arquivo, fora de VirtualBox , em um sistema operacional host Linux?

Estou no Ubuntu 16.04.

    
por Harry 04.07.2016 / 04:47

1 resposta

5
  1. Sim, se o seu sistema de arquivos suportar arquivos esparsos. (o ext4 suporta arquivos esparsos.)

    Veja como você cria uma 64GiB imagem bruta disk.img que inicialmente ocupa quase nenhum espaço:

    truncate -s 64G disk.img
    
  2. Agora você pode usar o disk.img como um dispositivo de bloco de loopback e ele será expandido conforme você escreve nele.

Recursos de bônus

Se você quiser converter uma imagem de disco disk.img em outro formato, como em um disco físico /dev/sdb , use qemu-img :

qemu-img convert -O raw disk.img /dev/sdb

Isso é útil se você quiser converter VDI, VMDK, VHD ou outros formatos de contêiner em RAW, para poder manipular a imagem de saída usando ferramentas internas como losetup / kpartx .

Não importa o formato da imagem de origem. qemu-img pode funcionar com mais de VDI, VMDK, VHD e imagens brutas. Para ver uma lista de imagens suportadas, execute este comando:

    root@node51 [~]# qemu-img --help | grep 'Supported formats:'
    Supported formats: bochs vvfat rbd vpc parallels tftp ftp ftps raw https qcow http dmg qcow2 quorum null-aio cloop vdi null-co vhdx blkverify file vmdk host_cdrom blkdebug host_device sheepdog iscsi qed nbd
    
por 04.07.2016 / 06:02