Да, если ваша файловая система поддерживает разреженные файлы. (ext4 поддерживает разреженные файлы.)
Вот как вы создаете
64GiB
необработанное изображение,disk.img
которое изначально почти не занимает места:truncate -s 64G disk.img
Теперь вы можете использовать
disk.img
как блочное петлевое устройство, и оно будет расширяться при записи в него.
Бонус Особенности
Если вы хотите преобразовать образ диска disk.img
в другой формат, например, на физический диск /dev/sdb
, используйте qemu-img
:
qemu-img convert -O raw disk.img /dev/sdb
Это полезно, если вы хотите конвертировать VDI, VMDK, VHD или другие форматы контейнеров в RAW, чтобы вы могли манипулировать выходным изображением с помощью встроенных инструментов, таких как losetup
/ kpartx
.
Не имеет значения, в каком формате находится исходное изображение. qemu-img
может работать с более чем VDI, VMDK, VHD и необработанными изображениями. Чтобы увидеть список поддерживаемых изображений, выполните эту команду:
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