FreeBSD Developer Summit: Fail-Safe Boot Code

Date: TBD

Overview

FreeBSD has provided a failsafe upgrade path for appliances with NanoBSD (UFS + GPT Flags) for many years. Recent efforts to build a similar system for ZFS based systems using Boot Environments are going well, and cover everything after /boot/loader. However, the approach NanoBSD used (GPT Flags) doesn't work for boot environments, because there is only a single ZFS partition. The new and old system image are inside that partition. This requires extending the 'boot once' style failover system to earlier parts of the bootcode.

The UEFI standard provides a standard way to do failover and boot once. The Boot Manager protocol has been implemented completely there and can be used to reliably implement failover protocols. However, some embedded platform don't support writing to the UEFI environment (thus making persistent changes to the boot impossible, though these are just supposed to be for a one and only one way to boot scenarios). Also, some BIOS makers have such ham-fisted UEFI implementations that they clobber some or all of the UEFI BootXXXX variables. Finally, no updating script for NanoBSD has been upstreamed.

Agenda

Attending

Please add yourself here. Your name needs to already appear on the general developer summit attendees list though.

Name

Username / Affiliation

Topics of Interest

Notes

AllanJude

allanjude

Organizer

WarnerLosh

imp

UEFI / Lua

need to attend remotely

KrisMoore

kmoore

UEFI / ZFS

EmmanuelVadot

manu

DaveCottlehuber

dch

UEFI & Lua for automation

Results

Notes: https://hackmd.io/AA4TrMDERUKn_1qw0TEyhA

DevSummit/201905/FailsafeBootcode (last edited 2020-04-07T12:44:07+0000 by MarkLinimon)