<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>