Hardware validation of #45 found that a boot which comes up locked keeps its journal in RAM only, so a failed update boot leaves nothing behind. Both silent failures in that round were diagnosed from update.json alone.
Mitigated in the update path: each run now copies its own journal to /var/lib/camlab/update.log before rebooting. That covers the updater and nothing else and it misses the lines written after copy.
The real fix is a journal that survives reboot on a read-only box, either by pointing /var/log/journal at the data mount or by keeping a persistent journal for update boots only.
Hardware validation of #45 found that a boot which comes up locked keeps its journal in RAM only, so a failed update boot leaves nothing behind. Both silent failures in that round were diagnosed from
update.jsonalone.Mitigated in the update path: each run now copies its own journal to
/var/lib/camlab/update.logbefore rebooting. That covers the updater and nothing else and it misses the lines written after copy.The real fix is a journal that survives reboot on a read-only box, either by pointing
/var/log/journalat the data mount or by keeping a persistent journal for update boots only.