You would need to install an old version.
I know, but I could do that inside a VM or on another PC and so just gain the vboxmanage.exe and nothing more. So I'd like to know what happens when I have this pure file from the old version and the rest on the system is from the new version without the compacting support.
You have to remember that fragmentation can occur at three levels: on the host FS, within the VDI mapping, and within the guest FS.
Or even at for levels, cause I encrypt them with TrueCrypt. So I have the container file that is also fragmented on my harddisk and can't be defragmented.
Now leave TrueCrypt out. Can you really say that VDI fragmentation is only a minor concern? So suggest you have inside the guest a file system with 4 KB clusters. The VDI file is lying unfragmented on the host FS. Now you have a file with 1 MB in the guest FS, that means 256 clusters. These 256 clusters are spread all over the guest filesystems. That means you have to read 256 blocks in the VDI, that means 256 MB.
Suppose the VDI file is internally unfragmented, now you read 256 MB from the host, you position the drive head once and then you read the next 256 MB, lasting 3-4 seconds on modern harddisks.
Now the VDI file is fragmented, that means you have to perform a lot of seeks on the harddisk. Even the file is unfragmented on the host, its internal fragmentation causes a lot of seeks and so wait time.
Now suppose you have the guest file system defragmented and you want to read a 512 MB file. The VDI file still lies unfragmented on the host FS.
With VDI internally unfragmented you read that data in 6-8 seconds.
But now the VDI is fragmented internally, then you have to seek before each read. In worst case you have to seek 512 times, with 10 ms seek time you have to wait additional 5 seconds.
So I see still a problem in the internal fragmentation.
I've got a defrag written in Perl, which I am going to port to python and publish on the forum.
I know you've written that program, but python is still a interpreted programming language and therefore not very efficient and you need to install a python interpreter, so I prefer C(++).