2

Я могу создать обычный файл в существующей файловой системе (скажем, ext4), превратить его в блочное устройство (с помощью losetup) и отформатировать в собственной файловой системе ext4.

Но вышеупомянутый жесткий диск имеет фиксированный размер.

Вопрос:

  1. VirtualBox позволяет создавать жесткие диски VDI, VMDK и VHD, которые могут иметь фиксированный или динамический размер. Есть ли способ создать файловый жесткий диск динамического размера для использования операционной системой Linux?

  2. Можно ли использовать какой-либо из этих трех типов жестких дисков на основе файлов с динамическим размером вне VirtualBox в операционной системе Linux?

Я на Ubuntu 16.04.

1 ответ1

5
  1. Да, если ваша файловая система поддерживает разреженные файлы. (ext4 поддерживает разреженные файлы.)

    Вот как вы создаете 64GiB raw image disk.img который изначально почти не занимает места:

    truncate -s 64G disk.img
    
  2. Теперь вы можете использовать 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .