afaik vlosetup also supports snapshotted virtual disks, ie. you pass the snapshot and parent filenames together on the command line and get the whole thing. I haven't used that myself though. I don't think it can read .vbox files to automatically find parents if you only specify the child.
I just wanted a way to mount virtual and raw disk images in Linux, such that they worked like physical disks in all respects, including with the GUI disk management tools like Gnome Disk Utility and GParted (couldn't get vdfuse-mounted ones to do that).
What I liked about it was that the GUI tools work, it handles loop/partition mounting automatically, it can also create/resize virtual disks, it supports raw images (partition and full disk) as well as VDI/VHD/VMDK, and doesn't require VirtualBox to be installed for any of that.
So I can now standardise on VHD files as my imaging format of choice, and have the tools to manipulate them (including differenced images) on both Linux and Windows 7/Server hosts, as well as being able to boot into them on both physical (with VBoot and/or Windows 7) and virtual (with VirtualBox) machines. That is a first!
On the downside, the versions of kernels currently supported are limited. However the next version will apparently work in FUSE mode too. That is, if you have a supported kernel it works inside of it, otherwise it works in FUSE mode.
It seems to be mix of code from losetup, kpartx, vboxmanage, and virtualbox itself, all wrapped up into one. IIRC they're also planning to add more disk image related functionality from vboxmanage (eg. convertfromraw), and support encrypted images (within Truecrypt containers).
Here is the help:
Code: Select all
> vlosetup -h
Usage:
vlosetup loop_device give info
vlosetup -a | --all list all used
vlosetup -d | --detach <loopdev> [<loopdev> ...] delete
vlosetup -f | --find find unused
vlosetup -c | --set-capacity <loopdev> resize
vlosetup -j | --associated <file> [-o <num>] list all asso'ed with <file>
vlosetup --createhd <filename>.vhd|.vdi|.vmdk --sizemeg <num of megabytes>
create a new virtual diskfile of given megabytes, without setup to loopdev
vlosetup --creatediff <diff_filename> <parent_filename> [<parent1_filename> <parent2_filename> ...]
create a differencing disk file to a base image or another differencing disk.
vlosetup [ options ] {-f|--find|loopdev} <file> setup a loopdev with file
Options:
-h | --help this help
-o | --offset <num> start at offset <num> into file
--sizelimit <num> loop limited to only <num> bytes of the file
-p | --pass-fd <num> read passphrase from file descriptor <num>
-r | --read-only setup read-only loop device
--show print device name (with -f <file>)
-i | --immutable mount disk as immutable, changes are discarded
-v | --verbose verbose mode