Update README.md

This commit is contained in:
XenGi 2021-03-01 21:17:28 +00:00
commit dd2d657acf

View file

@ -35,16 +35,39 @@ MBR/BIOS:
```
/dev/disk:
/dev/disk1 - ext2 - /boot
/dev/disk2 - swap
/dev/disk3 - btrfs - /
/dev/disk1 ext4 /boot
/dev/disk2 swap [SWAP]
/dev/disk3 btrfs@home /home
/dev/disk3 btrfs@root-2021-04-01 /
/dev/disk3 btrfs@root-2021-04-20 /
/dev/disk3 btrfs@conf-2021-04-01 /config
/dev/disk3 btrfs@conf-2021-04-20 /config
```
Subvolumes:
- Every installed release has it's own subvolume for rootfs and config in case a configuration changes with an update
- The user can choose which one to boot into
- 2021-04-01: Released version
- current: Currently active version in case next boot fails
- last: Last known good version
### Update flow
State before the update:
- boot entry `last` is set to version 1 (last known working version)
- boot entry `current` is also set to version 1
- on every boot the default boot entry is set to `last` automatically in early boot
Update process:
- a new version is downloaded as a btrfs snapshot and put into place as version 2
- `current` boot entry is modified to boot the new version
- `current` is set as default boot entry
- device reboots into new version 2 via `current` boot entry
- early boot sets `last` as default boot entry
- after successful boot:
- the user marks the system as functional which sets the `last` boot entry to the current version
- if something goes wrong:
- the system reboots, now with the `last` entry being the default booting into the last known working system
- the user gets displayed an error because `last` and `current` is not the pointing to the same version and `last` is booted indicating an error
---