m/n/c/mgmt: unmount ESP before restarting
This provides additional reliability for the FAT32 ESP partition.
Nothing should keep persistent handles for files on the ESP. Ignore
errors in case anything does.
Change-Id: I04bfbb82fddfc740c5c234c028de89539e91a696
Reviewed-on: https://review.monogon.dev/c/monogon/+/2032
Reviewed-by: Tim Windelschmidt <tim@monogon.tech>
Tested-by: Jenkins CI
diff --git a/metropolis/node/core/mgmt/update.go b/metropolis/node/core/mgmt/update.go
index ce8b26b..144d307 100644
--- a/metropolis/node/core/mgmt/update.go
+++ b/metropolis/node/core/mgmt/update.go
@@ -28,6 +28,7 @@
// TODO(#253): Tell Supervisor to shut down gracefully and reboot
go func() {
time.Sleep(10 * time.Second)
+ unix.Unmount(s.UpdateService.ESPPath, 0)
unix.Sync()
if req.ActivationMode == apb.ActivationMode_ACTIVATION_KEXEC {
unix.Reboot(unix.LINUX_REBOOT_CMD_KEXEC)