diff --git a/scripts/install-image.sh b/scripts/install-image.sh index 711be9c9..bb3798b7 100755 --- a/scripts/install-image.sh +++ b/scripts/install-image.sh @@ -100,9 +100,17 @@ CFG rm -f "$ROOT_TREE/sbin/init" cat > "$ROOT_TREE/sbin/init" <<'INIT' #!/bin/sh -# Wrapper PID1 (Etapa E/B3): el kernel monta vda2 como /; montamos las particiones dedicadas. -/bin/busybox mount -t ext4 /dev/vda3 /store || echo "init: no pude montar /store (/dev/vda3)" -/bin/busybox mount -t ext4 /dev/vda4 /var/lib/hammer || echo "init: no pude montar /var/lib/hammer (/dev/vda4)" +# Wrapper PID1 (Etapa E/B3): el kernel montó la raíz; montamos las particiones dedicadas. +# +# El disco NO se cablea. Decía `/dev/vda3` y `/dev/vda4`, y eso vale sólo donde el disco es virtio-blk: +# en una caja Hetzner Cloud la controladora es virtio-SCSI y el disco es `sda`, así que los dos +# montajes fallaban —el sistema arrancaba igual, pero hammerd quedaba SIN /store y SIN diario, que es +# el modo de fallo que llega hasta el final diciendo que todo fue bien—. Se deriva de dónde está +# montada la raíz, que es la única fuente que no depende del nombre del dispositivo ni de udev. +_root=$(/bin/busybox awk '$2=="/" {print $1; exit}' /proc/mounts) +_disk=${_root%[0-9]} +/bin/busybox mount -t ext4 "${_disk}3" /store || echo "init: no pude montar /store (${_disk}3)" +/bin/busybox mount -t ext4 "${_disk}4" /var/lib/hammer || echo "init: no pude montar /var/lib/hammer (${_disk}4)" exec /usr/bin/arje-zero INIT chmod +x "$ROOT_TREE/sbin/init"