[installer] Create a blank grubenv if doesn't exist. (#17414)

- Why I did it
To fix BIOS firmware update after fresh image installation from ONiE

- How I did it
Initialized empty GRUB environment file after ONiE installation

- How to verify it
Install image from ONiE
Run BIOS firmware upgrade

Signed-off-by: Nazarii Hnydyn <nazariig@nvidia.com>
This commit is contained in:
Nazarii Hnydyn 2023-12-14 08:41:12 +02:00 committed by GitHub
parent 53be9de743
commit 6d043a25bd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -264,14 +264,6 @@ demo_install_grub()
exit 1
}
# Create a blank environment block file.
if [ ! -f "$onie_initrd_tmp/$demo_mnt/grub/grubenv" ]; then
grub-editenv "$onie_initrd_tmp/$demo_mnt/grub/grubenv" create || {
echo "ERROR: grub-editenv failed on: $blk_dev"
exit 1
}
fi
if [ "$demo_type" = "DIAG" ] ; then
# Install GRUB in the partition also. This allows for
# chainloading the DIAG image from another OS.
@ -354,14 +346,6 @@ demo_install_uefi_grub()
}
rm -f $grub_install_log
# Create a blank environment block file.
if [ ! -f "$demo_mnt/grub/grubenv" ]; then
grub-editenv "$demo_mnt/grub/grubenv" create || {
echo "ERROR: grub-editenv failed on: $blk_dev"
exit 1
}
fi
# Configure EFI NVRAM Boot variables. --create also sets the
# new boot number as active.
grub=$(find /boot/efi/EFI/$demo_volume_label/ -name grub*.efi -exec basename {} \;)
@ -631,6 +615,14 @@ EOF
umount $demo_mnt
else
cp $grub_cfg $onie_initrd_tmp/$demo_mnt/grub/grub.cfg
# Create a blank environment block file.
if [ ! -f "$onie_initrd_tmp/$demo_mnt/grub/grubenv" ]; then
grub-editenv "$onie_initrd_tmp/$demo_mnt/grub/grubenv" create || {
echo "ERROR: grub-editenv failed on: $blk_dev"
exit 1
}
fi
fi
cd /