It's 2:00 a.m. An embedded Linux system in the ladies' room of an Albuquerque gas station is being updated remotely. Just as the last bytes hit the flash, disaster strikes - the power fails. Now what? The regular way of updating the configuration or performing software upgrade of Linux systems is a nonsequitur in the embedded space. Still, many developers use these methods, or worse, for lack of a better alternative. This talk introduces a better alternative - a framework for safe remote configuration and software upgrade of a Linux system that supports atomic transactions, parallel, interactive and programmed updates, and multiple software versions with rollback and all using using such "novel" concepts as POSIX
pivot_root(2), and the initrd/initramfs mechanism.