Storage Configuration

vftool uses Virtualization.framework's virtio block device emulation to provide guests with high-performance storage. You can attach multiple disk images, which will appear in the guest OS as block devices (e.g., /dev/vda, /dev/vdb).

Disk Image Format

All disk images provided to vftool must be in the raw format. The framework does not support advanced formats like qcow2 or vmdk.

You can create a new raw disk image using dd:

# Creates a 10GB empty raw disk image
dd if=/dev/zero of=my-disk.img bs=1g count=10

Attaching Disks

You can attach disk images using the -d (read-write) and -c (read-only) flags.

  • -d <path>: Attaches a disk image in read-write mode. This is used for your primary operating system disk or for data disks that need to be modified.
  • -c <path>: Attaches a disk image in read-only mode, which is useful for ISOs or other shared base images.

Multiple Disks and Device Order

You can attach up to 8 storage devices in total by specifying the -d and -c flags multiple times. The order of the flags on the command line determines the device name inside the guest.

For example, consider the following command:

vftool -k ... -d rootfs.img -d data.img -c tools.iso

This will create three storage devices inside the VM:

  • /dev/vda: Attached to rootfs.img (read-write)
  • /dev/vdb: Attached to data.img (read-write)
  • /dev/vdc: Attached to tools.iso (read-only)

This predictable ordering is crucial for configuring your guest's /etc/fstab and kernel root= parameter.