bootstrap: builder carga overlay.ko — el sandbox de build lo exige en la VM
El run en la VM avanzó hasta `configure` y ahí bwrap falló: `Can't make overlay mount … No such device`. Causa raíz: el kernel trae overlay como MÓDULO (CONFIG_OVERLAY_FS=m) y el initramfs arranca sin módulos cargados ⇒ ENODEV. El sandbox de hammer-build usa `bwrap --tmp-overlay` (raíz efímera sobre el toolchain), así que necesita overlayfs. Fix: rebuild-stage1 hace `insmod /toolchain/lib/overlay.ko` tras el shim del loader (overlay no tiene deps; vermagic del kernel destino). El toolchain suma `kmod` (insmod/modprobe). El `overlay.ko` es específico del kernel (no de Alpine): se inyecta aparte en el builder (.dev-fs/alpine/lib/overlay.ko), documentado en bootstrap-devfs.sh. Progreso del run: shim OK ⇒ bwrap/git/curl corren ⇒ fetch OK ⇒ configure arranca; overlay era el siguiente muro. 28 tests verdes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
64894d863c
commit
cf15995623
@@ -121,7 +121,11 @@ else
|
||||
# hammer-build con su propio toolchain. En el host estas tres las aporta el sistema, pero en la
|
||||
# VM el toolchain ES el único userland capaz, así que deben vivir aquí: `bwrap` anida el sandbox
|
||||
# de build, `git` rematerializa las fuentes git (git archive del mirror), `curl` baja tarballs.
|
||||
NEEDED="make autoconf automake m4 patch coreutils libtool pkgconf bash binutils rust cargo linux-headers bubblewrap git curl"
|
||||
# `kmod` aporta insmod/modprobe: en la VM el sandbox de build usa overlay (módulo del kernel,
|
||||
# CONFIG_OVERLAY_FS=m) y el initramfs arranca sin módulos cargados, así que el builder debe poder
|
||||
# cargarlo. El `overlay.ko` en sí es específico del kernel destino (no de Alpine): se inyecta
|
||||
# aparte en el builder (ver docs/runbooks/stage1-vm-boot.md §8c).
|
||||
NEEDED="make autoconf automake m4 patch coreutils libtool pkgconf bash binutils rust cargo linux-headers bubblewrap git curl kmod"
|
||||
missing=""
|
||||
for pkg in $NEEDED; do
|
||||
# apk info -e devuelve el paquete si está instalado, vacío si no.
|
||||
|
||||
Reference in New Issue
Block a user