SHA256
Adding disk-layout doc and reconsidering life choices
This commit is contained in:
@@ -0,0 +1,17 @@
|
|||||||
|
[Back to index](index.md)
|
||||||
|
|
||||||
|
# Disk Layout
|
||||||
|
|
||||||
|
EFI partition - FAT32
|
||||||
|
Root partition - bcachefs
|
||||||
|
SWAP - optional
|
||||||
|
|
||||||
|
Bcachefs subvolumes:
|
||||||
|
`/home`
|
||||||
|
`/usr`
|
||||||
|
`/var`
|
||||||
|
`/var/tmp`
|
||||||
|
|
||||||
|
`/usr` and `/var` supposed to be captured by snapshots
|
||||||
|
|
||||||
|
`/var/tmp` - need to be excluded from snapshots so making it separate subvolume
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
# Documentation for Kira Linux
|
# Documentation for Kira Linux
|
||||||
|
|
||||||
|
|
||||||
|
[Disk Layout](disk-layout.md)
|
||||||
[Update Process](updates.md)
|
[Update Process](updates.md)
|
||||||
|
|||||||
+10
-8
@@ -2,17 +2,19 @@
|
|||||||
|
|
||||||
# Update process
|
# Update process
|
||||||
|
|
||||||
Main feature of Kira Linux is atomic (to some degree) update process that allows roll back of unsuccessful or broken updates.
|
Kira Linux provides atomic (to some degree) update process that allows roll back of unsuccessful or broken updates.
|
||||||
|
|
||||||
We achieve this by relying on bcachefs snapshots and subvolumes.
|
We achieve this by relying on bcachefs snapshots and subvolumes.
|
||||||
|
|
||||||
The main internal routine is as follows:
|
The main internal routine is as follows:
|
||||||
|
|
||||||
1. Before update process snapshot /usr and /var directories.
|
1. When perform update (`pacman -Su`) - pacman hook that triggers before a system upgrade by using the "When = PreTransaction"
|
||||||
Put snapshots to `/bzz-snaps` directory named as `bzz-usr-yyyy-mm-ddTHH-MM-SS` and `bzz-var-yyyy-mm-ddTHH-MM-SS`
|
- will snapshot /usr and /var subvolumes and put snapshots to `/bzz-snaps` directory named as `bzz-usr-yyyy-mm-ddTHH-MM-SS` and `bzz-var-yyyy-mm-ddTHH-MM-SS`
|
||||||
2. Set update status in `/var/lib/hive-up/hyve-db.json` as failed (`update_status = false`)
|
- will create file `/var/lib/hive-up/lock`
|
||||||
3. Perform update (`pacman -Su`)
|
|
||||||
4. If update was successful, set update status in `/var/lib/hive-up/hyve-db.json` to true.
|
2. If update was successful, remove file `/var/lib/hive-up/lock` by another pacman hook
|
||||||
5. Process with reboot.
|
|
||||||
6. On boot **nyanit** reads update status from `/var/lib/hive-up/hyve-db.json` and if it is false **nyanit** roll back latest snapshots from `/bzz-snaps` dir.
|
|
||||||
|
6. On boot **nyanit** check file existence `/var/lib/hive-up/lock` and if it is false **nyanit** roll back latest snapshots from `/bzz-snaps` dir.
|
||||||
|
|
||||||
7. Otherwise boot as usual.
|
7. Otherwise boot as usual.
|
||||||
|
|||||||
Reference in New Issue
Block a user