blob: bfcbc6ed53fba41fd348abdfcf02468908c3cdcd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#!/bin/sh
# Pass BIOS Name and location to get it from.
BIOS=${BIOS_NAME:-ROD0083B}
if [ -n "$LOCATION_URL" ]; then
wget -O $BIOS $LOCATION/$BIOS
fi
reboot_to_efi_shell() {
bootorder=$(efibootmgr | grep 'BootOrder' | awk '{ print $2 }')
# This job will end up aborting.. Next time the system is power cycled
# we will boot from the wrong device. restore the correct boot order and
# reboot again.
echo "efibootmgr -o $bootorder" >> /etc/rc.local
echo "reboot" >> /etc/rc.local
efishell=$(efibootmgr | grep 'Built-in EFI Shell' | cut -c5-8 | head -n 1)
# set next boot to efi shell
efibootmgr -n $efishell
shutdown -r now
}
if [ -n "$RSTRNT_REBOOTCOUNT" ]; then
if [ $RSTRNT_REBOOTCOUNT -eq 0 ]; then
echo "Setup Firmware install"
# copies firmware and startup.nsh to /boot/efi
./upBIOS $BIOS
reboot_to_efi_shell
else
# This will never actually happen..
rstrnt-report-result $RSTRNT_TASKNAME PASS
fi
fi
|