Compare commits

..
2 Commits
Author SHA256 Message Date
kira 0df33175b3 Adding disk-layout doc and reconsidering life choices 2026-09-13 22:10:11 +02:00
kira 23597e3a36 Quick save 2026-09-09 17:01:35 +02:00
4 changed files with 36 additions and 12 deletions
+2
View File
@@ -1,3 +1,5 @@
# Documentation
Documentation for Kira Linux
[Documantation Index](src/index.md)
+17
View File
@@ -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
+3 -1
View File
@@ -1,3 +1,5 @@
Documentation for Kira Linux
# Documentation for Kira Linux
[Disk Layout](disk-layout.md)
[Update Process](updates.md)
+13 -10
View File
@@ -1,17 +1,20 @@
[Back to index](index.md)
# 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.
The main routine is as follows:
1. Before update process snapshot /usr and /var directories.
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)
3. Perform update (pacman -Su)
4. If update was successful, set update status in /var/lib/hive-up/hyve-db.json to true.
5. Process with reboot.
6. On boot Nyanit reads update status from /var/lib/hive-up/hyve-db.json and if it is false roll back latest snapshots from /bzz-snaps dir.
7. Otherwise boot as usual.
The main internal routine is as follows:
1. When perform update (`pacman -Su`) - pacman hook that triggers before a system upgrade by using the "When = PreTransaction"
- 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`
- will create file `/var/lib/hive-up/lock`
2. If update was successful, remove file `/var/lib/hive-up/lock` by another pacman hook
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.