<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Ai-Generated on Marcello Barnaba</title>
    <link>https://sindro.me/it/tags/ai-generated/</link>
    <description>Recent content in Ai-Generated on Marcello Barnaba</description>
    <generator>Hugo</generator>
    <language>it</language>
    <lastBuildDate>Tue, 07 Apr 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://sindro.me/it/tags/ai-generated/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Come ho usato Claude per rifare completamente il blog in due giorni</title>
      <link>https://sindro.me/it/posts/2026-04-07-how-i-used-claude-to-revamp-my-blog/</link>
      <pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://sindro.me/it/posts/2026-04-07-how-i-used-claude-to-revamp-my-blog/</guid>
      <description>&lt;p&gt;È come avere un ingegnere incredibilmente veloce, competente e preciso seduto accanto a te — uno che ti lascia davvero fluire creativamente senza freni. Dici &amp;ldquo;e se facessimo&amp;hellip;&amp;rdquo; e trenta secondi dopo hai un prototipo funzionante davanti agli occhi. Dici &amp;ldquo;no, più così&amp;rdquo; e ha già finito prima che tu abbia spiegato il perché.&lt;/p&gt;&#xA;&lt;p&gt;È questa la sensazione che ho avuto lavorando con &lt;a href=&#34;https://claude.ai/code&#34; target=&#34;_blank&#34;&gt;Claude Code&lt;/a&gt; negli ultimi due giorni. Ho rifatto completamente questo blog — tradotto tutti e 69 gli articoli in italiano, ridisegnato il layout da zero, aggiunto un easter egg nerd con la sequenza di boot del kernel, ripulito anni di tag accumulati, e iterato su decine di decisioni di design. Tutto tracciato in git, tutto verificabile, tutto live.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Ogni singolo commit è pubblico.&lt;/strong&gt; Se vuoi vedere il processo grezzo — il brainstorming, le iterazioni, i bugfix, il botta e risposta — è tutto nel repo: &lt;strong&gt;&lt;a href=&#34;https://github.com/vjt/sindro.me&#34; target=&#34;_blank&#34;&gt;github.com/vjt/sindro.me&lt;/a&gt;&lt;/strong&gt; (e il fork del tema: &lt;a href=&#34;https://github.com/vjt/hugo-sindrome-theme&#34; target=&#34;_blank&#34;&gt;github.com/vjt/hugo-sindrome-theme&lt;/a&gt;). Non mi vergogno a mostrare come viene fatta la salsiccia. Anzi, spero che qualcuno lo trovi utile come esempio concreto di cosa sia davvero lo sviluppo assistito dall&amp;rsquo;AI — con tutti i difetti annessi.&lt;/p&gt;&#xA;&lt;p&gt;Ecco il mio grafico di contribuzione su GitHub, per dimostrare che non sto esagerando:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://sindro.me/posts/2026-04-07-how-i-used-claude-to-revamp-my-blog/github-activity.png&#34; alt=&#34;Attività GitHub con una valanga di commit&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Quel muro verde sono 40 giorni di lavoro con Claude su un sacco di progetti — &lt;a href=&#34;https://sindro.me/it/posts/2026-04-04-verisure-italy-home-assistant/&#34;&gt;integrazioni domotiche&lt;/a&gt;, &lt;a href=&#34;https://sindro.me/it/posts/2026-04-03-wifi-dethrash-openwrt-mesh-analyzer/&#34;&gt;strumenti di rete per OpenWrt&lt;/a&gt;, &lt;a href=&#34;https://sindro.me/it/posts/2026-02-15-wifi-presence-detection-home-assistant/&#34;&gt;rilevamento presenza WiFi&lt;/a&gt;, &lt;a href=&#34;https://sindro.me/it/posts/2026-01-31-quectel-5g-modem-tools-for-openwrt/&#34;&gt;tooling per modem 5G&lt;/a&gt;, e questo redesign del blog. Solo gli ultimi due giorni coprono una fetta ridicola del totale.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Come ho rimpiazzato l&#39;app Verisure con Home Assistant</title>
      <link>https://sindro.me/it/posts/2026-04-04-verisure-italy-home-assistant/</link>
      <pubDate>Sat, 04 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://sindro.me/it/posts/2026-04-04-verisure-italy-home-assistant/</guid>
      <description>&lt;p&gt;L&amp;rsquo;app Verisure fa schifo. Lì, l&amp;rsquo;ho detto.&lt;/p&gt;&#xA;&lt;p&gt;Non che l&amp;rsquo;allarme funzioni male — il pannello SDVECU è solido, i sensori&#xA;sono affidabili, l&amp;rsquo;installazione è professionale. Ma l&amp;rsquo;app. Dio santo,&#xA;l&amp;rsquo;app.&lt;/p&gt;&#xA;&lt;h2 id=&#34;il-problema&#34;&gt;Il problema&lt;/h2&gt;&#xA;&lt;p&gt;Apri l&amp;rsquo;app per controllare lo stato dell&amp;rsquo;allarme e ti accoglie una &lt;strong&gt;pubblicità&#xA;di Verisure stessa&lt;/strong&gt;. Io pago fior di quattrini per il servizio e loro mi&#xA;piazzano le ads &lt;em&gt;dentro&lt;/em&gt; l&amp;rsquo;app. È il 2026 e un&amp;rsquo;azienda di sicurezza mi fa&#xA;vedere banner pubblicitari quando provo a verificare se casa mia è protetta.&lt;/p&gt;&#xA;&lt;p&gt;Ma le ads sono il meno. I veri problemi sono:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Routine cieche.&lt;/strong&gt; Sì, l&amp;rsquo;app ha le &amp;ldquo;routine&amp;rdquo; — attiva a&#xA;mezzanotte, disattiva alle 7. Ma non sanno dove sei. Mezzanotte&#xA;e sei ancora in giardino? L&amp;rsquo;allarme si attiva e i sensori scattano.&#xA;Finestra aperta? Il pannello annuncia che non riesce ad attivare,&#xA;ma se non lo senti l&amp;rsquo;allarme resta spento. Vai in vacanza e&#xA;dimentichi di disabilitare la routine di disattivazione mattutina?&#xA;Allarme spento con la casa vuota. E le modifiche alle routine&#xA;impiegano &lt;em&gt;20 minuti a propagarsi&lt;/em&gt; — &amp;ldquo;o il giorno dopo&amp;rdquo;. Nel 2026.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Zero presenza.&lt;/strong&gt; L&amp;rsquo;app non sa dove sei. Non sa chi è in casa.&#xA;Non sa se la donna delle pulizie è andata via. Nessuna automazione&#xA;basata sulla posizione.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Una telecamera alla volta.&lt;/strong&gt; Vuoi vedere tutte le camere? Tocca,&#xA;aspetta, torna indietro, tocca la prossima, aspetta. Nessuna vista&#xA;d&amp;rsquo;insieme. Nessun &amp;ldquo;cattura tutto&amp;rdquo;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Lentezza biblica.&lt;/strong&gt; Richiedi un&amp;rsquo;immagine, aspetti, aspetti, forse&#xA;arriva. A volte ricarichi l&amp;rsquo;app e riprovi. Nel 2026.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Nessuno storage permanente.&lt;/strong&gt; Le immagini catturate spariscono. Non&#xA;c&amp;rsquo;è uno storico consultabile.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Nessun timestamp sulle immagini.&lt;/strong&gt; Catturi una foto e non sai&#xA;&lt;em&gt;quando&lt;/em&gt; è stata scattata né &lt;em&gt;da quale camera&lt;/em&gt;. Devi ricordartelo tu.&#xA;Per un sistema di sicurezza è imbarazzante.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Notifiche generiche.&lt;/strong&gt; Una notifica uguale per tutti. Niente&#xA;notifiche actionable, niente notifiche critiche che bypassano il&#xA;&amp;ldquo;Non Disturbare&amp;rdquo;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Quello che volevo: il mio allarme, integrato nella mia domotica, con&#xA;automazioni intelligenti, notifiche per tutti i residenti, e una&#xA;dashboard che mostra &lt;em&gt;tutto&lt;/em&gt; in un colpo d&amp;rsquo;occhio. Senza pubblicità.&lt;/p&gt;</description>
    </item>
    <item>
      <title>wifi-dethrash: trovare e risolvere il thrashing WiFi mesh su OpenWrt</title>
      <link>https://sindro.me/it/posts/2026-04-03-wifi-dethrash-openwrt-mesh-analyzer/</link>
      <pubDate>Fri, 03 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://sindro.me/it/posts/2026-04-03-wifi-dethrash-openwrt-mesh-analyzer/</guid>
      <description>&lt;p&gt;Tutto è cominciato con il &lt;a href=&#34;https://sindro.me/posts/2026-02-15-wifi-presence-detection-home-assistant/&#34;&gt;rilevamento presenza WiFi&lt;/a&gt;. Avevo costruito un sistema che traccia in quale stanza si trova ognuno scrapando l&amp;rsquo;RSSI dai miei AP OpenWrt. Funzionava &amp;ndash; ma le assegnazioni delle stanze continuavano a sfarfallare. Cucina. Ufficio. Cucina. Ufficio. Tre volte in dieci secondi. La macchina a stati era a posto. Il WiFi no.&lt;/p&gt;&#xA;&lt;p&gt;La mia rete domestica ha sei AP OpenWrt su tre piani, due SSID &amp;ndash; Mercury su 5 GHz, Saturn su 2,4 GHz &amp;ndash; tutti con 802.11r per il roaming veloce. Vista da fuori, sembra una mesh fatta bene. Vista da dentro, un telefono rimbalzava tra access point &lt;strong&gt;129 volte in 24 ore&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Non lo sapevo finché non ho costruito lo strumento per vederlo.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://sindro.me/posts/2026-04-03-wifi-dethrash-openwrt-mesh-analyzer/roaming-timeline-24h.png&#34; alt=&#34;Timeline di roaming — 24 ore&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Ogni riga è un client WiFi, il colore mostra a quale AP è connesso. I client sani mostrano barre lunghe e piene. Quelli malati sembrano pali da barbiere. Vedi &lt;code&gt;sara-iphone&lt;/code&gt;? Quella striscia arcobaleno sono 129 connessioni in 24 ore &amp;ndash; il telefono cammina in una zona di overlap tra due AP dove entrambi hanno un segnale circa uguale (e orrendo).&lt;/p&gt;&#xA;&lt;h2 id=&#34;il-problema-che-non-puoi-vedere&#34;&gt;Il problema che non puoi vedere&lt;/h2&gt;&#xA;&lt;p&gt;Il roaming WiFi è invisibile. Il tuo telefono mostra tutte le tacche, Netflix bufferizza un attimo, e tu dai la colpa alla connessione internet. Ma quello che è successo davvero è che il tuo telefono si è disconnesso da un AP, ha scansionato le alternative, ne ha scelto un altro con un segnale marginalmente diverso, si è associato, autenticato, e ha ricominciato lo streaming &amp;ndash; tutto in meno di un secondo se 802.11r funziona, diversi secondi se non funziona.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Rilevamento presenza WiFi per Home Assistant con OpenWrt</title>
      <link>https://sindro.me/it/posts/2026-02-15-wifi-presence-detection-home-assistant/</link>
      <pubDate>Sun, 15 Feb 2026 00:00:00 +0000</pubDate>
      <guid>https://sindro.me/it/posts/2026-02-15-wifi-presence-detection-home-assistant/</guid>
      <description>&lt;p&gt;Avevo due problemi con il rilevamento presenza di Home Assistant.&lt;/p&gt;&#xA;&lt;p&gt;Il primo: il GPS ti dice &lt;em&gt;se&lt;/em&gt; qualcuno è a casa, ma non &lt;em&gt;dove&lt;/em&gt; in casa si trova. La mia casa ha sei access point OpenWrt distribuiti su tre piani. Sanno già esattamente quale telefono è connesso a quale AP in ogni momento &amp;ndash; sono dati di presenza a livello di stanza, lì nello stack WiFi, che urlano per essere usati. Sapere chi è in quale stanza apre un&amp;rsquo;intera classe di automazioni che il GPS non può toccare: luci che ti seguono, climatizzazione per stanza occupata, una dashboard che mostra la situazione della casa a colpo d&amp;rsquo;occhio.&lt;/p&gt;&#xA;&lt;p&gt;Il secondo: la nostra donna delle pulizie sta a casa nostra un paio di giorni a settimana. Non voglio configurarle un account HA completo, installarle l&amp;rsquo;app companion sul telefono, o avere a che fare con i permessi GPS. Ma &lt;em&gt;devo&lt;/em&gt; sapere se è a casa &amp;ndash; perché la mia automazione dell&amp;rsquo;allarme ha bisogno di sapere se la casa è davvero vuota prima di attivarsi. Il suo telefono si connette al WiFi. Mi basta questo.&lt;/p&gt;&#xA;&lt;p&gt;Così ho scritto &lt;a href=&#34;https://github.com/vjt/openwrt-ha-presence&#34; target=&#34;_blank&#34;&gt;openwrt-ha-presence&lt;/a&gt;: una macchina a stati che scrapa le metriche RSSI direttamente dai tuoi AP OpenWrt, capisce in quale stanza si trova ogni persona in base alla potenza del segnale, e pubblica lo stato casa/fuori per ogni persona su Home Assistant via MQTT Discovery. Niente cloud, niente beacon, niente parsing di log, niente database time-series. Python, async, ~600 righe di logica effettiva.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://sindro.me/posts/2026-02-15-wifi-presence-detection-home-assistant/home-assistant.png&#34; alt=&#34;Storico tracking stanze di Home Assistant&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>5G come backup della fibra: non perdere mai più una riunione</title>
      <link>https://sindro.me/it/posts/2026-01-31-quectel-5g-modem-tools-for-openwrt/</link>
      <pubDate>Sat, 31 Jan 2026 00:00:00 +0000</pubDate>
      <guid>https://sindro.me/it/posts/2026-01-31-quectel-5g-modem-tools-for-openwrt/</guid>
      <description>&lt;p&gt;Un paio di mesi fa, la fibra è andata giù. Come da primo corollario di Murphy, è successo nel momento peggiore in assoluto: subito prima di una riunione cruciale con un&amp;rsquo;azienda partner. Mi sono ritrovato a saltare freneticamente tra l&amp;rsquo;AP di un vicino lontano e l&amp;rsquo;hotspot del telefono, ma entrambi facevano schifo. Parliamo di 200ms di RTT e 15% di packet loss. Mi stavo scusando a profusione mentre il mio feed video si trasformava in uno slideshow del 1998; nessuno capiva una parola di quello che dicevo. Ho finito per spegnere il video e stare zitto. Opportunità persa. &lt;strong&gt;Mai. Più.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Così sono andato in modalità paranoica totale e ho costruito un setup di backup 5G serio.&lt;/p&gt;&#xA;&lt;h2 id=&#34;lhardware&#34;&gt;L&amp;rsquo;hardware&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.gl-inet.com/products/gl-x3000/&#34; target=&#34;_blank&#34;&gt;GL.iNet X-3000&lt;/a&gt; con modem Quectel RM520N-GL&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://poynting.tech/antennas/xpol-24/&#34; target=&#34;_blank&#34;&gt;Poynting XPOL-24&lt;/a&gt; antenna direzionale montata sul muro fuori dal mio ufficio&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Il segnale 5G qui è inesistente, quindi ho dovuto usare l&amp;rsquo;artiglieria pesante. La Poynting è una bestia. 11 dBi di guadagno, vero MIMO 4x4, cross-polarizzata, stagna. Puntala verso la torre più vicina e all&amp;rsquo;improvviso il SINR salta da &amp;ldquo;meh&amp;rdquo; a &amp;ldquo;porco dio!&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;Ma puntare un&amp;rsquo;antenna direzionale senza feedback visivo è doloroso. In pratica giri in tondo, aggiorni una web UI, bestemmi guardando il cielo.&lt;/p&gt;&#xA;&lt;h2 id=&#34;il-software&#34;&gt;Il software&lt;/h2&gt;&#xA;&lt;p&gt;Ho scritto un set di strumenti per risolvere il problema: &lt;a href=&#34;https://github.com/vjt/quectel-5g-tools&#34; target=&#34;_blank&#34;&gt;quectel-5g-tools&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;5g-info&lt;/code&gt; scarica tutto quello che il tuo modem sa in un formato leggibile:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://sindro.me/posts/2026-01-31-quectel-5g-modem-tools-for-openwrt/5g-info.png&#34; alt=&#34;output di 5g-info&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;5g-monitor&lt;/code&gt; è una TUI ncurses che si aggiorna in tempo reale e &amp;ndash; qui viene il bello &amp;ndash; &lt;strong&gt;emette beep in base al SINR&lt;/strong&gt;. Qualità del segnale più alta = più beep. Punta l&amp;rsquo;antenna, ascolta i beep, stringi i bulloni. Fatto.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Docker vs. iptables: una storia di rabbia e la chain DOCKER-USER</title>
      <link>https://sindro.me/it/posts/2026-01-30-docker-vs-iptables-rage-and-docker-user-chain/</link>
      <pubDate>Fri, 30 Jan 2026 00:00:00 +0100</pubDate>
      <guid>https://sindro.me/it/posts/2026-01-30-docker-vs-iptables-rage-and-docker-user-chain/</guid>
      <description>&lt;p&gt;Siamo nel 2026, e stiamo ancora lottando con l&amp;rsquo;arroganza assoluta di Docker riguardo al networking Linux.&lt;/p&gt;&#xA;&lt;p&gt;Ecco lo scenario: faccio girare un host ibrido. Da un lato, ho una macchina virtuale KVM che fa girare &lt;strong&gt;Home Assistant&lt;/strong&gt; (perché ho bisogno del controllo completo del SO e della &lt;a href=&#34;https://sindro.me/posts/2026-01-20-raspberry-pi-luks-encrypted-root/&#34; target=&#34;_blank&#34;&gt;cifratura del disco&lt;/a&gt;).&#xA;Dall&amp;rsquo;altro, ho la solita lista di container Docker &amp;ndash; &lt;strong&gt;NUT&lt;/strong&gt; per monitorare il mio UPS Lakeview (Vultech) di merda e &lt;strong&gt;Technitium&lt;/strong&gt; per DNS e DHCP &amp;ndash; in esecuzione direttamente sull&amp;rsquo;host.&lt;/p&gt;&#xA;&lt;p&gt;Sembra semplice. Dovrebbe essere semplice.&lt;/p&gt;&#xA;&lt;p&gt;Ma nel momento in cui ho installato Docker, la comunicazione con la mia VM Home Assistant è morta. Semplicemente cessata di esistere.&lt;/p&gt;&#xA;&lt;h2 id=&#34;il-problema-docker-è-un-dittatore&#34;&gt;Il problema: Docker è un dittatore&lt;/h2&gt;&#xA;&lt;p&gt;Docker, per default, tratta le tue regole &lt;code&gt;iptables&lt;/code&gt; come se fossero semplici suggerimenti. Quando il demone si avvia, sostanzialmente sovrascrive la chain &lt;code&gt;FORWARD&lt;/code&gt;, inserisce la sua logica, e imposta policy che isolano efficacemente qualsiasi cosa non sia un container gestito da Docker stesso.&lt;/p&gt;&#xA;&lt;p&gt;Se hai un&amp;rsquo;interfaccia bridge per una VM (come &lt;code&gt;br0&lt;/code&gt; o &lt;code&gt;virbr0&lt;/code&gt;), le regole di Docker spesso finiscono per droppare i pacchetti destinati a quella VM perché non corrispondono alla sua logica interna per il traffico dei container.&lt;/p&gt;&#xA;&lt;h3 id=&#34;la-soluzione-ingenua-e-perché-fallisce&#34;&gt;La soluzione ingenua (e perché fallisce)&lt;/h3&gt;&#xA;&lt;p&gt;La mia prima reazione &amp;ndash; come qualsiasi sysadmin che fa questo lavoro dai primi anni 2000 &amp;ndash; è stata sistemare le regole a mano e poi eseguire:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;iptables-save &amp;gt; /etc/iptables/rules.v4&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Questa è una trappola!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://media1.giphy.com/media/v1.Y2lkPTc5MGI3NjExOHI5MzZoYzVwdGluYmNnMXBpYmJ2M2Y4cHB1OGVhaGlxdXRpZHpqOCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/3ornka9rAaKRA2Rkac/giphy.gif&#34; alt=&#34;Trap GIF&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Se usi &lt;code&gt;iptables-persistent&lt;/code&gt; (o &lt;code&gt;netfilter-persistent&lt;/code&gt;) con Docker, stai entrando in un mondo di dolore per due motivi:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sblocco remoto via SSH di ZFS cifrato su FreeBSD</title>
      <link>https://sindro.me/it/posts/2026-01-28-freebsd-encrypted-zfs-remote-unlock/</link>
      <pubDate>Wed, 28 Jan 2026 00:00:00 +0000</pubDate>
      <guid>https://sindro.me/it/posts/2026-01-28-freebsd-encrypted-zfs-remote-unlock/</guid>
      <description>&lt;h2 id=&#34;luks-remoto-pfft-ecco-come-sbloccare-via-ssh-una-root-zfs-cifrata-su-freebsd-nel-modo-difficile&#34;&gt;LUKS remoto? Pfft. Ecco come sbloccare via SSH una root ZFS cifrata su FreeBSD (nel modo difficile)&lt;/h2&gt;&#xA;&lt;p&gt;Se usi FreeBSD &lt;a href=&#34;https://sindro.me/posts/2023-08-13-freebsd-encrypted-root-on-zfs/&#34; target=&#34;_blank&#34;&gt;come me&lt;/a&gt;, su un server remoto con cifratura completa del disco (ZFS su GELI), conosci il panico del riavvio. Sei sempre alla mercé di un KVM-over-IP o di una connessione VNC dal browser, per inserire la password del filesystem root al prompt del kernel.&lt;/p&gt;&#xA;&lt;p&gt;Inoltre, se (come me) fai girare un sistema con &lt;code&gt;kern.securelevel&lt;/code&gt; &amp;gt; 0, allora installare una nuova libc significa riavviare in single user e installare gli aggiornamenti tramite la suddetta connessione KVM o VNC, che &lt;em&gt;non è ergonomica&lt;/em&gt; per usare un eufemismo.&lt;/p&gt;&#xA;&lt;p&gt;La soluzione standard è di solito un ambiente SSH pre-boot. Su Linux, dropbear-initramfs rende la cosa banale. Su FreeBSD? Devi costruirti un mfsroot (memory file system) custom da zero.&lt;/p&gt;&#xA;&lt;p&gt;La maggior parte delle guide suggerisce di usare un semplice shell script come init. Funziona, ma è misero. Perdi il job control (niente Ctrl+C), non hai un TTY decente, e in bocca al lupo se devi fare debug dei problemi di rete in modo interattivo.&lt;/p&gt;&#xA;&lt;p&gt;Non volevo un hack raffazzonato. Volevo un ambiente vero. Volevo &lt;code&gt;init&lt;/code&gt;, &lt;code&gt;getty&lt;/code&gt;, &lt;code&gt;login&lt;/code&gt;, autenticazione PAM, e un chroot ZFS per la manutenzione &amp;ndash; per installare aggiornamenti.&lt;/p&gt;&#xA;&lt;p&gt;Ecco come ho costruito un unlocker remoto robusto per FreeBSD.&lt;/p&gt;&#xA;&lt;h2 id=&#34;il-problema-con-binsh-come-init&#34;&gt;Il problema con /bin/sh come Init&lt;/h2&gt;&#xA;&lt;p&gt;L&amp;rsquo;approccio ingenuo è compilare un ramdisk minuscolo, ficcarci dentro un binario sh statico, e dire al loader di eseguirlo come PID 1.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# Questo crea incubi&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cat &amp;gt; /sbin/init &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;lt;&amp;lt;EOF&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;#!/bin/sh&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;/sbin/dropbear&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;exec /bin/sh&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;EOF&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Perché fallisce?&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
