I am trying to work out a few details for a dual boot, public use (i.e. public library context) that runs Windows 7 and Linux.
I am using Windows 7 and Linux Mint. Windows 7 runs on a VHD file (filesystem image like squashfs in Linux). I need grub to copy different BCD and VHD files into place before it boots Windows.
The strategy is to copy a different BCD file into place to change the default boot from WinPE (used to boot Windows in a maintenance mode), to booting the VHD file that boots a snapshot (i.e. a baseline Windows configuration) and if I could do that within the grub2 bootloader it would be ideal.
I am using the free "Steadier State" (http://www.steadierstate.com/) as the basis for booting from VHD. It requires 2 boot cycles to insure that every system restart boots a consistent baseline.
Although out of the box SS does not provide a way for every reboot to start a baseline system, I added a system shutdown script that uses bcdedit to switch the default OS to boot. It switches it from booting the VHD file to booting WinPE, which evaluates conditions and if they're right removes then recreates the child "snapshot.vhd", then changes the default boot back to snapshot.vhd and then exits, causing the baseline Windows OS to be booted.
If grub2 could copy files, I could eliminate the need to boot WinPE just to recreate the snapshot.vhd and switch the default OS to boot.
BTW, grub2 always chainloads bootmgr if "Windows 7" is chosen. The /boot/BCD file tells bootmgr what to boot. There are only 2 boot entries in that BCD, one for "Windows 7" (i.e. it boots snapshot.vhd) or "Admins Only!" that boots WinPE. The timeout in the BCD is always set to zero so you never see the bootmgr menu.
The way maintenance is done is by inserting a USB stick which (when detected) changes the bootmgr to boot WinPE so updates to the baseline can be merged in.