Since when update-grub is run by grub-installer in a chrooted installation, /host is not accessible and hence the above block will always evaluate to false. The fact that finde_device > readlink fails and defaults to /dev/hda1 is irrelevant since root_device is overidden by the included patch.
It is necessary to remove the check:
if [ -f "$loop_file" ]; then
Since when update-grub is run by grub-installer in a chrooted installation, /host is not accessible and hence the above block will always evaluate to false. The fact that finde_device > readlink fails and defaults to /dev/hda1 is irrelevant since root_device is overidden by the included patch.