Com algumas exceções, é possível para o Vista e o Windows ... o arquivo virtual não deve ser uma imagem dd, mas deve ser um .VHD / .VHDX.
Esse arquivo deve ter tamanho fixo (se dinâmico ele será expandido para o máximo na primeira inicialização) e não fragmentado, armazenado em uma partição NTFS sem compactação e sem criptografia (sem BitLocker, etc.).
O Windows (do Vista) tem uma forma nativa de inicializar o sistema Windows a partir do arquivo .VHD / .VHDX (se a pesquisa em M $ for exibida apenas para PRO / Enterprise, mas algumas ferramentas de terceiros também permitem versões domésticas).
Além disso, há um howto para o WinXP.
Eu ainda não tinha tentado, mas existe muita informação ... bot de pesquisa Inicializando o Windows a partir de um arquivo .vhd.
Atenção, você precisará de uma partição NTFS para um BCD no qual você configura essa inicialização a partir do VHD.
Desculpe, não posso ser de mais ajuda.
Então o Grub2 pode fazer o chainload da inicialização do bcd ... mas lembre-se de que o arquivo vhd / vhdx deve estar em uma partição NTFS simples (sem compactação / não criptografada).
O FAT32 não pode ter arquivos de tamanho > = 4GiB. Ext # (e outros sistemas de arquivos linux, etc) não podem ser usados para armazenar o arquivo (o Windows deve conhecer o sistema de arquivos de partição na inicialização, portanto, apenas FAT / FAT12 / FAT16 / FAT32 / exFAT / NTFS).
Por que um exFAT não pode ser usado? Não faço ideia, talvez possa ser usado para manter ... por eu sempre vejo NTFS como um must!