x86: fix grub-bios-setup fail during sysupgrade

grub-bios-setup requires two images (boot.img and core.img),
but they are missing. This make an error during sysupgrade:
Upgrading bootloader on /dev/sda...
grub-bios-setup: error: cannot open `/tmp/boot/boot/grub/boot.img': No
such file or directory.

Signed-off-by: 李国 <uxgood.org@gmail.com>
This commit is contained in:
李国 2020-04-07 09:11:46 +00:00 committed by Petr Štetiar
parent fabcfa9222
commit 32f675ca9f
2 changed files with 4 additions and 1 deletions

View File

@ -63,7 +63,7 @@ platform_do_bootloader_upgrade() {
-d "/tmp/boot/boot/grub" \ -d "/tmp/boot/boot/grub" \
-r "hd0,${parttable}1" \ -r "hd0,${parttable}1" \
"/dev/$diskdev" \ "/dev/$diskdev" \
&& touch /boot/grub/upgraded && touch /tmp/boot/grub/upgraded
umount /tmp/boot umount /tmp/boot
fi fi

View File

@ -49,6 +49,9 @@ BOOTOPTS:=$(call qstrip,$(CONFIG_GRUB_BOOTOPTS))
define Build/combined define Build/combined
$(CP) $(KDIR)/$(KERNEL_NAME) $@.boot/boot/vmlinuz $(CP) $(KDIR)/$(KERNEL_NAME) $@.boot/boot/vmlinuz
-$(CP) $(STAGING_DIR_ROOT)/boot/. $@.boot/boot/ -$(CP) $(STAGING_DIR_ROOT)/boot/. $@.boot/boot/
$(CP) $(STAGING_DIR_IMAGE)/grub2/boot.img $@.boot/boot/grub/
$(CP) $(STAGING_DIR_IMAGE)/grub2/$(if $(filter $(1),efi),gpt,$(GRUB2_VARIANT))-core.img \
$@.boot/boot/grub/core.img
$(if $(filter $(1),efi), $(if $(filter $(1),efi),
$(INSTALL_DIR) $@.boot/efi/boot $(INSTALL_DIR) $@.boot/efi/boot
$(CP) $(STAGING_DIR_IMAGE)/grub2/boot$(if $(CONFIG_x86_64),x64,ia32).efi $@.boot/efi/boot/ $(CP) $(STAGING_DIR_IMAGE)/grub2/boot$(if $(CONFIG_x86_64),x64,ia32).efi $@.boot/efi/boot/