diff --git a/docs/18-wawafs-store-vivo.md b/docs/18-wawafs-store-vivo.md index fdc16816..9c51967f 100644 --- a/docs/18-wawafs-store-vivo.md +++ b/docs/18-wawafs-store-vivo.md @@ -122,7 +122,46 @@ un mapa entre ellos). reemplazo de squashfs en el USB live (es el patrón vigente en Fedora/Android). Gate: bit flipeado a mano en un objeto ⇒ EIO en lectura, no ejecución. -## 9. No-metas +## 9. Layouts de instalación (el corte ro/rw es de MOUNTS, no de particiones) + +La parte ro no ocupa partición: es una vista sintética montada desde el CAS. Las particiones +guardan siempre lo mutable + el store. Dos instalaciones tipo: + +**A — un solo ext4 en `/`** (particionado idéntico a una instalación normal: ESP + 1 ext4): + +``` +/ ext4 rw /etc /var /home /root /run /store … +├─ /store/objects/… CAS plano en este mismo ext4 +├─ /store/manifests/ manifests erofs por generación (~KB) +└─ /usr composefs ro — mount sintético de la generación activa +``` + +arje monta `/`, lee el nodo elegido del boot-graph, monta su manifest como `/usr`. Fin. + +**B — `/home` y `/var` en particiones propias**: + +``` +/ ext4 rw (chica: /etc, /root, /store) +/usr composefs ro +/var ext4 rw propia ← estado puro: ni se entera de wawafs +/home ext4 rw propia ← ídem +``` + +`/home`/`/var` son ortogonales al esquema. El caso B además *mejora*: la restricción de +ADR 0005 (store y FHS mismo-filesystem) desaparece — el redirect de composefs cruza mounts, +el store podría incluso tener partición propia. + +Reglas del patrón: + +- **ro**: `/usr` = el OS entero (requiere usr-merge para que un mount lo cubra todo). +- **rw**: `/etc` (se hidrata al activar la generación), `/var`, `/home`, `/root`, `/run`, + `/tmp` y el propio `/store`. +- **Actualizar** = escribir objetos+manifest nuevos en `/store` (rw) y cambiar el mount; + la generación corriendo nunca se toca. +- **Parchear `/usr` a mano** = modo dev (ADR 0005) o un overlay rw de emergencia explícito + encima del mount; nunca un estado alcanzable por accidente. + +## 10. No-metas - **No** escribir un filesystem de kernel (años de fsck y corrupción ajena: landmine). - **No** reemplazar `hydrate`/hardlinks en el laptop de desarrollo (ADR 0005 queda).