m/n/c/update: work with invalid boot entries

Currently if any boot entry is unreadable or unparseable, we refuse to
perform any updates. This is not desirable as any edge cases in our
parser or the EFI firmware cause the update mechanism to be
non-functional, even preventing us from shipping an update to fix the
issue. It makes more sense to just log occurrences where such an entry
could not be read/parsed.

Change-Id: I8a1161bf35a4c8deb1d82156662b512bcc43ed59
Reviewed-on: https://review.monogon.dev/c/monogon/+/2038
Reviewed-by: Serge Bazanski <serge@monogon.tech>
Tested-by: Jenkins CI
diff --git a/metropolis/node/core/update/update.go b/metropolis/node/core/update/update.go
index a357fa5..75fe752 100644
--- a/metropolis/node/core/update/update.go
+++ b/metropolis/node/core/update/update.go
@@ -135,7 +135,8 @@
 		}
 		e, err := efivarfs.GetBootEntry(int(idx))
 		if err != nil {
-			return nil, fmt.Errorf("failed to get boot entry %d: %w", idx, err)
+			s.Logger.Warningf("Unable to get boot entry %d, skipping: %v", idx, err)
+			continue
 		}
 		res[int(idx)] = e
 	}