It is warning message, not error message.
Originally you have 332*255*63*512 = 2730792960 bytes long raw disk image.
When GRUB4DOS reads this image, it known this file is 2730792960/512 = 5333580 sectors long.
It detects disk geometry H=255 S=63. Then it calculates number of cylinders from 5333580 / (255*63) = 332.
332*255*63 = 5333580. There is no problem.
When you add VHD footer. The file is 512 bytes longer. Its size is now 2730792960 + 512 = 2730793472 bytes.
If you mount this VHD image in Windows 7, its capacity is 2730792960 bytes.
When GRUB4DOS reads this image, it calculate number of sectors from file size (including the VHD footer) 2730793472/512 = 5333581.
It detects disk geometry H=255 S=63. Then it calculates number of cylinders from 5333581 / (255*63) = 332 and 1 remainder. It rounds up
the number to 333.
It then thinks the geometry size is 333*255*63 = 5349645 which is longer that the actual size 5333581.
So it warns that sectors between 5333581-5349645 is not accessible.
Sectors between 5333581-5349645 is beyond the end of original image. We don't use them.
The sector 5333580 is VHD footer. It is mapped into GRUB4DOS's virtual disk. If you modify this sectors in image file, VHD footer will become invalid. But it is unlikely that it will be modified since it is outside of all partitions. And even if it is modified in RAM drive, image file will remain unchanged.
Another idea, would Disk2vhd work?
It seems to be able to take snapshot of the disk you are running Windows from.
Its output seems to be dynamic size VHD. You just have to convert it to fixed size VHD (how?) before loading it with GRUB4DOS.
However, the size of virtual disk will be as large as the source disk. It is probably unsuitable for RAM booting.