upgrade_bootloader() {
	local diskdev

	. /lib/upgrade/common.sh

	if [ ! -f /boot/grub/upgraded ] && export_bootdevice && export_partdevice diskdev 0; then
		part_magic_efi "/dev/$diskdev" && return 0
		echo "(hd0) /dev/$diskdev" > /tmp/device.map
		/usr/sbin/grub-bios-setup \
			-m "/tmp/device.map" \
			-d "/boot/grub" \
			-r "hd0,msdos1" \
			"/dev/$diskdev" \
		&& touch /boot/grub/upgraded
	fi
}

[ "$INITRAMFS" = "1" ] || boot_hook_add preinit_main upgrade_bootloader