A resposta correta é montar / dev no chroot e usar um arquivo $ CHROOT / boot / grub / device.map para dizer ao grub que (hd0) (da perspectiva da imagem) é realmente o arquivo de loopback que você ve "particionado" (e depois montado em seu chroot com kpartx et c).
# generate grub configs and install it to the generated blockdev
chroot $MR update-grub 2> /dev/null
chroot $MR grub-mkconfig -o /boot/grub/grub.cfg 2> /dev/null
cat > $MR/boot/grub/device.map <<EOF
(hd0) ${LOOPDEV}
EOF
chroot $MR grub-install ${LOOPDEV} 2> /dev/null
Depois que você terminar de instalar o grub no "mbr" do loopdev, você deve rm o arquivo device.map porque ele não será exato a partir da perspectiva da imagem uma vez que ele seja inicializado.
Eu tenho um script que constrói imagens qcow2 completas para o ubuntu 13.10 x64 picante aqui:
Boa sorte.