32 lines
1.1 KiB
Plaintext
32 lines
1.1 KiB
Plaintext
|
#!/bin/bash
|
||
|
|
||
|
systemctl enable qfx5200-platform-init.service
|
||
|
systemctl start qfx5200-platform-init.service
|
||
|
|
||
|
# There are primary and secondary bios in qfx5200 platform.
|
||
|
# There is a problem with bios which prevents the OS booting from the
|
||
|
# secondary bios when the OS was installed using primary bios.
|
||
|
# Secondary bios fails to detect the UEFI partition. Right now
|
||
|
# the workaround is to have a folder structure /EFI/BOOT/BOOT64x.efi
|
||
|
|
||
|
SONIC_VERSION=$(sonic-cfggen -y /etc/sonic/sonic_version.yml -v build_version)
|
||
|
FIRST_BOOT_FILE="/host/image-${SONIC_VERSION}/platform/firsttime"
|
||
|
|
||
|
if [ -f $FIRST_BOOT_FILE ]; then
|
||
|
mkdir /tmp/sda1
|
||
|
mount /dev/sda1 /tmp/sda1
|
||
|
cd /tmp/sda1/EFI
|
||
|
mkdir BOOT > /dev/null 2>&1
|
||
|
cp SONiC-OS/grubx64.efi BOOT/BOOTX64.EFI
|
||
|
cd /tmp
|
||
|
umount sda1
|
||
|
# This code block ensures that no additional entries
|
||
|
# are added. This is applicable during SONiC image
|
||
|
# upgrades.
|
||
|
entries=`efibootmgr -v | grep "BOOTX64"`
|
||
|
if [ -z "$entries" ]; then
|
||
|
# Creating the UEFI entry for the first time.
|
||
|
efibootmgr -c -L "SONiC" -l "\EFI\BOOT\BOOTX64.EFI" > /var/tmp/efi_log 2>&1
|
||
|
fi
|
||
|
fi
|