Adaptoarele Realtek RTL8156 (r8152) sunt placa de retea principala pe DOUA
noduri, nu doar pe pveelite: pve1 are enx6c1ff759e2cb ca bridge-port, exact
aceeasi configuratie si aceeasi vulnerabilitate. pvemini e in regula, are Intel
igc pe PCIe.
Defectul nu e resetul USB in sine, ci ca interfata recreata nu mai ajunge inapoi
in vmbr0: e declarata "inet manual", fara auto si fara allow-hotplug, deci se
ridica doar ca efect secundar la boot. Nodul ramane pornit si invizibil, la
nesfarsit - 16 ore pe pveelite in noaptea asta, plus inca un reset azi la 10:31,
in timp ce lucram la asta.
Regula udev prinde reaparitia interfetei si porneste o unitate systemd care da
ifreload -a. Am ales ifreload, nu ifup, din doua motive: interfata e port de
punte si doar ifreload reface legatura cu vmbr0, si e comanda verificata in teren
- exact ea a readus pveelite in retea de doua ori azi.
Doua capcane platite, amandoua consemnate in fisiere ca sa nu se reia:
1. Prefixul 70- NU functioneaza. ID_NET_DRIVER e populat abia de
80-net-setup-link.rules, deci la 70- variabila e goala si regula nu se
potriveste - tacut, fara nicio eroare. udevadm test citea fisierul, dar RUN-ul
nu aparea in lista finala. Prima rulare a testului a "reusit" doar pentru ca
a lucrat plasa de siguranta la 90 s, nu regula. Cu 99-, revenirea e in 8
secunde.
2. PowerShell inghite ghilimelele cand paseaza argumente catre ssh, iar nodul
primea [ = r8152 ] in loc de [ "$d" = r8152 ]. Scripturile remote se trimit
acum codificate base64, nu prin niveluri de citare.
Testat cu reset USB real pe pveelite (deautorizare/reautorizare pe magistrala,
adica exact ce face controllerul cand cedeaza singur): revenire in 8 secunde,
unitatea usb-lan-hotplug@eth0.service pornita si terminata cu succes. Instanta e
eth0 pentru ca evenimentul add precede redenumirea in enxMAC - unitatea ignora
%I si reaplica toata configuratia, deci nu conteaza.
8 secunde e sub tokenul corosync de 10 s, deci un reset USB nu ar mai trebui nici
macar sa scoata nodul din cluster.
Testul isi armeaza singur o plasa de siguranta - ifreload -a programat la 90 s -
ca o regula gresita sa nu ceara drum pana la nod. A si folosit, la prima rulare.
Pe pve1 am instalat fara testul distructiv, acolo ruleaza CT 101 si CT 110;
verificat neinvaziv cu udevadm test.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAEUqrv26jCM5KwAPtkHb8
Fisierul n-are extensie, deci nu era prins de regula *.sh si core.autocrlf=true
i-ar fi pus CRLF la checkout pe Windows. Extragerea datei ar fi rezistat (regexul
ia doar cifrele), dar fisierul ajunge in /etc/nut/ pe un nod Linux, deci se
aliniaza la aceeasi logica.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RRyaDj39hPQ89SZS6URRpS
Testul DR din 2026-08-08 a raportat "Restore failed" dupa 11 secunde, fara
niciun log RMAN. Cauza nu a fost restore-ul: KB5101001 fusese descarcat in
timpul testului din 2026-08-01 (singurul moment in care VM 109 e pornit),
a ramas staged dupa qm stop si s-a finalizat la boot-ul testului urmator.
Cronologie din Event Log-ul guest-ului:
06:00:58 RestartManager 10010 - nu poate reporni powershell.exe (restore-ul)
06:01:04 SCM 7034 - OpenSSH SSH Server terminat neasteptat
06:01:06 pveelite: client_loop: send disconnect: Broken pipe -> FAILED
06:01:38 VM-ul se reboteaza singur
Fereastra testului (Sambata 06:00) era in afara Active Hours (08:00-17:00),
deci pentru Windows era fereastra de mentenanta valida - iar VM 109 fiind
pornit doar in timpul testului, aceea era singura fereastra posibila.
Agravant: sshd nu avea acsiuni de recovery (RESET_PERIOD 0), deci dupa ce a
murit a ramas mort si au esuat si colectarea logului si shutdown-ul gratios.
Masuri:
- NoAutoUpdate=1 + AUOptions=2 pe VM 109 (aplicat direct in registry)
- actiuni de recovery pentru sshd: restart la 5s/10s/30s, reset=86400
- guard "STEP 3b: Windows servicing" inainte de restore (check_servicing.ps1):
asteapta idle 300s, consuma controlat un reboot in asteptare, altfel
abandoneaza cu "ABORTED - Windows servicing" in loc de un "Restore failed"
inselator. Fail-open daca checkul lipseste - nu are voie sa pice testul.
- fereastra lunara de patching (vm109-patch-window.sh + install_updates.ps1),
prima duminica 03:00, cu re-armare NoAutoUpdate=1 indiferent de rezultat
Adaugat si .gitattributes: cu core.autocrlf=true scripturile .sh ajungeau in
working tree cu CRLF, iar ele se deployeaza prin scp direct pe Proxmox.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BhQBTegE4PiMPPaapLHjkc