farm-up: los comentarios nuevos llevaban backticks DENTRO de la cadena que va por SSH
El bloque del volumen es una cadena entrecomillada que se manda al worker, así que un backtick ahí no es tipografía: es SUSTITUCIÓN DE ÓRDENES. Mis comentarios de la commit anterior citaban `volume attach` y `blkid` con backticks ⇒ la shell intentó EJECUTAR «volume attach» («volume: command not found») y a partir de ahí el resto del bloque se mandó mutilado: mkfs.ext4 sin dispositivo, mountpoint sin argumento. Por eso los comentarios originales de ese mismo bloque escapan los backticks con \`. Yo escribí los míos con el estilo del resto del fichero, que es correcto FUERA de la cadena y venenoso dentro. Arreglado quitándolos: en un comentario que viaja por SSH, la comilla no vale lo que cuesta. El volumen no sufrió: sigue con su filesystem del 17 de julio y montado. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -97,10 +97,10 @@ for k in $(seq 1 "$N"); do
|
|||||||
hcloud volume attach --server "$name" "$VOL_NAME" >/dev/null 2>&1 || true
|
hcloud volume attach --server "$name" "$VOL_NAME" >/dev/null 2>&1 || true
|
||||||
dev="/dev/disk/by-id/scsi-0HC_Volume_$vid"
|
dev="/dev/disk/by-id/scsi-0HC_Volume_$vid"
|
||||||
$SSH root@"$ip" "mkdir -p /mnt/cosecha
|
$SSH root@"$ip" "mkdir -p /mnt/cosecha
|
||||||
# ⚠ El `mkfs.ext4 -F` de rescate SÓLO si el dispositivo no tiene filesystem. La versión previa
|
# ⚠ El mkfs.ext4 -F de rescate SÓLO si el dispositivo no tiene filesystem. La versión previa
|
||||||
# formateaba ante CUALQUIER fallo de montaje —incluida la carrera normal entre `volume attach`
|
# formateaba ante CUALQUIER fallo de montaje —incluida la carrera normal entre volume attach
|
||||||
# y la aparición del dispositivo— o sea que un hipo de segundos destruía el volumen entero.
|
# y la aparición del dispositivo— o sea que un hipo de segundos destruía el volumen entero.
|
||||||
# `blkid` distingue «vacío» de «no pude montarlo ahora».
|
# blkid distingue «vacío» de «no pude montarlo ahora».
|
||||||
if ! mount $dev /mnt/cosecha 2>/dev/null; then
|
if ! mount $dev /mnt/cosecha 2>/dev/null; then
|
||||||
if blkid $dev >/dev/null 2>&1; then
|
if blkid $dev >/dev/null 2>&1; then
|
||||||
echo " ✗ el volumen TIENE filesystem y no montó — NO lo formateo. Revisá a mano." >&2; exit 1
|
echo " ✗ el volumen TIENE filesystem y no montó — NO lo formateo. Revisá a mano." >&2; exit 1
|
||||||
@@ -115,12 +115,12 @@ for k in $(seq 1 "$N"); do
|
|||||||
# deuda contra un store casi vacío y se pone a reconstruir media distro: en la tanda del
|
# deuda contra un store casi vacío y se pone a reconstruir media distro: en la tanda del
|
||||||
# 2026-07-21 dio 716 recetas de deuda donde el hub medía 37. Es CAS (nombre = hash) ⇒
|
# 2026-07-21 dio 716 recetas de deuda donde el hub medía 37. Es CAS (nombre = hash) ⇒
|
||||||
# fusionar es seguro por construcción: \`mv -n\` no pisa lo que el volumen ya tiene.
|
# fusionar es seguro por construcción: \`mv -n\` no pisa lo que el volumen ya tiene.
|
||||||
# ⚠ `mountpoint -q` NO ES OPCIONAL — sin él este bloque BORRA EL VOLUMEN.
|
# ⚠ mountpoint -q NO ES OPCIONAL — sin él este bloque BORRA EL VOLUMEN.
|
||||||
# La guarda original sólo comprobaba «es directorio y no es symlink». Eso basta en un server
|
# La guarda original sólo comprobaba «es directorio y no es symlink». Eso basta en un server
|
||||||
# recién creado desde la golden ORIGINAL, donde /opt/hammer/store es un directorio normal.
|
# recién creado desde la golden ORIGINAL, donde /opt/hammer/store es un directorio normal.
|
||||||
# Pero al re-snapshotear un worker (2026-08-08) la imagen se llevó también la CONFIGURACIÓN DE
|
# Pero al re-snapshotear un worker (2026-08-08) la imagen se llevó también la CONFIGURACIÓN DE
|
||||||
# MONTAJE: el server nuevo monta el volumen en /opt/hammer/store al arrancar, ANTES de que
|
# MONTAJE: el server nuevo monta el volumen en /opt/hammer/store al arrancar, ANTES de que
|
||||||
# corra este rescate. Entonces `rm -rf $REMOTE/store` borra A TRAVÉS DEL MONTAJE y se lleva el
|
# corra este rescate. Entonces rm -rf $REMOTE/store borra A TRAVÉS DEL MONTAJE y se lleva el
|
||||||
# store del volumen entero — que es justo lo que el volumen existe para proteger.
|
# store del volumen entero — que es justo lo que el volumen existe para proteger.
|
||||||
# Medido: el volumen pasó de ~900 artefactos a 2. No se perdió el filesystem (lost+found es de
|
# Medido: el volumen pasó de ~900 artefactos a 2. No se perdió el filesystem (lost+found es de
|
||||||
# julio, 17 montajes): se borró el CONTENIDO.
|
# julio, 17 montajes): se borró el CONTENIDO.
|
||||||
|
|||||||
Reference in New Issue
Block a user