IIRC the feature to not change the original disk is know in VBox as "immutable images". One could change the type of a (virtual) disk to 'immutable', but that would be a permanent change (until one changes it back to 'normal'). AFAIK there is no equivalent to the '-snapshot' option of QEMU which is a run-time parameter. In principle something similar to
qemu-img create -f qcow2 -o backing_file=/dev/hda hda_disk.img should allow you to use the entire host disk, where all the changes are only ever written to 'hda_disk.img'. Obviously you'd then use something like
qemu -hda hda_disk.img to use the "disk". Albeit all this applies when using QEMU, which IMHO is pretty capable. Unfortunaltely the TC 3.x repository has no support for KQEMU, so on older hardware this might not be a viable option at all. KVM should be supported, so on newer hardware it would be a good alternative to VBox.
Now for VBox I've done a small proof of concept. It uses the fact that VMDK disks can be used to describe physical disks. Details can be found on this
page (also best to take note of the
syntax if one wants to tweak things a bit). Instead of creating one by hand I realised that VBox now has an internal command for this task. In the following I've used CLI commands as a efficient way to describe my steps. Alternatively one could use for the later steps the GUI to achieve the same.
# create the VMDK file and change the type to immutable
VBoxManage internalcommands createrawvmdk -filename hda_disk.vmdk -rawdisk /dev/hda
VBoxManage openmedium disk hda_disk.vmdk --type immutable
# create a dummy VM for this test
VBoxManage createvm --name test --register
# boot the VM with the TC CD-ROM in the host CD-ROM drive and the immutable hard disk
VBoxSDL --startvm test --memory 256 --cdrom /dev/hdc --boot d --hda hda_disk.vmdk
One thing to be aware of is that the immutable disk creates a differencing image. This is stored in the 'Snapshots' directory of the VM. At the next restart of the VM the file will be emptied again, but it requires diskspace. In a typical setup this file will be under '~/.VirtualBox' and therefore consume RAM. So one could run into a situation that VBox freezes the VM as it can't grow the differencing file any further.