Solutions Log by Dan Reiland

7Dec/090

Honor Guest IDE/SATA Flush Requests

Issue:
VirtualBox ignores IDE/SATA disk flush requests.

Cause:
This is by design. To improve performance VirtualBox ignores these requests. This can create an issue with filesystems that do not have fsck-like tools (ZFS is an example) create a situation where the on disk information is inconsistent due to data held in RAM.

Solution:
To enable flushing for IDE disks, issue the following command:

VBoxManage setextradata VMNAME
      "VBoxInternal/Devices/piix3ide/0/LUN#[x]/Config/IgnoreFlush" 0

The value [x] that selects the disk is 0 for the master device on the first channel, 1 for the slave device on the first channel, 2 for the master device on the second channel or 3 for the master device on the second channel.

To enable flushing for SATA disks, issue the following command:

VBoxManage setextradata VMNAME
      "VBoxInternal/Devices/ahci/0/LUN#[x]/Config/IgnoreFlush" 0

The value [x] that selects the disk can be a value between 0 and 29.

Reference: http://www.virtualbox.org/manual/UserManual.html#id2499944

13Aug/090

Shrink VirtualBox vdisks After Freeing Space (Windows guests)

Issue:
On dynamically allocated vdisks, freed space on a guest is never released back to the host once freed.

Cause:
This is by design.

Resolution:
The procedure for shrinking (compacting in VirtualBox parlance) is straightforward and consists of a series of steps.

  1. Delete files on the guest to achieve the desired amount of free space
  2. Zero free space out with an appropriate utility
  3. Shut down guest
  4. Compact disk

Zeroing guest free space is simple: Microsoft provides an excellent utility through its Sysinternals group called SDelete. Download the program, extract it from the archive, and execute it on the disk to be zeroed. Note: this procedure only zeroes free space.

sdelete -c

One the zeroing procedure is completed, you may power off the guest and compact the virtual disk from the command line.

VBoxManage modifyvdi /path/to/machine.vdi compact

Note: This was tested against VirtualBox 3.0.4 r50677

References:
SDelete

Tagged as: No Comments
13May/090

Change the UUID of a VirtualBox vdi disk file

You use the VBoxManage command with the clonehd argument.

VBoxManage clonehd
 
Tagged as: No Comments