<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
We solve a problem which is kinda similar in the embedded world when
we do A/B update<br>
<br>
I'll describe how we do it so you see if this can help<br>
<br>
<font face="Raleway, regular">* Have a single "last boot went wrong"
flag<br>
When grub starts<br>
* if the flag is set, show the boot menu (or a timer)<br>
* if the flag is not set<br>
* skip the menu, don't initialize USB, fastboot<br>
* set the flag.<br>
* At some point during the boot (late enough that it is possible
to get a console) reset the flag.<br>
<br>
this way, your system is "unstable" : either you reach the point
where a console is available or you will have a menu at the next
reboot.<br>
<br>
<br>
The trick is to have grub first read the flag then set it to "bad"
for the next boot. Linux set it to "good" if the boot was good
enough<br>
<br>
Hope this help...<br>
<br>
<br>
Jérémy<br>
</font>
</body>
</html>