wawafs: §9 layouts de instalación — el corte ro/rw es de mounts, no de particiones (casos / único y /home+/var)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -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/<hash> 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).
|
||||
|
||||
Reference in New Issue
Block a user