Add disk preallocation support

preallocation=metadata is now the default as it offers the best size/performance.
pull/61/head
Martin Wimpress 3 years ago
parent ad7f4a2aef
commit a611aa6005
No known key found for this signature in database
GPG Key ID: 61DF940515E06DA3
  1. 14
      README.md
  2. 12
      quickemu

@ -271,6 +271,20 @@ Add additional lines to your virtual machine configuration:
* `cpu_cores="4"` - Specify the number of CPU cores allocated to the VM * `cpu_cores="4"` - Specify the number of CPU cores allocated to the VM
* `ram="4G"` - Specify the amount of RAM to allocate to the VM * `ram="4G"` - Specify the amount of RAM to allocate to the VM
* `disk="16G"` - Specify the size of the virtual disk allocated to the VM * `disk="16G"` - Specify the size of the virtual disk allocated to the VM
## Disk preallocation
Preallocation mode (allowed values: `off`, `metadata` (default), `falloc`, `full`).
An image with preallocated metadata is initially larger but can improve performance
when the image needs to grow. `falloc` and `full` preallocations are like the
same options of raw format, but sets up metadata also.
Specify what disk preallocation should be used, if any, when creating the system
disk image by adding a line like this to your VM configuration.
* `preallocation="metadata"`
## Floppy disks ## Floppy disks
If you're like [Alan Pope](https://popey.com) you'll probably want to mount a If you're like [Alan Pope](https://popey.com) you'll probably want to mount a

@ -235,10 +235,19 @@ function vm_boot() {
if [ ! -f "${disk_img}" ]; then if [ ! -f "${disk_img}" ]; then
# If there is no disk image, create a new image. # If there is no disk image, create a new image.
mkdir -p "${VMDIR}" 2>/dev/null mkdir -p "${VMDIR}" 2>/dev/null
if ! ${QEMU_IMG} create -q -f qcow2 "${disk_img}" "${disk}"; then case ${preallocation} in
off|metadata|falloc|full) true;;
*)
echo "ERROR! ${preallocation} is an unsupported disk preallocation option."
exit 1;;
esac
# https://blog.programster.org/qcow2-performance
if ! ${QEMU_IMG} create -q -f qcow2 -o lazy_refcounts=on,preallocation="${preallocation}" "${disk_img}" "${disk}"; then
echo "ERROR! Failed to create ${disk_img}" echo "ERROR! Failed to create ${disk_img}"
exit 1 exit 1
fi fi
if [ -z "${iso}" ] && [ -z "${img}" ]; then if [ -z "${iso}" ] && [ -z "${img}" ]; then
echo "ERROR! You haven't specified a .iso or .img image to boot from." echo "ERROR! You haven't specified a .iso or .img image to boot from."
exit 1 exit 1
@ -618,6 +627,7 @@ guest_os="linux"
img="" img=""
iso="" iso=""
port_forwards=() port_forwards=()
preallocation="metadata"
ram="" ram=""
usb_devices=() usb_devices=()
virtio_blk="on" virtio_blk="on"

Loading…
Cancel
Save