Al momento stai visualizzando Home Assistant: SSD con TRIM su Raspberry Pi – la guida definitiva con procedura ufficiale!

Home Assistant: SSD con TRIM su Raspberry Pi – la guida definitiva con procedura ufficiale!

Esistono già diverse guide per spostare il contenuto della MicroSD contenente Home Assistant OS (ex Hassio) su SSD facendo effettuare il boot del Raspberry Pi da tale supporto di memorizzazione. Questa è invece una guida diversa, seguendo le linee guida di ciò che è consigliato ufficialmente dalla release 1.0 (o 2020.12.x) con l’aggiunta dell’attivazione della funzionalità di TRIM.

Se per Raspberry Pi 3 la possibilità di boot da SSD c’era già da tempo, per Raspberry Pi 4 è nata da non molto e supportata non ufficialmente con l’uscita delle versioni 5.x del sistema operativo.

Con l’uscita della versione 5.8 del sistema operativo di Home Assistant, poi, è stato dato supporto ufficiale a tale modalità.

Quello che molti non sanno, invece, è che gli sviluppatori di Home Assistant sconsigliano di effettuare il boot da SSD e consigliano invece un altro approccio, che personalmente cercavo di ottenere da tempo senza successo e che ritengo molto migliore.

Tale approccio prevede infatti di lasciare il sistema operativo (HassOS) ed il boot nella scheda MicroSD in partizione read only (o quasi), e di spostare la partizione dati contenente Home Assistant stesso, i file yaml, il database, i log e gli add-on, su disco esterno (non necessariamente un SSD), ovvero dove avvengono tutte le scritture frequenti.

Data-Disk preview

Perchè il boot da SD ed i dati su SSD e non tutto su SSD?

La prima obiezione che generalmente leggo a questo approccio è questa: “Ma come? La MicroSD è fragile, preferisco mettere tutto su SSD!“.
Ma non è proprio così. La MicroSD è fragile se ci si scrive in continuazione, non è pensata per essere usata così. Questo non significa che sia fragile nell’utilizzo in lettura. Ce n’è molto probabilmente una nel tuo telefono Android, l’hai mai dovuta buttare? Fintanto che ci si legge e non si scrive ogni secondo (come fa Home Assistant senza modificarne la configurazione) la MicroSD è un supporto di memorizzazione molto sicuro.

La seconda obiezione è circa così: “Eh ma la SD è più lenta e poi perchè tenere due unità complicando le cose, preferisco tenere tutto insieme sull’SSD e fare il boot da lì, così elimino del tutto l’SD“.
Che spostare tutto su SSD renda il boot leggermente più veloce è vero, l’SSD è più rapido della MicroSD. Però il boot da SSD rende il processo di avvio molto più fragile, come ci ricordano gli sviluppatori nelle FAQ.
Il boot da MicroSD rappresenta il metodo più semplice (e quindi con problemi meno probabili) e sicuro per effettuare l’avvio del Raspberry Pi in quanto supportato dal bootloader out of the box.
Il boot da SSD, invece, è un processo in più passaggi dove più cose possono andare storte.
Se cercate nel gruppo Facebook Home Assistant Italia troverete parecchie richieste e commenti di utenti che lamentano instabilità al boot da SSD, spesso di legge ad esempio che al riavvio si pianti tutto e per riuscire ad effettuare il boot è necessario togliere tensione al Raspberry Pi e ridarla. Immaginate di essere fuori casa quando ciò accade…

Ultimo ma non per importanza: mantenere due partizioni su due media differenti per l’avvio (boot e SO) e per scrivere dati frequenti (db, log e add-on) è una ottima e sana idea. Continuare a scrivere nella stessa partizione del SO può portare, in caso di malfunzionamento o di blackout, alla corruzione del file system (seppur ext4 sia piuttosto robusto), corrompendo anche parte del sistema operativo, rischiando di renderlo non più avviabile. Concentrando le scritture su SSD, invece, al massimo si potrà corrompere quest’ultimo e non il SO o il boot, che risulta quindi meglio protetto.

Requisiti hardware

Bando alle ciance e passiamo all’hardware necessario per poter procedere.

Come prima cosa bisogna avere a disposizione un disco esterno in cui spostare la partizione dati.
Come tipologia di disco va bene tutto quel che viene visto da Linux, compresi Hard Disk meccanici o pendrive. Mi sento però di sconsigliare tali supporti in favore di un più moderno SSD, per velocità, consumo e occupazione di spazio senza pari. (e visto che attiveremo il TRIM anche la durata verrà allungata)

Requisito fondamentale è che il tuo disco esterno sia di capienza uguale o superiore a quella della MicroSD (o meglio della partizione in essa contenuta).

Per poter attivare il TRIM al termine di questa guida fai anche attenzione che tale comando sia supportato sia dall’SSD che dal controller che sceglierai.

Hardware testato e funzionante con TRIM

Per facilitarti il compito ho raccolto i controller e gli SSD che sono stati verificati come funzionanti (o che lo riportino esplicitamente nelle caratteristiche), con la migliore offerta Amazon a disposizione di click. Purtroppo il controller che ho usato io non supporta più TRIM. L’ho dovuto quindi rimuovere dall’elenco dell’hardware consigliato. Se anche tu hai verificato di persona un controller e/o un SSD che funzionano con TRIM ti prego di non esitare a comunicarmi il modello preciso nei commenti sotto o compilando il form dei contatti, così che io possa aggiungerli all’elenco e aiutare gli altri ad orientarsi.
Fai attenzione al formato (SATA, mSATA, M2) ed alla compatibilità, ad esempio i controller Geekworm riportati sono compatibili solo con Raspberry Pi 4.

Nell’elenco trovi diversi dischi mSata ma nessun controller mSata. Questo perchè il controller Geekworm X857 che ho usato io (mSata) è stato rimosso dall’elenco in quanto non supporta più TRIM nelle sue versioni più recenti e non sono a conoscenza di un altro controller mSata compatibile TRIM. Ho voluto lasciare i dischi nel caso in cui qualcuno trovi un controller per tale formato…

Se non vuoi sbagliare ti consiglio controller UGreen e disco a scelta tra i SATA. La soluzione al momento più ordinata (ma cara!!!), invece, è il case Aragon One M.2 e un disco M.2 SATA.
Miglior compromesso comodità/ordine è invece il controller ORICO con disco M.2 SATA interno.

Controller compatibili con TRIM

SSD mSATA 60 / 64 GB
SSD mSATA 120 / 128 GB
SSD mSATA 240 / 250 GB
SSD mSATA 480 / 500 / 512 GB
SSD mSATA 1 TB
SSD SATA varie dimensioni
SSD M.2 SATA varie dimensioni

ATTENZIONE! Se sopra non vedi i link Amazon sopra, disattiva per favore il plug-in che blocca la pubblicità su questo sito! I più diffusi sono uBlock e AdBlocker, non troverai pubblicità invasiva qui ma mi aiuterai, acquistando dalle offerte Amazon che troverai solo dove inerente al tema trattato, a pagare i costi di hosting per mantenere vivo questo sito. A te costerà la stessa cifra ma aiuterai me a mantenere questo progetto che spero sia utile a tutti.

Note importanti riguardo l’hardware

E’ fondamentale aggiornare il firmware degli SSD e dei controller all’ultima versione, verificando se esistono versioni più aggiornate dal sito del produttore.
In particolare i controller Sabrent vengano spesso consegnati con una versione non aggiornata del firmware che non permette il funzionamento del TRIM. L’ultimo firmware ed il tool di aggiornamento si può trovare qui: Sabrent downloads, alla data del 14/05/2021 il tool è disponibile direttamente a questo link ed è compatibile con tutti i loro controller.
Vi consiglio, qualora voleste usare un controller Sabrent, di provarlo subito così da effettuare il reso qualora non funzionasse correttamente. Un’alternativa che fino ad ora è arrivata già pronta e non ha mai dato problemi è il controller UGREEN (presente nella lista sopra).

Per quanto riguarda il controller Argon One M.2, che mantiene compatto ed elegante il nostro Raspberry, mi è stato segnalato da Giacomo Trentacosti (grazie!) che è compatibile con TRIM. A seconda del controller che monta può essere necessario aggiornare il firmware con uno non ufficiale (ma che pare funzionare bene) per fargli supportare TRIM:

  • Se il controller è ASM1153E allora va aggiornato il firmware con quello non ufficiale che supporta TRIM (a vostro rischio e pericolo)
  • Se invece il controller è ASM235CM TRIM è già supportato out of the box senza cambiare firmware
Il mio Raspberry Pi4
Il mio Raspberry Pi4 si presenta così, visibile sotto il controller SSD Geekworm. Se ti interessa il dissipatore è il GeekPi Ice Tower con ventola sostituita da una Noctua.

Preparazione del sistema

C'è ora un metodo più semplice da UI!
Nelle ultime versioni di Home Assistant, senza che venisse documentato nel changelog (quindi non so da che versione è presente…) c’è la possibilità di spostare la partizione dati direttamente dall’interfaccia web! Se vuoi procedere in questo modo (te lo consiglio) vai in Impostazioni -> Sistema -> Archiviazione, clicca sui tre puntini in alto a destra e clicca sulla voce di menu Sposta il disco dati.

A questo punto apparirà la dialog in cui potrai scegliere su quale disco spostare la partizione:

Scegli il disco e premi SPOSTA, armandoti di pazienza in quanto l’operazione può durare diversi minuti.

L’operazione che avverrà “dietro alle quinte” sarà la stessa descritta sotto ma senza la necessità di utilizzare la shell di sistema.
Una volta terminata l’operazione riprendi dal capitolo Sistema ripartito!

Ok, partiamo. Prima di tutto sarà necessario accedere alla shell di sistema di Home Assistant. Ci sono due modi:

  • accedere tramite la console (uscita HDMI e tastiera USB)
  • abilitare ed utilizzare la porta SSH 22222

La scarna pagina di istruzioni di HassOS consiglia di effettuare le operazioni tramite console così da vedere il progresso delle operazioni durante lo spostamento ma essendo che non avevo un adattatore micro HDMI ho usato la seconda, molto più pratica anche per operazioni future anche da remoto.

Rimando all’articolo dedicato con le istruzioni precise per aprire la porta SSH 22222, se non lo hai ancora fatto questo è il momento. Al termine riprendi da qui.

Ehi, non fare il furbo! Se non riesci ad attivare la porta SSH dev 22222 non pensare che usando la porta 22 esposta da uno degli Add-on SSH sia la stessa cosa! Da tali addon sei dentro al container dell’addon e non hai tutti i comandi. Per esempio lsblk restituisce command not found: lsblk. O usi la porta 22222 oppure usi la console fisica (uscita hdmi e tastiera usb)

Collegato via SSH o Putty al tuo Raspberry Pi sulla porta 22222 (o tramite la console fisica. In tal caso vedrai un prompt ha> per uscire dal quale digita semplicemente login e premi invio) e vedrai una schermata come questa:

Schermata di accesso SSH alla porta 22222

Benvenuto nella shell del sistema operativo di Home Assistant.
Prima di collegare il controller SATA alla porta USB 3 del Raspberry Pi dobbiamo individuare l’indirizzo USB del controller (servirà più avanti). Per farlo useremo il comando lsusb con e senza controller SSD collegato, così da individuare quale sia il suo indirizzo.

Senza controller diamo quindi:

# lsusb

Appuntiamoci i valori, colleghiamo il controller, riavviamo l’OS (Configurazioni -> Componenti aggiuntivi, backup e supervisor -> Sistema -> Riavvia host) e ridiamo lo stesso comando:

Analizzando quel che cambia è facile individuare l’indirizzo del mio controller sata: 174c:0857. Tienilo appuntato per dopo.

Verifichiamo ora che il disco venga visto correttamente:

# lsblk

Il disco è visibile ed è sda (la prima voce in alto). Si vede anche la partizione sda1 che non ha importanza (può anche non esserci, poi verrebbe automaticamente cancellata e ricreata).

Vediamo che il mount point /mnt/data (dati e Home Assistant) è impostata su MicroSD (mmcblk0pX).

Prima di continuare consiglio vivamente un backup per poter tornare indietro in caso di problemi!

E’ sufficiente un backup completo (salvato al di fuori della SD!!!) ma ho voluto far di più. Ho estratto la MicroSD ed inserita in un lettore USB per PC, usando il tool free HDD Raw Copy Tool ho fatto una copia di backup della intera SD, mettendomi quindi in grado di ripristinarla identica a come era in caso di disastri… (questa operazione potete rifarla ogni volta che volete ripararvi dalla possibilità che un aggiornamento di HassOS mandi KO il sistema)

Pronti? Via!

Ora che tutto è pronto e verificato possiamo effettuare la fatidica istruzione:

# ha os datadisk move /dev/sda
Nella versione 6.4 del sistema operativo rilasciata il 9 settembre 2021 è stato rinominato il comando precedentemente noto come datactl move. Gli screenshot fanno ancora riferimento a tale comando e potrebbero essere differenti ma concettualmente rimane tutto uguale.

Dove chiaramente “sda” è il disco su cui volete spostare la partizione dati (e da questo momento non andrà MAI scollegato dal Raspberry).

Se l’output è simile a quello riportato l’operazione è andata a buon fine, l’SSD è stato preparato con una partizione adeguata e lo spostamento è stato schedulato al prossimo riavvio.

Non resta quindi che riavviare il Raspberry Pi, io l’ho fatto dall’interfaccia utente in Supervisor -> Sistema -> Riavvia host.

Preparati ad attendere del tempo nel’ordine di minuti (anche decine di minuti). Non interrompere per nessun motivo questo processo, potrebbe danneggiare irreparabilmente la partizione dati.

Questo è il momento in cui avere la console davanti aiuta a capire cosa stia avvenendo, nel caso di SSH sulla porta 22222, invece, non resta che attendere che il sistema torni disponibile.

Sistema ripartito

Una volta ripartito il sistema anche guardando l’occupazione da Configurazioni -> Componenti aggiuntivi, backup e supervisor -> Sistema -> Spazio utilizzato (o sensori che avete nella vostra configurazione e mostrati nell’interfaccia) dovresti accorgerti che lo spazio a disposizione è diverso (lasciando il mouse, se usi PC; sulla percentuale o sulla barra apparirà la dimensione dello spazio occupato e totale).
Fino a poco fa la partizione non veniva invece ridimensionata automaticamente e lo spazio risultante era lo stesso che appariva con la MicroSD. Se così fosse non ti preoccupare, la soluzione arriva più in basso.
Ma prima di risolvere verifichiamo che l’operazione sia andata a buon fine:

# df -h | grep sda1

I mount point, in particolare /mnt/data, su /dev/sda1 dimostrano l’avvenuta operazione! I nostri dati sono ora su SSD!

Hey ma… come mai riporta una dimensione di 28,6GB? Il disco è da 120GB… Perchè il filesystem è stato spostato così com’era nella partizione della SD.

ATTENZIONE: sembra che con la versione dell’OS 5.10 sia stata introdotta una modifica inserendo systemd-growfs al posto di resize2fs descritto di seguito. Dal changelog del commit sembra che questo causerà il ridimensionamento automatico, rendendo inutile la sezione che segue. Se così te ne accorgerai perchè il risultato di df esposto sopra sarà di dimensione corretta, in relazione alla dimensione del tuo SSD. In tal caso passa direttamente alla prossima sezione “Abilitare il TRIM

Per risolvere basterà il seguente comando:

# resize2fs /dev/sda1

L’operazione dovrebbe durare poco e per verificare che sia stato eseguito correttamente ripetiamo il comando precedente:

# df -h | grep sda1

Ecco, ora ci siamo! Una partizione di 117,3GB.

Ci potremmo fermare qui se il disco che stiamo usando fosse un disco meccanico. Ma essendo un SSD c’è ancora una questione molto importante da affrontare…

Abilitare il TRIM!

Questa è una funzione fondamentale che non ho letto in alcuna altra guida che parla di Home Assistant e SSD. Perchè è importante? Perchè un SSD senza TRIM rischia di durare molto meno del previsto ed essere molto meno performante! Se non sai di cosa stiamo parlando e perchè TRIM sia molto importante ti rimando a questo articolo.

ATTENZIONE: alla pagina di Jeff Geerling, pioniere del TRIM su Raspberry, è riportato che alcuni SSD/firmware non gestiscono correttamente la funzione TRIM. Se quindi attivi il TRIM e ti trovi in quella condizione, stando a quanto riportato, nel migliore dei casi si corrompe il contenuto del disco, nel peggiore si corrompe il firmware dell’SSD stesso (e potrai quindi buttarlo o usarlo come bellissimo fermacarte). Sembra incredibile che possa avvenire questo e anche se credo sia un caso molto raro, così è scritto.
Se però usi l’esatto hardware che ho consigliato puoi dormire sonni tranquilli: nel momento in cui scrivo ho il TRIM abilitato da circa tre settimane ed ho effettuato diversi trim sia automatici che manuali senza alcun problema.
Se decidi di procedere lo fai comunque a tuo rischio e pericolo, in ogni caso non potrò essere ritenuto responsabile per dati persi o un disco non più funzionante.
Dovesse accadere dopo poco dall’acquisto su Amazon potresti sempre avvalerti del reso (è comunque un comportamento errato del disco no?)

Come prima cosa verifichiamo se il tuo SSD ha il TRIM attivato (sostituisci eventualmente sda con sdb o il nome del disco assegnato da Linux nel tuo caso):

# lsblk --discard /dev/sda

Nello screenshot sopra i parametri DISC-GRAN e DISC-MAX sono a 0, indicando che TRIM non è attivo. Se per qualche motivo nel tuo caso rilevassi questi parametri maggiori di zero fermati qui, significa che TRIM è già attivo. In tal caso salta direttamente al test per verificare che funzioni davvero. Se invece i tuoi valori sono zero, come sopra, prosegui pure.

ATTENZIONE! Prosegui solo se sei sicuro che sia il controller che il tuo SSD supportino il comando TRIM! (se usi l’hardware che ho riportato con firmware aggiornato prosegui tranquillo)

Ti ricordi l’ID del controller SATA che ti ho fatto prendere prima? Ecco, serve ora!

Creeremo un file per aggiungere una regola a udev, così da abilitare il TRIM per l’SSD di quel controller specifico:

# vi /etc/udev/rules.d/50-usb-ssd-trim.rules

Si lo so, anch’io odio vi… Ma è l’unico editor di testo presente in HassOS, quindi segui esattamente quel che scrivo e ne sarai fuori in pochi secondi 🙂

Premi il tasto i (la “i” sta per insert) così da abilitare la modalità di inserimento e digita il seguente testo, o meglio usa il copia e incolla avendo cura di sostituire il valore 174c con il tuo valore prima dei due punti individuato precedentemente con lsusb e 0857 con il tuo valore dopo i due punti. Se ad esempio avessi avuto 1234:5678 al posto di 174c metterai 1234 ed al posto di 0857 metterai 5678.

ACTION=="add|change", ATTRS{idVendor}=="174c", ATTRS{idProduct}=="0857", SUBSYSTEM=="scsi_disk", ATTR{provisioning_mode}="unmap"

Ora premi ESC per uscire dalla modalità di inserimento e digita il comando :wq e INVIO per uscire salvando il file.

Riavvia il sistema operativo (Configurazioni -> Componenti aggiuntivi, backup e supervisor -> Sistema -> Riavvia host), ricollegati e verifica che il supporto a TRIM sia stato attivato per il controller con il comando dato precedentemente:

# lsblk --discard /dev/sda

Se il risultato è simile a questo (anche con numeri differenti ma diversi da zero) il tuo SSD ha ora la funzionalità TRIM attiva!

Facciamo un primo TRIM manuale sul disco per verificare che funzioni correttamente in modo da intercettare eventuali errori del disco (sarebbe peggio se accadesse mentre sei fuori casa in seguito, giusto?)
Per farlo avvia il seguente comando (non interrompere l’esecuzione, può durare diversi secondi):

# fstrim -a -v

Il risultato che ci aspettiamo è qualcosa del genere:

L’unica differenza che dovresti vedere è che la quantità di spazio processato in /mnt/data dovrebbe corrispondere circa allo spazio libero nell’intero disco, in quanto alla prima attivazione risulta tutto ancora da cancellare.
Se il sistema continua a funzionare, magari anche dopo un reboot per provare un reload completo dei file, complimenti: TRIM funziona correttamente sul tuo controller / SSD!

Affinchè TRIM venga fatto regolarmente non c’è bisogno di fare altro in quanto HassOS usa il servizio fstrim.service richiamato dal servizio fstrim.timer che una volta alla settimana esegue il TRIM su tutti i dischi collegati che supportano tale comando (compresa la MicroSD).

Se vuoi vedere quando verrà eseguito il TRIM puoi usare il seguente comando:

# systemctl status fstrim.timer

Da cui è evidente che il servizio è attivo, e sarà eseguito a mezzanotte, 7 minuti e 51 secondi (ora UTC) fra tre giorni.

Se invece tra un po’ di tempo vorrai vedere quando è stato eseguito l’ultima volta e l’esito delle operazioni di TRIM effettuate, usa il seguente comando:

# systemctl status fstrim.service

da cui vediamo che l’ultima esecuzione è avvenuta il 4 Gennaio alle ore 1:13:41 e possiamo vedere che nella partizione del mount point /mnt/data (il nostro SSD…) sono stati eliminati 2 GB di dati non utilizzati.

Conclusione

Se sei riuscito a completare la procedura ti sei messo nella miglior condizione possibile, consigliata e supportata dagli sviluppatori di Home Assistant e di fatto la più stabile possibile. Potrai verificare come la velocità di riavvio di Home Assistant e di altre operazioni sia migliorata ma soprattutto i dati sono ora al sicuro, non stressando la MicroSD che avrà modo da ora in poi di riposarsi e non venire massacrata dalle scritture di DB e LOG.

A tal proposito consiglio di configurare adeguatamente il componente recorder, in particolare di includere solo le entità che davvero ci interessano e di impostare questi parametri:

recorder:
  purge_keep_days: 3
  commit_interval: 60

In questo modo il database interno SQLITE conterrà solo gli ultimi 3 giorni (e non dirmi che vuoi più dati lì dentro, sei mai andato a cercarti dati più vecchi…? Per questa esigenza ti suggerisco di usare InfluxDB) e soprattutto il commit nel database avverrà ogni 60 secondi, ovvero le informazioni da scrivere saranno accumulate e scritte fisicamente nel file una volta al minuto. Così facendo sollecitiamo molto meno il nostro SSD, le cui scritture frequenti non sono certo salutari, nonostante il TRIM.

Ti è piaciuto questo contenuto?

Se ti è stato utile l’articolo che hai letto potresti pensare di darmi una mano offrendomi qualche caffè!
Oltre ad aiutarmi a star sveglio nelle nottate di ricerche e scrittura mi daresti una mano concreta nel sostenere le spese del server web, incentivandomi a produrre altri contenuti di qualità.

Puoi usare Paypal:

Oppure Buymeacoffee:

Henrik Sozzi

Sono un analista programmatore per lavoro e per passione. Amo la domotica, la stampa 3D e la tecnologia in generale. Mastodon: @pixel

Questo articolo ha 253 commenti

  1. Masarati Lorenzo

    Bellissima guida!
    ho solo un piccolo problema, ho già (come probabimlente ricordi) implementato i data su ssd, come faccio a riconoscere il device, dal momento che non posso scollegarlo?

    1. hsozzi

      Grazie! Spero di fare una cosa utile ai più trattando argomenti normalmente non trattati. Ottima domanda la tua: secondo me potresti fare così: lsusb e ti segni gli id. Poi fai shutdown e quando spento (io aspetto che non risponda più al ping più un po’, se usi console meglio) stacchi l’usb del controller e riavvii. L’OS dovrebbe partire ma HA con UI web no. Fai l’altro lsusb per capire quale manca e lo spegni con shutdown dalla Shell. Riattacchi e riaccendi.
      Fammi sapere se funziona!

      1. nero

        I had the same situation (already moved everything on to the SSD). With “dmesg | grep usb” you can have a look at the USB devices with more attributes:
        […] usb X-X: new SuperSpeed Gen 1 USB device number 2 using xhci_hcd
        […] usb X-X: New USB device found, idVendor=XYZ, idProduct=XYZ, bcdDevice= 1.00
        […] usb X-X: New USB device strings: Mfr=2, Product=3, SerialNumber=1
        […] usb X-X: Product: Your SSD Model

        The idVendor and idProduct are the important numbers.

        1. Henrik Sozzi

          Thank you very much, I’ll add that information in a review of the guide. Down in the comments I’ve found another way of finding those information: cat /sys/kernel/debug/usb/devices | more
          Good we have more way to do it 🙂

  2. Masarati Lorenzo

    #probabilmente

    1. Masarati Lorenzo

      Ho fatto shotdown, messo la vecchia SD (che è un salvavita) fatto lsusb, shotdown dinuovo e sto procedendo con l’abilitazione del TRIM.

      1. Ivan

        Ottima guida, appena mi arriva il raspberry lo configuro come descritto. Ho già un SSD che dalle recensioni supporta il TRIM e ho un case della Sabrent come quello che hai postato, sempre nelle recensioni ho letto che la funzione TRIM con usb non funziona è vero?

        1. Henrik Sozzi

          Ciao, grazie! Ho letto anch’io questo commenti. Tieni in considerazione che anche il mio controller Geekworm è di fatto USB e il TRIM va che è una meraviglia. Il Sabrent mi è stato segnalato come funzionante con TRIM ma non l’ho testato personalmente. Fai comunque un backup/snapshot prima di procedere 😉

          1. ElleDi

            Ciao, seguendo la tua guida è da più di un mese che mi funzionava alla grande ma oggi, deve essere successo qualcosa e non riesco più a raggiungere hassos sia in locale che in remoto (unable to connect…) e vorrei fare una reinstallazione daccapo tanto ho dei backup salvati, ma mi chiedevo: dovrò rifare di nuovo tutta la procedura di spostamento su ssd o basta che faccio l’installazione, poi un ripristino di un backup e mi ritorna come prima? Grazie, di nuovo complimenti e ciao

          2. Henrik Sozzi

            Ciao, grazie per i complimenti! 🙂 Dipende perché non funziona più. Se è solo l’SD (che ricordo ha su solo boot e OS) basta creare una SD con Balena, fare il boot e sei a posto perchè Home Assistant OS all’avvio riconosce che i dati erano su SSD e da lì li carica da solo. In questo caso dovrai ripristinare solo SSH 22222 (se non avevi fatto tutto da console) e TRIM.
            Se invece si è corrotto l’SSD allora io farei così: riavvia con l’SSD staccato, riattacca l’SSD, rifai datactl move (che ricrea la partizione sull’SSD cancellandola) e poi ripristini il backup senza altro fare.
            Se entrambi sono corrotti allora devi rifare tutto.
            Ma poniti la domanda del perchè quel che si è corrotto lo ha fatto, magari è il caso di cambiare l’SD o SSD.

          3. ElleDi

            Ciao credo si sia corrotto per un’installazione fatta da me e nn fatta bene (graphana + dbase) cmq siccome ho poche applicazioni ho pensato di rifare tutto daccapo e di mettere raspbian+docker+hassos , la procedura da seguire è la stessa o cambia visto che voglio mettere HA in un container docker? ciao ed ancora complimenti

          4. Henrik Sozzi

            Se installi Raspbian cambiano parecchie cose, tra cui l’attivazione di TRIM che non so come venga fatta (potrebbe essere che te lo trovi attivato out of the box). Per quanto riguarda datactl move non esiste in quel contesto in quanto si suppone che tu sappia farlo manualmente posizionando i container nel percorso che vuoi tu. La gestione sistemistica dell’host a quel punto spetta a te.

          5. ElleDi

            Ok grazie della disponibilità.

  3. Masarati Lorenzo

    Ho fatto shotdown, messo la vecchia SD (che è un salvavita) fatto lsusb, shotdown dinuovo e sto procedendo con l’abilitazione del TRIM.

    1. hsozzi

      Perfetto, non sapevo avessi una vecchia SD. Ottimo!

  4. Giancarlo

    La board di espansione non è attualmente disponibile su Amazon, hai per caso qualche consiglio su dove comprarla? Grazie anticipatamente.

    1. hsozzi

      Purtroppo non saprei. Ho cercato su ebay e altri rivenditori ma non ho trovato un granché. So che si può avere da Aliexpress ma i tempi sono lunghi… Proverò a cercare nuovamente, se salta fuori qualcosa avviso.

  5. Donato

    Ciao Henrik, ottima guida, complimenti !…ho però un problema, come Lorenzo, implementato i data su SSD e non ho una SD con sistema operativo..ho provato a staccare l’SSD ma il sistema, solo con la SD non si avvia….Hai qualche altro consiglio per riuscire ad estrapolare quel dato ? Grazie….

    1. hsozzi

      Grazie! Ci ho studiato su un po’ e la migliore possibilità che ho trovato è la seguente (poi aggiornerò la guida inserendo questa possibilità). Digita il seguente comando:
      cat /sys/kernel/debug/usb/devices | more
      Vedrai a schermo tutti i dettagli che il kernel ha scovato di ogni dispositivo USB. Nel mio caso l’output relativo al controller USB (che è un Geekworm X857) è il seguente:

      T: Bus=02 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 2 Spd=5000 MxCh= 0
      D: Ver= 3.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs= 1
      P: Vendor=174c ProdID=0857 Rev= 1.00
      S: Manufacturer=SupTronics
      S: Product=X857
      S: SerialNumber=202007000016
      C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA
      I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=uas
      E: Ad=81(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      E: Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      I:* If#= 0 Alt= 1 #EPs= 4 Cls=08(stor.) Sub=06 Prot=62 Driver=uas
      E: Ad=81(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      E: Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      E: Ad=83(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      E: Ad=04(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms

      Non c’è una regola ma nel mio caso ho capito che è il mio controller per via del “Product=X857”.
      Una volta che hai individuato il device trovi i due identificativi che lsusb esprime come xxxx:yyyy in Vendor=xxxx e ProdID=yyyy.
      Fammi sapere se riesci ad identificarlo. E ti ricordo di verificare che il tuo device supporti TRIM, pena perdita di dati o addirittura di SSD… Fai comunque un backup (uno snapshot).

    1. Donato

      …nel frattempo ho deciso di proseguire (rischiando un po’) e sembra che tutto il procedimento sia andato a buon fine..ho verificato con i vari comandi e i risultati confermano l’avvenuta attivazione della funzione TRIM….ora controllerò nei prossimi giorni se l’attivazione automatica del servizio avrà portato frutti interessanti ! 😉 ..grazie di nuovo per la tua disponibilità.

      1. hsozzi

        Prima che riuscissi a trovare il tempo di risponderti 🙂 Puoi anche effettuare dei trim a mano usando il seguente comando: fstrim -v -a così se dovessi aver problemi lo scopri subito senza bisogno di aspettare (caso piuttosto remoto cmq…)

    2. hsozzi

      Ciao, ho provato a cercare ma è davvero difficile avere un’informazione tantopiù che sia affidabile. Di solito si usa hdparm per questo ma in HassOS da diversi errori Invalid Argument e non ci da l’informazione sul TRIM… Ho provato a vedere il tuo disco e non trovo menzione nemmeno io. Però il testo nella descrizione Amazon fa ben sperare: Vita più lunga: con una tecnologia che monitora costantemente la salute dell’unità e diffonde l’usura attraverso la memoria. che secondo me si traduce nel supporto a TRIM, altrimenti come fa a diffondere l’usura se non sa dove ci sono celle vuote…?
      E’ anche vero che gli SSD moderni lo supportano pressoché tutti. Personalmente se comprassi un SSD oggi che non supporta il TRIM farei il reso.

  6. Donato

    Ok, ho provato a lanciare il comando ” fstrim -v -a “….è un procedimento lungo oppure è questione di qualche minuto ?

    1. hsozzi

      Dipende da quanta superficie ha da cancellare. Ma normalmente è questione di pochi secondi, a vole qualche decina (potrebbe comunque perdurare anche per minuti nel peggiore dei casi).

      1. Donato

        C’e’ un comando che posso dare per avere un risultato del comando fstrim -v -a ?
        Quello di cui parlavi sopra “systemctl status fstrim.service” dovrebbe solo dare un’esito del servizio eseguito, giusto ?

        1. hsozzi

          No, fstrim effettua il TRIM del disco al momento quindi ti lascia attendere finché non ha terminato l’operazione. Una volta terminata ti mostra quanta superficie non utilizzata ha cancellato di flash, direttamente nella shell da cui l’hai chiamato (questo perchè metti l’opzione -v, altrimenti non mostrerebbe nulla)
          fstrim.service è invece il servizio che automaticamente una volta alla settimana effettua il trim e il comando di cui parli ti mostra cosa ha fatto il comando schedulato, nulla ha a che fare con il comando di cui sopra che effettua un trim sul momento.

          1. Donato

            Ok, questo è il risultato del comando:
            # fstrim -v -a
            /var: 30.9 MiB (32354304 bytes) trimmed on /dev/zram1
            /tmp: 15.4 MiB (16162816 bytes) trimmed on /dev/zram2
            /mnt/data: 198 GiB (212582473728 bytes) trimmed on /dev/sda1
            /mnt/boot: 28.1 MiB (29435904 bytes) trimmed on /dev/mmcblk0p1
            /mnt/overlay: 86.2 MiB (90361856 bytes) trimmed on /dev/mmcblk0p7
            #

          2. Henrik Sozzi

            Direi che è andato bene 🙂 Il primo trim riguarda tutta la superficie libera, nel tuo caso 198GB. Se continua a funzionare tutto è andata 😉 Ciao

  7. Konstantinos

    Thank you a lot for your detailed guide.
    I enter vi /etc/udev/rules.d/50-usb-ssd-trim.rules, edit the proper contents, but wq is doing nothing:
    I press w, and when I press q says ‘q’ is not implemented, therefore the file isn’t saved
    What I am doing wrong?
    Thank you in advance

    1. Henrik Sozzi

      You forgot the semicolon : before wq 😁 Read carefully or search basic commands of vi in case of doubt.

  8. Konstantinos

    Thank you, now it works. I saw the colon: , but I took it as a part of the previous sentence.

    1. Henrik Sozzi

      You’re welcome! I’ll see if I can clarify by more graphically separating commands from text. Was the Google translation understandable…? 😁

  9. Corrado

    Intanto ti voglio ringraziare per la splendida guida e siccome questa cosa mi girava in testa da un pezzo senza mai capire come fare ho pensato di seguire la tua procedura che pare sia andata a buon fine.

    Utilizzo un raspberry pi 3B+ con SSD Crucial BX500 da 120GB, come adattatore avevo gia’ attivo e collegato un Sabrent SATA da USB 3.0 a SSD con supporto UASP che leggendo in rete pare che supportasse il TRIM dopo aver aggiornato il suo Fw, anche se c’erano pareri discordanti .

    Questi sono i dati dell’adattatore:
    T: Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#= 4 Spd=480 MxCh= 0
    D: Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
    P: Vendor=152d ProdID=1561 Rev= 2.14
    S: Manufacturer=SABRENT
    S: Product=SABRENT
    S: SerialNumber=DB9876543214E
    C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=500mA
    I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
    E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I: If#= 0 Alt= 1 #EPs= 4 Cls=08(stor.) Sub=06 Prot=62 Driver=usb-storage
    E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms

    e questo l’esito del comando dopo la tua procedura,

    # fstrim -v -a
    /mnt/data: 103.2 GiB (110862053376 bytes) trimmed on /dev/sda1
    /var: 30.9 MiB (32354304 bytes) trimmed on /dev/zram1
    /tmp: 15.4 MiB (16183296 bytes) trimmed on /dev/zram2
    /mnt/overlay: 86.7 MiB (90886144 bytes) trimmed on /dev/mmcblk0p7
    /mnt/boot: 28 MiB (29343744 bytes) trimmed on /dev/mmcblk0p1

    Sembra tutto ok. Grazie

    1. Henrik Sozzi

      Ottimo, sono contento che funzioni! Da quel che indica fstrim sembra andato tutto bene, è corretto che il primo trim sia sull’intera superficie libera del disco. E se non ha smesso di funzionare significa che funziona! …e grazie mille per i dettagli forniti! Stavo giusto pensando di aggiungere un riquadro con l’hardware sicuramente funzionante…

    2. Pasquale

      ciao Corrado, ho anche io un raspberry pi 3B+, visto che la tua configurazione è funzionante mi diresti per cortesia se il modello di controller che hai è tra quelli consigliati?
      Grazie

  10. Emanuele

    ho provato a seguire la guida avendo hassio, lsblk non lo accetta come comando dal menù hardware vedo :

    disk:
    – /dev/mmcblk0
    – /dev/mmcblk0p1
    – /dev/mmcblk0p2
    – /dev/mmcblk0p3
    – /dev/mmcblk0p4
    – /dev/mmcblk0p5
    – /dev/mmcblk0p6
    – /dev/mmcblk0p7
    – /dev/mmcblk0p8

    devo quindi procedere a montare manualmente il disco?

    1. Henrik Sozzi

      lsblk non può non accettarlo, è incluso nell’OS. Con la elle, non con la I maiuscola! elle-esse-bi-elle-kappa. O non stai dando comandi tramite console o SSH 22222 (magari stai usando un addon SSH? Non va bene…) Quanto vedi nel menu hardware non fa testo, nemmeno io vedo il mio disco lì

  11. Emanuele

    Si sto usando ssh da addon , quindi può essere quello il problema?! il comando lo davo giusto lsblk ma non lo accettava mentre lsusb lo ha preso senza problemi allora seguo anche l’abilitazione ssh proposta vediamo se riesco a risolvere , grazie

  12. Emanuele

    si era esattamente quello il problema ssh da addon , ho seguito la guida come da te descritto, non ho dovuto fare nemmeno il resize ed è andato tutto liscio al primo colpo. Complimenti spero di poter leggere ancora molto sul tuo blog , sei chiaro e professionale.

  13. Luca

    Ciao, guida Fantastica complimenti, sono totalmente inesperto ma grazie alle tue istruzioni ho portato a termine tutto.. mi resta solo da configurare il recorder che non capisco dove devo inserire quella riga di comando.. mi puoi aiutare? Grazie ancora

    1. Henrik Sozzi

      Ciao, grazie mille!!! Per il recorder controlla sulla pagina della documentazione di Home Assistant che spiega come configurarlo.
      I parametri li puoi inserire nel tuo configuration.yaml, immaginando che non hai ancora diviso tale file in packages.

      1. Luca

        Ok grazie mille.. è solo un paio di settimane che ho iniziato questa avventura, piano piano arriverà anche il momento dei packages 😅..

  14. Vittore

    Grazie per la guida. Installato tutto e perfettamente. MMC per il boot, dati su SSD.
    Dopo qualche giorno, crash della MMC. Bene, mi dico, ora mi rifaccio la MMC con hassio e aggancio il disco USB ma come?
    Alla fine ho ripristinato da uno snapshot che avevo su google drive ma non sono felice 🙂
    Come posso riagganciare un disco SSD su una MMC nuova?

    1. Henrik Sozzi

      Caspita che sfortuna, mi spiace! Per riagganciare i dati su SSD non credo ci sia un modo. O meglio, probabilmente c’è ma non ho mai indagato in tale direzione. Ma visto che hai ripristinato lo snapshot puoi rifare la procedura della guida per spostare nuovamente i dati su disco esterno. Tutte le informazioni configurate rimangonono infatti nella SD. Cambiandola dovrai rifare i passaggi della guida.

  15. Matteo

    Ciao, grazie per la bella guida chiara e precisa, ho però una domanda, il sistema dovrebbe partire più velocemente? Ho usato un vecchio disco SSD che avevo ed è Terribilmente più lento( almeno 10 minuti in più per avere tutto attivo) hai qualche suggerimento o e’ normale?
    Grazie, Matteo

    1. Henrik Sozzi

      No, non è normale. L’avvio dell’OS dovrebbe essere più o meno uguale a prima. L’avvio di HA dovrebbe essere un po’ più veloce. Ma 10 minuti era il primo avvio? Perchè quello è normale, c’è il processo di spostamento dei dati al primo avvio.

      1. Matteo

        No, anche i riavvii successivi….

        1. Henrik Sozzi

          Hai controllato nello log del Supervisor e di HA? Se lì non trovo nulla controlla dmesg dalla 22222. Potrebbe essere trim che corrompe il disco non essendo supportato e viene fatto un fschk all’avvio… fstrim -a -v funziona senza errori?

          1. Matteo

            Devo dirti che dopo qualche riavvio sono tornato a 3 minuti per il solo riavvio di HA. Mi sembra ok. Poi da pc provo a controllare dmesg. Grazie

          2. Matteo

            ciao di nuovo ecco la risposta a fstrim

            # fstrim -a -v
            /var: 30.9 MiB (32354304 bytes) trimmed on /dev/zram1
            /tmp: 15.4 MiB (16183296 bytes) trimmed on /dev/zram2
            /mnt/overlay: 86.2 MiB (90361856 bytes) trimmed on /dev/mmcblk0p7
            /mnt/boot: 28.3 MiB (29644800 bytes) trimmed on /dev/mmcblk0p1

            Dovrebbe essere ok, giusto?
            Grazie di nuovo.
            Matteo

          3. Matteo

            Ultima info, ecco cosa viene con Lsblk
            # lsblk –discard /dev/sda
            NAME DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
            sda 0 0B 0B 0
            `-sda1 0 0B 0B 0
            #
            Grazie

          4. Henrik Sozzi

            Trim non attivo. Se hai riavviato dopo aver creato correttamente il file spiegato nella guida hai un controller o un SSD che non supportano trim. Puoi verificare se ci sono aggiornamenti firmware per uno e l’altro e esaurite queste opzioni rimane tenerli o cambiarli. Se li tieni disattiva trim eliminando il file.

  16. Matteo

    Scusa, ho ripostato il commento di prima 🙁

  17. Matteo

    Grazie Mille
    Matteo

  18. Matteo

    ce l’ho fatta!!!!! Non avevo salvato il file con vi !!!!!
    # lsblk –discard /dev/sda
    NAME DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
    sda 0 512B 4G 0
    `-sda1 0 512B 4G 0

    Direi che se potresti aggiungere Toshiba DTB310 (1TB)

    1. Henrik Sozzi

      1 TB di disco! Però!!! Hai verificato con un fstrim -a -v ?

  19. Matteo

    Si è un disco che non uso da tempo…(forse troppo ed è per questo che non supporta trim) mi devo rimangiare quello che ho detto, fstrim da errore

    # fstrim -a -v
    fstrim: /mnt/data: FITRIM ioctl failed: Input/output error
    /var: 0 B (0 bytes) trimmed on /dev/zram1
    /tmp: 0 B (0 bytes) trimmed on /dev/zram2
    /mnt/overlay: 0 B (0 bytes) trimmed on /dev/mmcblk0p7
    /mnt/boot: 28.3 MiB (29644800 bytes) trimmed on /dev/mmcblk0p1

    mi sa che alla fine non lo supporta…..
    Ma se volessi provare con un altro disco come devo fare? devi ripartire da un backup della SD (prima d usare disco SSD) o posso disattivare uso ssd e ripartire come da guida?

    Grazie ancora per il supporto!

    1. Henrik Sozzi

      Riparti dal backup della SD, attacchi l’altro SSD e riparti con la guida

      1. Matteo

        rifatto tutto con controller ugreen e disco lexar
        tutto ok
        Grazie per il supporto
        Matteo

        1. Henrik Sozzi

          Grandioso! 👍🏻 Potresti darmi modello del disco per l’elenco di compatibilità?
          Trim l’hai trovato già attivo oppure no?

  20. Mirko

    Ciao Henrik e grazie per l’ottima guida! Io ho avuto un grosso problema, nonostante abbia eseguito i passi alla lettera… Dopo aver eseguito il comando datactl per spostare i dati da SD a SSD, andato a buon fine, ho riavviato come indicato ma il RPi non è più ripartito, quindi Home Assistant non raggiungibile agli indirizzi locale o remoto, RPi non collegato alla LAN, praticamente morto. E’ necessario fare un’aggiornamento del firmware da Raspberry PI OS e anche del bootloader per attivare questa procedura? Non mi sembra sia presente tra i prerequisiti. Per fortuna ho vari backup da poter ripristinare, ma mi sembra strano che non abbia funzionato. Ho un RPi4. Grazie!

    1. Henrik Sozzi

      Ciao Mirko, mi spiace per quanto accaduto. Hai atteso del buon tempo? Al riavvio dopo il comando datactl move al riavvio avviene lo spostamento vero dei dati sul disco esterno. Tieni in considerazione che questa è la procedura ufficiale di Home Assistant per usare un SSD (lo dicono qua, per esempio: FAQ).
      Dici giusto comunque, per eseguire la procedura non è necessario aggiornare nulla sul Raspberry, aggiornare il bootloader serve solo per supportare il boot diretto da USB (che gli sviluppatori sconsigliano e anch’io, se può valere qualcosa).
      Se hai aspettato del buon tempo (non so dire quanto, dipende dal disco, dalla quantità di dati…) puoi collegare un monitor all’HDMI del Raspberry per verificare se a schermo compare qualche informazione che ti possa aiutare a capire cosa sia successo. Potrebbe essere, ad esempio, che avessi dei dati corrotti già in precedenza e spostandoli o semplicemente riavviando si sia bloccato qualcosa.
      In tal caso la soluzione è ricaricare un’immagine nuova sulla SD (verificando magari che funzioni bene con un test dell’intera superficie), caricare l’ultimo snapshot nella fase di onboarding e, una volta terminato, eseguire la procedura dell’articolo. Spero tu riesca a risolvere.

  21. Mirko

    Ciao Henrik, ho aspettato parecchie ore, almeno 5, e come dati non c’è molto, il backup su google drive occupa una 30ina di MB scarsi. Comunque stamattina, con un po’ di timore, ho staccato e riattaccato la spina del Rpi ed è ripartito! Quindi ora dovrebbe essere a posto con boot da SD e dati su SSD. Adesso non so però se procedere con l’attivazione del TRIM 😀 Grazie ancora!

    1. Mirko

      Niente, ho riavviato un’altra volta e non riparte più… mi sa che devo tornare indietro…

  22. Mirko

    Ho notato che se riavvio il sistema da dentro Home Assistant non riparte più, se invece stacco e riattacco la spina riparte! Che strano…

    1. Henrik Sozzi

      Che strano… Ti direi di rifare una installazione pulita e rifare, non deve fare così. Per la cronaca questo succede spesso a chi fa boot da SSD, tu sei partito da una SD seguendo questo articolo, giusto?

  23. Mirko

    Sì, certo, avevo Hassio con boot e dati su SD e seguito la guida alla lettera per spostare i dati su SSD. Non vorrei fosse il controller usb del ssd non perfettamente compatibile con il RPi 4 a questo punto, ho letto certi hanno problemi. Domani ne arriva uno diverso e provo a cambiare solo il controller tenendo stesso ssd. Se dovesse dare ancora problemi rifarò la procedura da capo. Grazie!

  24. Mirko

    Controller UGREEN 30848 USB 3.0 e ssd crucial BX500 da 120GB

    1. Henrik Sozzi

      In teoria entrambi supportano TRIM. Controller Ugreen ho avuto diversi feedback che ha funzionato correttamente out of the box. BX500 anche lui ok. Hai verificato le versioni firmware su entrambi i dispositivi? Se tutto questo è stato verificato direi che non dovrebbe essere un problema di TRIM.

  25. Luigi

    Ciao. Esiste una guida analoga per chi ha Home Assistant Core su Raspberry Pi OS?

    1. Henrik Sozzi

      Ciao, per quello bastano le normali procedure Linux, qualunque sito che tratta Linux ha alta probabilità di avere delle informazioni a riguardo. Per TRIM invece non ho capito come funziona su Raspberry OS (non ce l’ho sottomano di solito da usare).

  26. Dario Giussani

    Dottore! aiuto è grave?:

    # lsblk –discard /dev/sda
    NAME DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
    sda 0 4K 4G 0
    `-sda1 0 4K 4G 0

    # fstrim -a -v
    /var: 30.9 MiB (32354304 bytes) trimmed on /dev/zram1
    /tmp: 15.4 MiB (16162816 bytes) trimmed on /dev/zram2
    fstrim: /mnt/data: FITRIM ioctl failed: Remote I/O error
    /mnt/overlay: 86.2 MiB (90361856 bytes) trimmed on /dev/mmcblk0p7
    /mnt/boot: 28.6 MiB (29968384 bytes) trimmed on /dev/mmcblk0p1
    #
    Ho eseguito tutto come descritto tralasciando la parte dedicata a ridimensionare la partizione /data dopo averla spostata poiché sono partito con Os 5.11 e mi sembrava corretto lo spazio su disco!

    1. Dario Giussani

      P.S. = Premetto che sto usando i seguenti Hardware:
      _ GeeekPi X825
      _ Kingston SKC600/256 G

      1. Henrik Sozzi

        Caspita sembra che controller o disco non supportino TRIM.
        Hai verificato se ci sono firmware aggiornati?
        Sulla wiki di Geekworm dice che la produzione prima di luglio 2020 non supportava UASP, potrebbe essere il tuo caso? Verifica la questione firmware.
        Purtroppo ottenere una risposta da Geekworm per il TRIM è impossibile, io ci ho provato ma ho ricevuto risposte non inerenti. Posso dire che la mia comunque supporta TRIM egregiamente. Dovrebbe usare stesso chipset quindi dovrebbe andare anche la tua. Fammi sapere x i firmware

        1. Dario Giussani

          Ciao Henrik grazie per la risposta!, pare che il mio controller (acquistato il 25 luglio 2020) non supporti il TRIM, ho fatto ricerche e sembrerebbe che la versione V1.5 non abbia tale funzione.
          Credo che farò presto un giro su Amazon per la V2.0!
          Per l’SSD invece avevo già tentando l’update prima di cominciare la tua procedura ma il software “Kingston SSD Manager” non mi rileva nessun aggiornamento online (sebbene su un .pdf nel loro sito si parla di almeno due versioni successive…) in ogni caso ho scritto al produttore ed attendo news in merito.

        2. gino

          Ciao Henrik,
          innanzi tutto voglio ringraziarti per LE meravigliose guide da te proposte. Molto approfondite, semplice da seguire… Davvero ottime. Ne ho seguite “alcune” 🙂 con ottimi risultati.

          Detto questo, volevo segnalare che ho utilizzato l’adattatore Ugreen senza problemi di TRIM per alcuni mesi, grazie a te. Ho poi pensato di acquistare la board Geekworm X825 v2.0 e… purtroppo non supporta il TRIM (come per altro da loro indicato sul loro sito https://wiki.geekworm.com/X825_V2.0).
          Peccato, tornerò alla Ugreen.

          1. Henrik Sozzi

            Ciao e grazie mille, sapere di essere stato utile è la miglior ricompensa 😊 Purtroppo il controller Geekworm 2.0 non supporta effettivamente TRIM (come ho anche avvisato con una grossa nota subito sotto all’hardware!)
            Lo volevo togliere dalla lista ma le risposte di Geekworm fino ad oggi mi hanno lasciato aperta la speranza che risolvessero la cosa con un nuovo firmware ma… evidentemente non lo fanno quindi toglierò il controller per evitare altri spiacevoli inconvenienti.
            Mi spiace perchè era un’ottima soluzione e senza di quello non ho altre alternative mSata per cui anche tutti i dischi mSata perdono senso 😓

  27. Antonio

    Ciao, grazie per l’ottima guida.
    Ho notato su Amazon che il controller che hai suggerito (quello con msata) non è più disponibile.

    Hai altri suggerimenti?

    Grazie

    1. Henrik Sozzi

      Se vuoi stare su quel controller mSata (che in effetti piace anche a me 🙂 ) puoi acquistarlo su Aliexpress o direttamente dal sito del produttore, attenzione che la spedizione non sarà proprio un fulmine (dalla Cina…). Tra l’altro mi hanno scritto l’altroieri per avvisarmi che è uscita la versione hardware 2.0 del controller mSata che riduce le emissioni eletromagnetiche e altre migliorie. Trovi le info qui: https://raspberrypiwiki.com/X857_V2.0
      Ci sarebbe anche il controller Geekworm M2 ma non ho mai verificato il TRIM, anche se sarebbe quantomeno anomalo che non lo supportasse (ma non l’ho riportato perchè senza certezza…)
      Oppure un controller SATA tra quelli elencati, anche lì c’è il Geekworm oppure tra gli altri ti consiglio l’Ugreen.

  28. gianluca

    Ciao. Qualcuno puo dare esperienze sugli adattatori usb ssd che supportano bene TRIM ? GRAZIE

    1. Henrik Sozzi

      I controller elencati sono frutto di feedback di persone che li hanno provati. Il più rognoso è il sabrent per i firmware con cui spesso arriva. Gli altri hanno riportato tutti corretto funzionamento.

      1. gianluca

        Grazie gentilissimo

  29. Matteo

    Per chi avesse conbee II, se collegate SSD ricordate di prendere una prolunga USB per far funzionare Conbee, se lo lasciate collegato direttamente alla porta USB non funziona. testato personalmente, trovate in giro diverse persone che ne parlano, ma io sono impazzito per una settimana….

    1. Henrik Sozzi

      Si, hai perfettamente ragione. E’ cosa nota, purtroppo, che l’USB3 del Raspberry Pi4 ha emissioni elettromagnetiche anomale. La chiavetta se vicina all’USB non funziona, l’ho letto così tante volte che è dal giorno zero che uso una prolunga. Giusto ricordarlo 🙂

  30. gianluca

    Ciao ti chiedo aiuto. Ho preso questo hard disk in lista https://www.amazon.it/gp/product/B01N5IB20Q/ref=ppx_yo_dt_b_asin_title_o00_s01?ie=UTF8&psc=1

    e questo adattatore ugreen che ho letto anche in un altro forum essere supportato
    https://www.amazon.it/gp/product/B07D2BHVBD/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1

    Il problema e’ che, se il collego alla USB 3.0 si blocca tutto mentr collegato alla usb 2.0 funziona perfettamente

    Qualche consiglio ? Posso anche restituire perche presi su amazon

    GRAZIE

    1. Henrik Sozzi

      Strano… Il disco l’hanno già provato, il controller è diverso da quelli testati, non saprei che chipset ha. Hai provato a verificare firmware di disco e controller da PC? Strana questa cosa dell’USB, la prima volta che la leggo. Che SO usi sul Raspberry?

      1. Gianluca

        Si strano. Uso hassio su rpi4. Sì ho provato ad aggiornare l’hard disk che non ha trovato aggiornamenti mentre per l’adattatore della marca ugreen ho flashato un nuovo fiera Marche disabilita la modalità sleepstato proprio quello non farlo funzionare.
        Adesso invece ho ordinato sempre il modello Green quello indicato nel tuo articolo quello lì un po’ più piccolo senza case .
        cartella config non viene spostato sul ssd ?

        1. Henrik Sozzi

          Ok, fammi sapere con quello. Tutti quelli che l’hanno usato hanno avuto successo. Config su SSD, assolutamente.

          1. gianluca

            …..ottimo…arrivato nuovo adattatore ugreen ( quello piccolo senza case) tutto liscio come l’ olio !!!

            Grazie !!!

          2. Gianluca

            Vista la tua competenza e gentilezza, Prova a chiederti un’altra cosa: ma in caso in cui il sistema andassi in blocco e devo ripristinare tutto, avendo il boot USB e tutto il resto su hard disk SSD, quale sarebbe la procedura giusta per ripristinare da zero da una snapshot

          3. Henrik Sozzi

            Immagino intendessi boot da SD, come spiegato nell’articolo. Per ripristinare uno snapshot usi semplicemente la procedura normale, entri in una di esse e premi “restore selected”, niente di diverso da avere tutto il sistema su SD.
            Se intendi ripristinare un sistema che non funziona più a livello di OS e vuoi ripartire da zero allora credo che la via più indolore sia creare l’SD con balena, far partire il sistema e nella procedura iniziale di onboarding fare direttamente l’upload e ripristino dello snapshot desiderato. Al termine di ciò ripetere la procedura di questo articolo per spostare nuovamente i dati su SSD. E’ necessario rifarlo perchè questa configurazione è nella SD, se ricrei la SD perdi le impostazioni che dicono dove si trova la partizione dati.

    1. Henrik Sozzi

      Nooooooo!!!! Stavo pensando di vendere la mia per comprare la 2.0!!! Non ero riuscito ad ottenere questa info chiedendola a loro e adesso l’hanno scritto nella wiki esplicitamente! Ma perché diavolo non supportare il TRIM??? Mi spiace per la tua scoperta… Proverò a chiedere info a loro, visto che mi hanno anche linkato l’articolo.

  31. Grazie Henrik ! Funziona tutto alla grande,
    Utilizzato un disco ssd cinese (KingDian HDD 2.5 SSD SATA III 120GB da meno di 20€) con TRIM attivo nativamente e Box Case Trasparente Sabrent per quest’ultimo previo aggiornamento firmware.
    ( X aggiornamento andare nel sito http://www.sabrent.com/downloads/ e cercare “EC-UASP”, scaricare “Firmware-Update Tool” ed eseguire sotto windows)
    Se posso dire la mia suggerirei di evitare l’aggiornamento via SSH porta 22222… una tastiera e un monitor e eviti il cardiopalma! 🙂 poi semmai utilizzare l’SSH per verificare il corretto funzionamento! Grazie ancora! Orfmia.

    1. Henrik Sozzi

      Grazie per aver condiviso la tua esperienza e i link. Ho aggiornato l’articolo mettendo le tue indicazioni sul firmware perché alcuni segnalano un firmware, altri un altro. Così ho lasciato il generico link “download” di Sabrent indicando la tua segnalazione su EC-UASP, sperando possa essere utile ad altri.
      Il suggerimento per fare da console ed evitare il cardiopalma intendi per l’attesa senza feedback durante il reboot con spostamento dei dati? 😀 Io ho indicato la strada dell’SSH dev 22222 perché tanti non hanno il Raspberry collegato a video e tastiera, magari ce l’hanno anche in posizioni scomode e risulta quindi una strada utile e comoda per farlo.

      1. Orfmia

        Sì, sì… sia in fase di copia che in fase di riavvio, nel mio caso ho fatto tutto staccando il Raspberry dalla rete e questo probabilmente generava qualche problema nell’avvio di Ha che ne ritardava la partenza. Una volta ricollegato alla rete e ripartito tutto e si è alzato correttamente in modo anche veloce.

        Ciao!

  32. Romeo Tramontano

    Ciao a tutti e scusate se non è la sezione giusta dove porre una domanda, ma forse è attinente con quest’articolo… Ho installato Home Assistant su una MicroSd da 32 mb e ho creato varie configurazioni e varie automazioni. Qualcuno sa spiegarmi perchè alcune automazioni a volte non partono? Possibile che sia un problema legato alla MicroSd e alla sua lentezza? Forse con un SSD tutto è più “scorrevole”? Grazie

    1. Henrik Sozzi

      Ciao Romeo, no, non può essere colpa della SD. A naso il motivo più probabile è che tu abbia sbagliato trigger, all’inizio è facile fare delle considerazioni errate. Ti consiglio di chiedere postando l’automazione incriminata (usando Pastebin.com !) sul gruppo Facebook Home Assistant Italia. Magari ti rispondo io 😉

  33. Romeo Tramontano

    Ciao Henrik, grazie per la risposta! Non ho facebook e ho appena visto una guida su come usare Pastebin.com, scusa ma sono davvero poco pratico… 😖 Se ci fosse un canale telegram sarebbe meglio! Il mio problema è che non riesco a tirar fuori dal mio device (cellulare P30 Pro – entity_id: sensor.p30_pro_livello_della_batteria) il valore numerico (platform: state
    entity_id: sensor.p30_pro_livello_della_batteria attribute: unit_of_measurement from: <70) per far attivare una presa a muro. In poche parole vorrei attivare e disattivare una ciabatta per la ricarica del mio telefono ad una certa percentuale. Ho provato diverse automazioni e diversi blueprint, ma non funziona! 🙃

    1. Henrik Sozzi

      Ti consiglio il gruppo Facebook, almeno ogni post ha vita a sé con i suoi commenti. Sui canali telegram ci sono tanti membri che postano contemporaneamente ed è difficile seguire una conversazione… Se proprio vuoi Telegram usa questo: https://t.me/HomeAssistantCore
      Cmq il tuo trigger è sbagliato, devi usare un trigger numeric state, guarda la doc: https://www.home-assistant.io/docs/automation/trigger/#numeric-state-trigger
      Se vuoi chiedere altro chiedimelo in privato che siamo OT.

  34. Alain

    Ciao Henrik, dal momento che ero già passato al boot da SSD per il mio Raspi 3B+, ho seguito la tua guida limitatamente all’abilitazione del TRIM e tutto fila liscio fino al momento di lanciare il comando # fstrim -a -v che mi restituisce il seguente messaggio:
    fstrim: /boot: FITRIM ioctl failed: Operation not permitted
    fstrim: /: FITRIM ioctl failed: Operation not permitted
    Preciso che ho lo stesso risultato con 2 differenti controller, sia quello che già usavo prima con chipset Norelsys, sia quello appena acquistato e segnalato da altri qui, https://www.amazon.it/gp/product/B07Y825SB8/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1, con chipset ASMedia. Il drive SSD è un Crucial BX500 da 120GB. Possibile che il controller appena preso abbia un firmware datato? Se si come posso verificarlo?

  35. Henrik Sozzi

    L’errore indica che trim non è supportato da controller e/o SSD. Il disco mi risulta supportarlo e il controller ugreen è tra quelli che hanno dato meno problemi finora quindi si, mi vien da pensare al firmware di controller e disco. Collegali al PC e trova i firmware aggiornati sui siti dei produttori per verificare se sono aggiornati

  36. Alain

    Pardon, mea culpa, era tutto a posto, solo che ignoravo che il comando esigesse i permessi di root.
    Confermo che, sia il controller USB 3.0 to SATA Ugreen mod.70609, linkato nel mio post precedente, che il drive SSD Crucial BX500 120GB, supportano il trim “out of the box”, senza bisogno di modificare i firmware.
    Grazie Henrik per la condivisione e per il supporto

    1. Henrik Sozzi

      Ah caspita ok, quindi hai attivato il trim su Raspbian? Grazie a te per la condivisione del problema risolto 👍🏻

  37. Lorenzo

    Ciao e complimenti per l’articolo, mi sto avvicinando a questo mondo. Ho appena installato il mi primo hassos e vorrei utilizzare l’ssd esterno così come scritto nell’articolo. Ma prima di iniziare devo acquistare sia il controller che l’msata. Hai sconsigliato di prendete la v2 di Geekworm controller, mi puoi consigliare un altro controller msata? non vorrei utilizzare su ssd da 2.5
    Grazie ed ancora complimenti per il sito e nn solo per quest’articolo.

    1. Henrik Sozzi

      Ciao e grazie per i complimenti! Sono contento che il tempo dedicato a questo blog aiuti qualcuno 🙂 Vedo ora che il link dell’articolo Amazon Geekworm x857 v1.2 in realtà è diventato il v2.0! Come scrivo nella nota gialla subito sotto all’hardware la v2.0 NON supporta il TRIM! E Geekworm l’ha confermato. Che peccato. Sconsiglio quindi di prendere quel controller, lo toglierò dall’hardware consigliato.
      Altri controller msata, purtroppo, non ne ho da consigliarti testati da qualcuno. Bisogna provare a cercarne uno che riporti il supporto a TRIM.

      1. Lorenzo Diana

        Ok grazie. Sto facendo delle ricerche, ho anche fatto delle domande su amazon e sono in attesa di risposta… cmq se vedo che passa molto tempo opterò per un ssd dalla tua lista cercando di creare una “tower” come la tua.
        Ciao e grazie ancora
        p.s. OT, ma i led sulla ventola si possono disabiitare?

        1. Henrik Sozzi

          I led sulla ventola no, non si possono disabilitare (magari scollegandoli ma non ci ho provato). Tieni conto che comunque dopo qualche mese ha iniziato a fare rumore anche quella, alla fine ho messo una Noctua che tuttora è quasi inudibile.

  38. Gabriele

    Ciao Henrik, stupenda guida anche per un neofita/negato come me. Purtroppo ho solo mac, non ne vengo fuori! Ci sono alternative? Purtroppo la sd su cui ho HA mi ha abbandonato, non vedo più nessun storico, credo che il DB si sia corrotto. Ora vorrei passare al boot da ssd/usb3 ma mi sono imbattuto nella tua guida e ho dubbi, ricollegare tutti i sensori/ecc. un’altra volta mi farebbe impazzire!! Che alternative sicure ho? Grazie mille e ancora complimenti

    1. Henrik Sozzi

      Ciao Gabriele, grazie per i complimenti. Purtroppo io uso abitualmente Windows e Linux ma di Mac non ne ho, mi spiace. Non dovrebbe essere tanto difficile però: al posto di Putty usi il client integrato SSH che hai già nel S.O. e al posto di Notepad++ un’editor di testo (la conversione dei CRLF in LF è superflua in quanto non ci sono a capo, l’ho inserita solo come buona prassi). Se non ne vieni fuori ti consiglio di chiedere aiuto sul gruppo Home Assistant Italia su Facebook dove sicuramente troverai qualcuno che possa aiutarti.
      Per la riconfigurazione se hai uno snapshot a disposizione non ci sono problemi, quando reinstallerai ripristinerai quella e ti ritroverai tutta la configurazione di quando hai fatto lo snapshot. Se non l’hai fatto… sarà un buon monito per ricordarti di farli in futuro (e salvarli fuori dal Raspberry).
      In bocca al lupo 🙂

  39. Gabriele

    Grazie Henrik, proverò! Snapshot continui da sempre! Quando ci si avventura in cose nuove meglio coprirsi le spalle! Felice giornata.

  40. Gabriele

    Caro Henrik, ti metto al corrente che sono riuscito!….o quasi, ho seguito la guida e sembra funzionare tutto. comincio con l’hardware usato se può servire a qualcuno:

    UGREEN Adattatore USB 3.0 a SATA per SSD HDD 2.5″, Cavo SATA 6TB Supporta UASP, S.M.A.R.T, Trim, Aggiornando Automatico Compatibile Windows/Linux/Mac.

    Crucial BX500 240 GB CT240BX500SSD1 fino a 540 MB/s, SSD Interno, 3D NAND, SATA, 2.5 Pollici.
    TUTTO COMPATIBILE!
    Raspberry pi4 2gb aggiornato.
    Hassio.
    Come simil-PUTTY ho usato “zoc”
    e la chiave ssh generata con terminale e textedit

    Il ridimensionamento non è stato necessario, in compenso la copia dei dati è stata lunga e ha bloccato tutto, dopo un’ora e mezza di attesa ho dovuto “staccare la spina”.

    Unico dubbio che ho di aver sbagliato qualcosa è questo che non riesco a capire:

    21-05-13 00:21:55 INFO (SyncWorker_3) [supervisor.docker.addon] Starting Docker add-on homeassistant/aarch64-addon-mosquitto with version 5.1.1
    21-05-13 00:21:55 WARNING (MainThread) [supervisor.addons.options] Unknown option ‘grant’ for MariaDB (core_mariadb)
    21-05-13 00:21:55 INFO (SyncWorker_0) [supervisor.docker.interface] Cleaning addon_core_mariadb application
    21-05-13 00:21:55 WARNING (SyncWorker_0) [supervisor.addons.options] Unknown option ‘grant’ for MariaDB (core_mariadb)
    21-05-13 00:21:56 INFO (SyncWorker_0) [supervisor.docker.addon] Starting Docker add-on homeassistant/aarch64-addon-mariadb with version 2.3.0

    21-05-13 00:22:38 INFO (SyncWorker_3) [supervisor.docker.addon] Starting Docker add-on homeassistant/aarch64-addon-configurator with version 5.3.0
    21-05-13 00:22:38 WARNING (MainThread) [supervisor.addons.options] Unknown option ‘new_api’ for Zigbee2mqtt (7ad98f9c_zigbee2mqtt)
    21-05-13 00:22:38 WARNING (MainThread) [supervisor.addons.options] Unknown option ‘restartdelay’ for Zigbee2mqtt (7ad98f9c_zigbee2mqtt)
    21-05-13 00:22:38 WARNING (MainThread) [supervisor.addons.options] Unknown option ‘initialdelay’ for Zigbee2mqtt (7ad98f9c_zigbee2mqtt)
    21-05-13 00:22:38 INFO (SyncWorker_4) [supervisor.docker.interface] Cleaning addon_7ad98f9c_zigbee2mqtt application
    21-05-13 00:22:38 WARNING (SyncWorker_4) [supervisor.addons.options] Unknown option ‘new_api’ for Zigbee2mqtt (7ad98f9c_zigbee2mqtt)
    21-05-13 00:22:38 WARNING (SyncWorker_4) [supervisor.addons.options] Unknown option ‘restartdelay’ for Zigbee2mqtt (7ad98f9c_zigbee2mqtt)
    21-05-13 00:22:38 WARNING (SyncWorker_4) [supervisor.addons.options] Unknown option ‘initialdelay’ for Zigbee2mqtt (7ad98f9c_zigbee2mqtt)
    21-05-13 00:22:39 INFO (SyncWorker_4) [supervisor.docker.addon] Starting Docker add-on zigbee2mqtt/zigbee2mqtt-aarch64 with version 1.18.1-1

    21-05-13 00:22:45 INFO (MainThread) [supervisor.resolution.checks.base] Run check for IssueType.SECURITY/ContextType.CORE
    21-05-13 00:22:45 INFO (MainThread) [supervisor.resolution.checks.base] Run check for IssueType.PWNED/ContextType.ADDON
    21-05-13 00:22:45 WARNING (MainThread) [supervisor.addons.options] Unknown option ‘new_api’ for Zigbee2mqtt (7ad98f9c_zigbee2mqtt)
    21-05-13 00:22:45 WARNING (MainThread) [supervisor.addons.options] Unknown option ‘restartdelay’ for Zigbee2mqtt (7ad98f9c_zigbee2mqtt)
    21-05-13 00:22:45 WARNING (MainThread) [supervisor.addons.options] Unknown option ‘initialdelay’ for Zigbee2mqtt (7ad98f9c_zigbee2mqtt)
    21-05-13 00:22:45 WARNING (MainThread) [supervisor.addons.options] Unknown option ‘grant’ for MariaDB (core_mariadb)
    21-05-13 00:22:45 INFO (MainThread) [supervisor.resolution.checks.base] Run check for IssueType.FREE_SPACE/ContextType.SYSTEM

    ALLA FINE: 21-05-13 00:25:35 ERROR (MainThread) [asyncio] Task exception was never retrieved
    future: <Task finished name='Task-863' coro= exception=TypeError(‘Received message 257:None is not str’)>
    Traceback (most recent call last):
    File “/usr/src/supervisor/supervisor/homeassistant/websocket.py”, line 134, in async_send_command
    return await self._client.async_send_command(message)
    File “/usr/src/supervisor/supervisor/homeassistant/websocket.py”, line 46, in async_send_command
    response = await self.client.receive_json()
    File “/usr/local/lib/python3.8/site-packages/aiohttp/client_ws.py”, line 291, in receive_json
    data = await self.receive_str(timeout=timeout)
    File “/usr/local/lib/python3.8/site-packages/aiohttp/client_ws.py”, line 276, in receive_str
    raise TypeError(f”Received message {msg.type}:{msg.data!r} is not str”)
    TypeError: Received message 257:None is not str
    21-05-13 00:25:35 WARNING (MainThread) [supervisor.addons.options] Unknown option ‘new_api’ for Zigbee2mqtt (7ad98f9c_zigbee2mqtt)
    21-05-13 00:25:35 WARNING (MainThread) [supervisor.addons.options] Unknown option ‘restartdelay’ for Zigbee2mqtt (7ad98f9c_zigbee2mqtt)
    21-05-13 00:25:35 WARNING (MainThread) [supervisor.addons.options] Unknown option ‘initialdelay’ for Zigbee2mqtt (7ad98f9c_zigbee2mqtt)
    21-05-13 00:25:35 WARNING (SyncWorker_1) [supervisor.addons.options] Unknown option ‘new_api’ for Zigbee2mqtt (7ad98f9c_zigbee2mqtt)
    21-05-13 00:25:35 WARNING (SyncWorker_1) [supervisor.addons.options] Unknown option ‘restartdelay’ for Zigbee2mqtt (7ad98f9c_zigbee2mqtt)
    21-05-13 00:25:35 WARNING (SyncWorker_1) [supervisor.addons.options] Unknown option ‘initialdelay’ for Zigbee2mqtt (7ad98f9c_zigbee2mqtt)
    21-05-13 00:25:36 INFO (SyncWorker_1) [supervisor.docker.addon] Starting Docker add-on zigbee2mqtt/zigbee2mqtt-aarch64 with version 1.18.1-1
    21-05-13 00:37:34 WARNING (MainThread) [supervisor.addons.options] Unknown option ‘new_api’ for Zigbee2mqtt (7ad98f9c_zigbee2mqtt)
    21-05-13 00:37:34 WARNING (MainThread) [supervisor.addons.options] Unknown option ‘restartdelay’ for Zigbee2mqtt (7ad98f9c_zigbee2mqtt)
    21-05-13 00:37:34 WARNING (MainThread) [supervisor.addons.options] Unknown option ‘initialdelay’ for Zigbee2mqtt (7ad98f9c_zigbee2mqtt)
    21-05-13 00:37:34 WARNING (MainThread) [supervisor.addons.options] Unknown option ‘grant’ for MariaDB (core_mariadb)

    Grazie ancora di tutto

    1. Henrik Sozzi

      Ho sentito alcuni altri che al riavvio gli si è bloccato come a te, costringendoli a spegnere e accendere dopo ore di attesa. Diciamo che effettuare l’operazione con uno schermo collegato all’HDMI avrebbe aiutato a capire cosa stava accadendo. Senza è impossibile capire perché si è bloccato, purtroppo.
      Il log che hai inviato credo si riferisca a dei parametri (forse obsoleti) degli addon zigbee2mqtt e MariaDB, niente di preoccupante. L’errore invece è relativo ad una errata comunicazione su un websocket, probabilmente di qualche addon che non sappiamo quale sia. Niente di preoccupante, a naso.
      visto che hai installato zigbee2mqtt ti consiglio la lettura dei miei articoli su zigbee, a partire da questo: Home Assistant e ZigBee: orientiamoci

  41. Gabriele

    Buongiorno Henrik, da stamattina TUTTI i device zigbee (23) non rispondono più ai comandi! L’unico che fa ancora il suo dovere è un BTicino F20T60A che rileva la potenza assorbita dalla casa. Ho anche ripristinato da un’istantanea ma niente! Potrebbe essere perchè magari ho invertito la porta usb dov’era collegata la conbee II? (l’ora era tarda e chissà!).
    Ora che ho ripristinato devo rifare la procedura per “spostare” i dati sull’HD (sempre se la causa fosse il “cambioporta”)?
    L’articolo che mi hai linkato me l’ero già “gustato” e mi sarebbe anche piaciuto fare il salto a ZHA come consigli tu, mi ha fermato il fatto che avrei dovuto ripartire da zero e dubbi sulla compatibilità col BTicino F20T60A che mi è indispensabile.
    Ho tutti device zigbee a parte 6 plug shelly, e un sonoff POW purtroppo necessari per controllare i carichi (device che al momento funzionano perfettamente).
    Hai consigli?….o rifaccio tutto da zero?

    1. Henrik Sozzi

      Puoi ripristinare e fare snapshot, i dati rimarranno su SSD e trim resterà attivo (sono info salvate nella microSD, non toccata dagli snapshot).
      Per zigbee escluderei la porta: se fosse quello non andrebbe NULLA, invece un device a te funziona. Potrebbe essere il lungo periodo di offline. Certi dispositivi (mi è sembrato di capire Ikea e aqara più di altri) se non trovano il coordinator per lungo tempo escono dalla rete e necessitano di essere riaccoppiati poi. Con ZHA basta avviare il pairing e resettare il device, tutto torna come prima, immagino anche per Zigbee2mqtt.
      Sei nella condizione perfetta per provare a passare a ZHA! Riassociare per riassociare… Parti dal BTicino così se non va torni subito indietro senza perdere tempo. Altrimenti valuti. Nell’articolo su Zha ci sono le info specifiche se passi da altra integrazione.

  42. Gabriele

    Buongiorno Henrik, ti aggiorno.
    Ho rifatto tutto! Installato mariadb in sostituzione al db “di serie”, trasferito i dati su ssd, attivato il trim e……”TUTTO VERDE”!!
    Dulcis in fundo sono passato a ZHA! Credevo il Bticino non funzionasse e invece andato al primo pairing. Piuttosto mi sono impantanato con un tasto sonoff che usavo per delle luci esterne (1click accesa una, 2 click accese 2, click prolungato spente), (Per questo aspetterò l’articolo sugli “stati” visto che col binding non son riuscito a far nulla!
    Altro pantano i telecomandi a 5 tasti ikea! Ma credo li abbinerò ai pannelli al “modo di ikea” uno alla volta (2 pannelli, 2 telecomandi e li voglio indipendenti)
    Altra cosa ho notato una certa instabilità di comunicazione con zha (alcune luci ogni tanto non sono più disponibili e vanno riaccoppiate), potrebbe essere la vicinanza della conbee alle porte usb3 del raspberry? Uso al momento una prolunga usb di 50 cm, conbee collegata a usb2, domani proverò a prendere una prolunga più lunga e vediamo. Purtroppo è in un brutto posto assieme a 2 nas, un ups e ad un metro dal router wifi.
    Grazie! Ho imparato più con 2 tuoi articoli che con ricerche di un mese!

    1. Henrik Sozzi

      Ciao Gabriele, sono felice di esserti stato d’aiuto e… Grazie per la donazione, è una mano concreta a tenere in piedi la baracca! 👍🏻
      Per zha non dovresti avere alcuna instabilità, l’unico caso che rilevo (ma non è imputabile all’integrazione) è che quando il coordinator è spento per diverso tempo alcuni dispositivi escano dal network (Ikea e aqara). Ma fintanto che va non dovresti aver problemi.
      Hai l’ultima versione firmware sulla conbee? Hai impostato un canale cercando di evitare i disturbi wifi tuoi e dei vicini? (Hai letto questo? https://henriksozzi.it/2021/02/zigbee-copertura-router-canali/ )
      La prolunga fa 50cm e la porta usb2 sono ok, cerca di tenere la conbee più lontana da a/p wifi puoi anche provare ad allungare la prolunga ma se prima con z2m eri stabile devi esserlo anche con zha, per questo mi vien da pensare al canale.
      Per i tasti devi usare gli eventi zha_events nelle automazioni e gestisci tutto. Si, farò un articolo sull’argomento che è parecchio richiesto.
      Fammi sapere se risolvi, il network zigbee deve essere stabile e devi dimenticaetene…

  43. Gabriele

    Ciao Henrik, ti aggiorno.
    Prolungata la conbee di 2 metri, nessun miglioramento, la lampadina del cancello ikea, dista circa 12m da una osram (faccia a faccia in giardino) ogni tanto “sparisce”, non risponde ai comandi, l’osram ogni tanto non risponde ai comandi, è a 3 metri dalla conbee ma in esterni Una volta spenta e riaccesa comunque torna in rete. (che sia il punto debole? Nel wend proverò a mettere un’ikea al posto della osram), al momento è il fastidio più grosso, il resto è perfetto!
    Il firmware di conbee si aggiorna da solo? O bisogna intervenire manualmente? (zigpy_config: ota abilitato per ikea e ledvance, che comunque dovrebbero essere all’ultima versione z2m li aggiornava in automatico)
    Devo obbligatoriamente lavorare sul canale 11 per via del bticino, il mio router sui 2.4 ghz lavora sul canale 8, è il più libero, mentre è in automatico sui 5ghz. Sto pensando di inserire un altro repeater per uniformare il segnale e così portare la potenza del wifi al 50%, potrebbero diminuire le interferenze nello stanzino dove c’è router, raspberry e conbee….o aumentarle??!!

    1. Henrik Sozzi

      Da quanto riporti la OSRAM sembra effettivamente il punto debole. Puoi anche provare, non so se è possibile, ad aggiungere dei router in esterno, così che ci siano più “percorsi” per arrivare alla Conbee. O magari hai un problema di firmware della OSRAM o della Conbee perchè no, non si aggiorna da solo ma ne ho descritto il procedimento qui.
      Se hai attivato OTA per Ikea e Ledvance tali dispositivi verranno aggiornati automaticamente. Io mi sono accorto che ciò sia avvenuto perchè ho visto le lampadine spegnersi per poi riaccendersi da sola dopo un po’. Ne ho tre sopra al tavolo e l’hanno fatto in sequenza. Se ti sei salvato la versione firmware che avevano basta verificarla per sapere se è stato fatto o no.
      I canali, se non hai altre sorgenti di disturbo come wifi di vicini o sensori dell’antifurto a microonde o altro ancora, sembrano adeguati, 8 wifi e 11 zigbee non si dovrebbero disturbare. Sui 5GHz puoi fare quel che vuoi non inficia nè zigbee nè i dispositivi IoT come Shelly (al contrario di quel che alcuni credono).
      Per il wifi francamente non so quale delle due soluzioni sia meglio ma francamente diminuire la potenza in antenna non l’ho mai preso in considerazione 😀

      1. Gabriele

        Ciao Henrik, ultimo aggiornamento. riposizionando la conbee2 con una prolunag di 2 m, aggiungendo un repeater e diminuendo la potenza di trasmissione del modem tutto va alla perfezione! Ho sostituito la lampadina osram con un’ikea e ora il cancello è stabile! Ho avuto un problema con il db di maria che il sistema non trovava più, ho risolto reinstallando da zero mariadb. ora è tutto funzionante e stabile!!! Ora devo concentrarmi su uno shelly plug-s che non mi trasmette i dati elettrici pur essendo vicinissimo al repeater (a prescindere dalla potenza di trasmissione del wifi)…..risolverò!

          1. Gabriele

            Si ufficiale, non mi servono gran cose, di fatto solo la potenza istatntanea

          2. Henrik Sozzi

            Hai aggiornato il firmware? La ufficiale è compatibile solo da una certa versione in poi (non la ricordo ma è scritta nel mio articolo su Shelly). Fai un po’ di debug pingando il suo ip per capire se comunica stabilmente sul wifi e guarda quanto segnale riporta l’entità wifi del dispositivo in ha.
            Deve andare… Anche io ne ho diversi e inviano tranquillamente la potenza istantanea aggiornata.

          3. Gabriele

            Tutti i firmware sono aggiornati!
            Intensità del segnale -59dBm
            Velocità di trasferimento max. possibile 72 / 72 Mbit/s
            Velocità di trasferimento attuale 70 / 53 Mbit/s
            al ping risponde! Nella sua interfaccia web l’icona del wifi è verde!
            Verificherò che non calino le prestazioni del wifi quando la lavastoviglie è in funzione, poi la sostituirò con un’altra che funziona regolarmente.

          4. Henrik Sozzi

            Prova a impostare l’IP di HA al posto di mcast come spiegato nel mio articolo.

  44. Paolo

    Ciao, prima di tutto complimenti per la guida. Premetto che sono un principiante ma piano piano sonoi riuscito ad arrivare al fatidico comando “datactl move /dev/sda”. Dopo compaiono una serie di messaggi come quelli della tua guida tranne le ultime 3 righe in cui dice che ha riprogrammato il trasferimento file per il prossimo riavvio. Io ho riavviato l’host comunque e dopo aver eseguito il comando per verificare se il contenuto è stato spostato noto che non è stato fatto. Cosa posso tentare?

    Grazie mille

    Paolo

    1. Henrik Sozzi

      Sicuro di aver riavviato l’host e non il core o il Supervisor? È durante il boot seguente che avviene lo spostamento (e può metterci tanto!)
      Se sei sicuro puoi collegare uno schermo all’HDMI per vedere cosa accade ma mi pare strano, sei il primo che segnala una cosa del genere

  45. Paolo

    Si, purtroppo sono sicuro, il riavvio é durato un paio di minuti. Come hub zigbee ho la chiavetta conbee II e sembra non funzionare più però per questo ho letto che si può risolvere con una prolunga usb.

    1. Henrik Sozzi

      Il riavvio è durato troppo poco, non sembra aver fatto quel che avrebbe dovuto. La dimensione dell’SSD è più grande della SD, vero? Rimane lo schermo per vedere cosa è successo o puoi guardare i log, dal prompt SSH sulla porta 22222 o dalla console fisica digita “dmesg | more” e spulcia alla ricerca del dataclt.
      La conbee va connessa a prescindere con la prolunga, con l’SSD a maggior motivo perché l’usb3 del Raspberry Pi ha emissioni elevate e disturba zigbee. Occhio che sia una prolunga buona.
      Non collegarla ad una porta usb3 per ridurre le emissioni che subisce.

  46. Lorenzo

    Ciao, ho acquistato dal tuo link il sabrent da mSATA a USB 3.0 EC-MSMU, ma quando vado sul sito per scaricare l’ultimo aggiornamento non trovo la sigla… quale dovrei scaricare?
    Grazie ed ancora complimenti per il lavoro

    1. Henrik Sozzi

      Francamente non lo so perchè personalmente non ho un Sabrent, mi è stato segnalato più volte però. Nell’articolo ho inserito un link diretto ad un tool che dovrebbe verificare / aggiornare i firmware di tutti i controller Sabrent, o così mi ha detto chi me l’ha segnalato. Dagli un occhio e fammi sapere.
      Grazie per i complimenti 🙂

  47. ElleDi

    Ciao ho acquistato questo controller Sabrent Box Case in Alluminio da mSATA a USB 3.0/SATA III direttamente dalla pagina sopra, ma sul sito della sabrent non riesco a trovare il firmwire aggiornato, non trovo il codice del box e di uno similare non mi compare la voce firmwire ma solo del manuale utente :-O come potrei fare?
    Ciao

    1. Henrik Sozzi

      Ciao, mi era stato segnalato il link del tool per fare l’aggiornamento di tutti i modelli Sabrent, anche se non l’ho mai provato in prima persona perchè non ho quel controller. Dagli un occhio, trovi il link nell’articolo e fammi sapere.
      Ciao!

  48. ElleDi

    Ok grazie

  49. ElleDi

    Ciao, sto provando dall’inizio, utilizzo il terminale ma ma quando digito LSBLK mi dice sempre lsblk
    zsh: command not found: lsblk
    Dove sbaglio?

    1. Henrik Sozzi

      Stai usando un add-on SSH anzi che la connessione SSH alla porta dev 22222 come spiegato nell’altro mio articolo linkato. L’ambiente che vedi è interno all’addon e non puoi accedere alla macchina fisica da dentro gli add-on. Per questo spiego come aprire la connessione SSH di sviluppo, che invece gira nella macchina reale a monte dei container Docker.

  50. ElleDi

    Si vero. Ok grazie

  51. Michele Annarelli

    Buonasera, grazie e complimenti per la guida (e gli altri articoli) molto più dettagliata e tecnica di altre, che si preoccupano solo ad esempio del passaggio al ssd 🙂

    Se possibile vorrei richiedere un aiuto per il mio porting a ssd, di seguito il mio hardware (volevo spenderci il meno possibile, visto che al momento sto solo progettando il mio Hassio non avendo ancora una casa nella quale svilupparci la mia domotica):
    – ORICO 2520U3 (https://www.orico.cc/us/product/detail/7147.html)
    – KingDian 2,5 pollici SATA III 60GB (https://www.amazon.it/dp/B01LYCC2D2/ref=twister_B01BMGOCKO)

    Ho provato a cercare firmware di update per ssd e enclosure ma non sembrano esistere 🙁
    Da windows 10 montando stesso ssd ed enclosure ed avviando CrystalDiskInfo vedo che il TRIM è attivo ed abilitato; però eseguendo da PuTTY il comando “fstrim -a -v”: mi da questo errore:

    /var: 30.9 MiB (32350208 bytes) trimmed on /dev/zram1
    /tmp: 15.4 MiB (16162816 bytes) trimmed on /dev/zram2
    fstrim: /mnt/data: FITRIM ioctl failed: Remote I/O error /* ERRORE */
    /mnt/overlay: 85.7 MiB (89837568 bytes) trimmed on /dev/mmcblk0p7
    /mnt/boot: 21.6 MiB (22667264 bytes) trimmed on /dev/mmcblk0p1

    Inoltre se eseguo l’istruzione successiva:
    systemctl status fstrim.timer
    ● fstrim.timer – Discard unused blocks once a week
    Loaded: loaded (/usr/lib/systemd/system/fstrim.timer; enabled; vendor preset: enabled)
    Active: active (waiting) since Wed 2021-06-16 17:50:13 UTC; 20min ago
    Trigger: Wed 2021-06-16 18:43:18 UTC; 32min left
    Triggers: ● fstrim.service
    Docs: man:fstrim

    Jun 16 17:50:13 homeassistant systemd[1]: Started Discard unused blocks once a week.

    Sono riuscito ad attivare il TRIM o come temo uno fra ssd ed enclosure non lo supporta con il raspberry? inoltre come capisco quale dei due dovrei sostituire?
    Grazie in anticipo.

    1. Henrik Sozzi

      Grazie per i complimenti 🙂
      Quanto alla tua richiesta: spesso la differenza tra l’hardware più economico e quello un po’ più noto è proprio la volontà del produttore di “far bella figura” rilasciando aggiornamenti firmware, qualora ce ne fosse la necessità. Ed essendo gestiti in Linux in modo differente rispetto a Windows è il motivo per cui ho creato un elenco di hardware testato e funzionante, così da andare sul sicuro. Nel tuo caso non ho idea del perchè Windows riporti TRIM come attivo e Linux no (“ioctl failed” è proprio sintomo che il controller o l’ssd non supportino il TRIM).
      Per quanto riguarda systemctl status fstrim.timer serve solo a verificare che il servizio che schedula il trim sulle unità abilitate sia attivo ma non ha nulla a che fare con la possibilità dell’unità di effettuarlo oppure no.
      Mi spiace ma francamente non credo sia possibile far qualcosa se non provare a cambiare enclosure e/o SSD.

      1. Michele Annarelli

        Perfetto, grazie mille per la risposta, provo a cambiare l’ssd, avendolo preso da Amazon e più facile renderlo e provarne un altro, se anche cambiandolo non va, proverò con l’enclosure,

  52. Andrea Rossetto

    Ciao! Complimenti per l’ottima e semplicissima guida!
    La mia configurazione è questa:
    Raspberry Pi 3b+
    MicroSd SanDisk MAX Endurance 32 GB

    Sono passato con i dati su questo SSD esterno (monta chip SMI Huirong SM2258XT):https://www.amazon.it/gp/product/B08R8LXSN8/ref=ppx_yo_dt_b_asin_title_o05_s00?ie=UTF8&psc=1

    idVendor 152d
    idProduct 0580

    montato all’interno del case:https://www.amazon.it/gp/product/B08LQ4WYGD/ref=ppx_yo_dt_b_asin_title_o02_s00?ie=UTF8&psc=1

    Passaggio dati da sd a ssd indolore e veloce (meno di 10 minuti al riavvio…).

    Provando il comando “fstrim -a -v” l’output è questo:

    # fstrim -a -v
    /mnt/data: 90.4 GiB (97072300032 bytes) trimmed on /dev/sdb1
    /mnt/overlay: 86.2 MiB (90360832 bytes) trimmed on /dev/mmcblk0p7
    /tmp: 15.4 MiB (16162816 bytes) trimmed on /dev/zram2
    /var: 30.9 MiB (32350208 bytes) trimmed on /dev/zram1
    /mnt/boot: 19.7 MiB (20668416 bytes) trimmed on /dev/mmcblk0p1
    #

    Mi sembra ok… no?
    Se lo ritieni aggiungilo ai compatibili… e grazie ancora!

    1. Henrik Sozzi

      Ciao Andrea grazie mille per i complimenti e per le informazioni! Dall’output di fstrim direi che è tutto a posto e il trim funziona!

  53. Matteo

    Ciao Henrik!
    Ho seguito la guida passo passo: tutto perfetto, sei un grande!!
    Ecco il mio ssd ed il case/controller che ho utilizzato, magari possono essere d’aiuto ad altri:
    – ssd https://www.amazon.it/Crucial-BX500-CT240BX500SSD1-Interno-Pollici/dp/B07G3YNLJB/ref=sr_1_1?__mk_it_IT=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=11B94LEOE8WT0&dchild=1&keywords=crucial+ssd&qid=1625088705&sprefix=crucial%2Caps%2C209&sr=8-1
    – controller https://www.amazon.it/Sabrent-EC-UASP-Enclosure-storage-enclosure/dp/B00OJ3UJ2S/ref=sr_1_7?__mk_it_IT=%C3%85M%C3%85%C5%BD%C3%95%C3%91&dchild=1&keywords=ssd+case+usb&qid=1625088725&sr=8-7

    Avrei una domanda: facendo dei backup settimanali, se malauguratamente dovessi avere l’esigenza di fare un ripristino in futuro, come mi devo comportare? Scusa la domanda banale ma sono all’inizio di quest’avventura!
    Grazie e continua così!!

    1. Henrik Sozzi

      Ciao Matteo, grazie! Se dovessi ripristinare uno snapshot lo fai normalmente, nessuna precauzione particolare. 🙂

      1. Matteo

        Grazie! Gentilissimo

  54. Carlo Alberto Sgrazzutti

    ciao Henrik, complimenti per questa guida e per tutto ciò che condividi per aiutare gente come me che senza questi aiuti userebbe le app in bundle con i dispositivi 🙂
    ho un pc che monta un Samsung 840 series da 120 gb per fare girare il s.o., e ritengo poco sensato prendere un ssd nuovo per il raspberry e usarne uno vecchio ma a mio avviso ottimo (ed affidabile) sul pc principale; quindi pensavo di prendere un 500gb di nuova generazione per il pc e usare il 840 per H.A.
    cosa ne dici? a mio avviso il Samsung 840 dovrebbe andare bene per rasp/H.A. ma vorrei conoscere un tuo eventuale parere.
    Grazie

    1. Henrik Sozzi

      Ciao Carlo, grazie per i complimenti, è bello sapere che le nottate spese non sono inutili 👍🏻
      L’SSD che citi dovrebbe andare più che bene per HA (anche il mio è da 120GB) e supporta TRIM. L’unica remora è la durata. Se l’SSD lo hai usato tanto su PC e magari era piuttosto pieno (come è facile che fosse su PC) la sua vita si è accorciata. Di quanto difficile dirlo.
      Personalmente, visti i prezzi degli SSD, preferirei prenderne uno nuovo per dormire sonni tranquilli ma la valutazione è soggettiva.
      Se il PC è stato usato poco e magari il disco non era tanto pieno allora potrebbe essere una buona idea.
      (Nomino quanto era pieno il disco perchè è un fattore cruciale di usura degli SSD. Se il disco è molto pieno, infatti, la rotazione delle celle di flash in cui scrivere non sarà ampia, risultando in una velocità superiore di usura delle celle sottoposte a scritture e cancellazioni multiple)

  55. Gabriele

    Ciao Henrik e grazie per la guida dettagliata e funzionante.
    Ho una richiesta da farti; ho vari problemi da quando ho attivato il trim su SSD e vorrei riportare tutto allo stato originale. Principalmente continui blocchi di home assistant (almeno uno al giorno) e chiavetta Conbee II non funzionante nonostante sia collegata con una prolunga usb di 2 metri. Fino a prima funzionava tutto a meraviglia.

    Sto provando a seguire la tua guida al contrario per poter riportare il tutto allo stato originario:
    sono riuscito a disattivare il trim ma tutt’ora il mount point /mnt/data risulta essere il disco SSD. Vorrei che tornasse a essere nuovamente la partizione della scheda SD mmcblk0p8.
    Mi sai dire come fare?

    1. Henrik Sozzi

      Ciao Gabriele, se hai appena installato l’SSD i blocchi potrebbero essere sintomo di alimentatore non sufficiente. Usi quello ufficiale? L’RPI è molto sensibile sull’alimentatore. Inoltre la porta USB3 del RPI4 è nota per avere emissioni elettromagnetiche elevate (motivo per cui serve la prolunga), controlla la prolunga stessa, potrebbe portare solo l’alimentazione o non funzionare bene. Sapessi quante ne ho dovute cambiare anch’io… Peccato tornare indietro, il risultato di questa configurazione è una stabilità del 100%, c’è qualcosa da capire…
      Per tornare indietro secondo me la soluzione più rapida è farti uno snapshot, rifare la SD con Balena, far partire HA e fare il ripristino del tuo snapshot durante la procedura di onboarding.

  56. Francesco Mongelli

    Buona sera, una domanda: ha senso fare questo spostamento con HA core su PI4? Se si, cosa va spostato sull’SSD?
    Grazie

    1. Henrik Sozzi

      Certamente che ha senso! Home Assistant OS sposta su SSD i seguenti mount point:

      • /mnt/data
      • /var/lib/docker
      • /var/log/journal

      Se hai core ad ogni modo non usi docker quindi dovrai valutare da te quali mount point spostare in base a cosa hai installato. Non usando core non ti so dare una mano più specifica ma essendo un tema generico che vale per la distro genericamente sono sicuro che trovi abbondanza di materiale informativo in internet.

  57. Fabio

    Ciao, sto provando a seguire la guida, ma non appena do il “datactl move /dev/sda”, confermo e riavvio, perdo del tutto la raggiungibilità al RP/HA.
    Il Raspberry è pingabile dopo il reboot, ma è irraggiungibile da ssh/web.
    Non capisco come mai, il comando è stato schedulato con successo e fino al reboot non ho avuto problemi nel riconoscere il disco!
    Ti è già capitato qualcosa di simile?

    1. Henrik Sozzi

      È normale. Il comando durante il boot successivo sposta tutti i dati da SD a disco e a seconda della velocità del sistema, della quantità di dati/numero degli addon e della velocità di SD e disco esterno può metterci del tempo. Se vuoi la conferma di cosa stia facendo attacca un monitor alla porta HDMI e guarda cosa sta facendo 😉

  58. Gianni

    Ciao, Henrik,
    grazie per l’ottima guida. L’ho seguita senza problemi qualche mese fa per effettuare lo spostamento su SSD.
    Adesso ho qualche problema di stabilità, che sospetto sia legato all’ SSD o al case utilizzato. Pertanto vorrei provare a “tornare indietro” su SD.
    Sai se esiste un comando per riportare HA su SD? Sospetto che datactl move /dev/mmcblk0 possa fare seri danni 🙂
    Grazie

    1. Henrik Sozzi

      Ciao Gianni, che io sappia non c’è ma magari mi sbaglio. Peraltro datactl move non esiste più (ora è ha os datadisk move mi pare, ho aggiornato l’articolo comunque)
      Per fare quell’operazione io farei così: fai un backup totale e lo scarichi su PC. Riflashi la SD con Balena. Nell’onboarding scegli di ripristinare il backup che ti eri salvato. Fatto.

    1. Henrik Sozzi

      Ciao Fabrizio, grazie 😊 Purtroppo non conosco quel controller, mai usato né ho parlato con nessuno che l’abbia usato. Resta da cercare per la rete se trovi info oppure… Provare… Fai backup prima però!

    2. Gino

      Io ne ho uno e… no, non supporta il TRIM. In verità, non è nemmeno un gran prodotto. Molti problemi di collegamento e quant’altro. con qualche euro in piú (11.99€) compri quello della UGREEN e vai sul sicuro (io né ho 7 tutti meravigliosamente funzionanti 🙂

  59. fabrizio

    grazie infinite..lo rendo amazon e mi compro quello che mi hai consigliato

  60. fabrizio

    ciao henrik .. volevo chiederti se era possibile fare il backup automatico di HA su un nas al posto di farlo su un cloud ,cosa devo usare SAMBA ?
    grazie

  61. danilo

    Ciao, tutto bene a parte che fra gli hardware vi sono controller sata e dischi msata e visto che me ne sono accorto solo ora devo trovare qualche alternativa…

  62. Paolo

    ciao e complimenti per il lavoro, ma io ho questo problema con collegato un SSD, da cosa può essere causato? grazie
    # ha os datadisk move /dev/sda
    Error: ‘/dev/sda’ is a system disk and can’t be used!

    1. Henrik Sozzi

      Ciao Paolo, grazie per i complimenti sempre graditi 🙂
      Per quanto riguarda il tuo errore francamente non so… non mi è mai successo. Bisognerebbe spulciare lo script datadisk alla ricerca di quell’errore per capire da cosa è dovuto esattamente. Non è che l’hai già fatta la procedura e stai già usando il disco sda magari?

    2. Vincenzo

      Anche io mi sono imbattuto nello stesso problema. La causa è la esistenza di una precedente partizione nel disco (probabilmente non è un disco vergine). Invece di chiederti se distruggerla, dando il comando va semplicemente in errore:

      # ha os datadisk move /dev/sda
      Error: ‘/dev/sda’ is a system disk and can’t be used!

      Premetto che io, dopo vari tentativi, ho comprato un controller sabrent EC-UASP e quindi posso facilmente connettere e disconnettere il disco dal Rpi.

      Per risolvere, ho collegato il disco (tramite USB) su un PC con Windows, nel menù di Windows sono andato in “Crea e formatta le partizioni del disco rigido”, ho selezionato l’unità (occhio a non sbagliare…) connessa e ho eliminato la partizione. Quindi, ho espulso il disco, l’ho riconnesso al Rpi e tutto è andato liscio.

      Per essere proprio pignolo, non è proprio tutto andato come nella guida, nel senso che dopo aver dato il comando:

      # ha os datadisk move /dev/sda

      Mi è apparso dopo qualche secondo questo messaggio di errore:

      Post “http://supervisor/os/datadisk/move”: context deadline exceeded (Client.Timeout exceeded while awaiting headers)

      In realtà, bisogna comunque attendere perché il comando sta eseguendo le operazioni.

      Spero di essere stato di aiuto.

      1. Henrik Sozzi

        Grazie Vincenzo per aver condiviso la tua esperienza! Evidentemente hanno cambiato il modo di funzionamento di quel comando da quando ho scritto l’articolo perché al tempo quel che c’era come partizioni/FS non aveva importanza, piallava tutto. Ora si vede che per evitare di cancellare dati importanti hanno messo un controllo sulle partizioni esistenti. Si può comunque gestire le partizioni anche dal prompt di Linux con fdisk, è incluso in Home Assistant OS.

        1. Giancarlo Bissa

          Ciao Henrik,
          ho seguito anch’io la procedura avendo lo stesso problema di Vincenzo a causa di una partizione di boot che la “Gestione dischi” di windows non vedeva.
          Usando un partition manager (AOMEI partition assistant) l’ho cancellata ed ho lasciato SSD vuoto senza partizioni: ha funzionato salvo un piccolo momento di panico perché dopo circa 30-40 secondi è comparso lo stesso errore di Vincenzo

          “Post “http://supervisor/os/datadisk/move”: context deadline exceeded (Client.Timeout exceeded while awaiting headers) ”

          e successivamente si è chiusa brutalmente la sessione SSH su Putty e il Pi ha smesso di rispondere al ping.

          Ho atteso qualche decina di secondi ed ho visto che hanno iniziato a lavorare sia la SD che il SSD.
          Dopo circa 10-15 minuti HA si è riavviato di nuovo ed ha ricominciato a funzionare con il sistema su SSD.

          Grazie mille per le info.

  63. Vincenzo

    Buongiorno Henrik,
    ho seguito i vari punti della utilissima guida.

    La mia configurazione è questa:
    a) RPi 3b+
    b) Geekworm Raspberry Pi 3 B+/3B SATA HDD/SSD Storage Expansion Board, X820 V3.0 USB 3.0 Mobile Hard Disk Module Compatible with 2.5 Inch SATA HDD/SSD
    c) Kingston A400 SSD Unità a stato solido interne 2.5″ SATA Rev 3.0, 240GB – SA400S37/240G
    link amazon: https://www.amazon.it/gp/product/B01N5IB20Q/ref=ppx_yo_dt_b_asin_image_o02_s00?ie=UTF8&psc=1

    Sono riuscito ad abilitare il TRIM

    # lsblk –discard /dev/sda
    NAME DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
    sda 0 512B 4G 0
    `-sda1 0 512B 4G 0

    Ma quando tento di utilizzarlo, mi dà errore: “ioctl failed”

    # fstrim -a -v
    fstrim: /mnt/data: FITRIM ioctl failed: Remote I/O error
    /mnt/overlay: 75 MiB (78633984 bytes) trimmed on /dev/mmcblk0p7
    /tmp: 14.9 MiB (15659008 bytes) trimmed on /dev/zram2
    /var: 29.9 MiB (31305728 bytes) trimmed on /dev/zram1
    /mnt/boot: 22.9 MiB (23977984 bytes) trimmed on /dev/mmcblk0p1

    Ho provato a contattare la Geekworm per vedere se il problema è il controller.
    Conosci qualche dritta su questi prodotti della Geekworm?

    Grazie per qualsiasi informazione possa fornirmi.

    Vincenzo

    1. Henrik Sozzi

      Ciao Vincenzo, mi spiace che tu abbia riscritto due volte lo stesso commento. La prima volta che fai un commento sul sito va in attesa di moderazione e finchè non lo approvo non compare.
      Nel merito purtroppo quell’errore è tipico di quando il controller o l’SSD non supportano TRIM. Essendo che mi risulta che i Kingston A400 supportino TRIM (verifica magari se c’è un aggiornamento firmware…) temo che il problema sia il controller Geekworm X820. A quanto pare l’unico controller Geekworm che supportava TRIM l’ho preso io e subito dopo l’hanno sostituito anche quello con uno che non lo supporta :'(
      Temo purtroppo che la tua scelta sia obbligata: non attivare TRIM. Peccato perchè la vita dell’SSD si ridurrà parecchio.
      Mi spiace non averti potuto dare buone notizie. Se scopri qualcosa comunque tienimi aggiornato.
      In bocca al lupo.

      1. Vincenzo

        Ciao Henrik,
        mea culpa per il messaggio (pensavo fosse troppo lungo e l’ho inviato una seconda volta).
        Ho scritto alla Geekworm e questa è stata la loro testuale risposta:

        Hi sir,
        Thanks for your email.
        The current X820 board only UASP supported, does not support TRIM.
        For LINUX and USB2.0, UASP is better.
        best regards,
        Cindy/Geekworm

        Non mi rimane che usare questo controller con un HDD normale.

  64. Alessandro

    Nella tua guida scrivi che lo spostamento potrebbe richiedere molto tempo, a prescindere dal fatto che dipende dal database quanto sia grande, più o meno quanto potrebbe metterci normalmente per la tua esperienza? Sto eseguendo la procedure e sta impiagando tantissimo, non ho idea se stia lavorando o si sia bloccato.

    1. Henrik Sozzi

      Credo che dei tempi ragionevoli siano tra 15 e 60. Ma non so se con configurazioni diverse possa metterci di più…
      Se vuoi sapere cosa sta facendo l’unica è collegare un monitor e guardare cosa c’è a video

  65. maurizio

    ciao. avevo core su ssd (mi avevano aiutato a installarlo). Poi mi son reistallato hassio su sd e ora ho formattato con il programma di windows in ntfs l’ssd. Ho arrestato hassio e inserito con adattatore usb 3 l’ssd, ma quando riavvio non parte. devo staccare l’ssd per far ripartire Home assistant, devo prima preconfigurare l’ssd e abilitare Home Assistant ? Buona giornata e grazie

    1. Henrik Sozzi

      Sembra che il Raspberry cerchi di fare il boot da SSD. Francamente sono sempre stato contrario al boot del Raspberry su SSD e quindi non mi sono mai informato riguardo all’argomento, non saprei come aiutarti, mi spiace. È un argomento di sistemistica generale però, dovrebbe essere facile trovare qualcuno in grado di darti le informazioni nei gruppi dedicati a Raspberry Pi.

  66. Andrea

    Ciao Enrik, sto cercando di spostare i dati su ssd seguendo la guida. ho acquistato il case UGreen ed un ssd sata Kingstone A400(tutti e due indicati come funzionanti allo scopo). Con lo spostamento del disco dati da UI come descritto nella parte “Preparazione del sistema” mi si blocca tutto per ore con la schermata di HA di esecuzione riavvio e spostamento dati e connessione persa, riconnessione. Provato piu volte formattando la ssd e ricominciando da capo previa reistallazione e ripristino su sd. Cosa può essere che mi fà piantare il tutto?

    1. Henrik Sozzi

      Ciao, francamente non saprei. Hai scelto la combinazione di hardware che non ho mai sentito generare rogne. Magari verifica per entrambi che non ci siano aggiornamenti firmware.
      Temo che tu debba collegare un monitor al Raspberry Pi per poter leggere a video cosa stia facendo…

      1. Andrea

        Ciao Henrik, trovato il problema….. L’Ugreen aveva l’auto sleep attivo, ho scaricato il tool dal sito eseguito la procedura di eliminazione dei 3 min e tutto è andato liscio. Grazie

        1. Henrik Sozzi

          Ciao, è la prima volta che sento di questa cosa. Potresti spiegarmelo meglio? Cos’è, perché causa questo e cosa esattamente hai fatto? Così lo inserisco nell’articolo per evitare che possa succedere ad altri. Ovviamente dimmi come vuoi essere citato per il ringraziamento.

          1. Andrea

            Ok ci provo. Premetto che non sono un programmatore ma solo uno smanettone :))) Il mio potrebbe essere stato un caso però ha funzionato. Dalla tua risposta precedente ho preso lo spunto ed ho cercato aggiornamenti sul sito Ugreen. Nella sezione download inserendo il modello di case mi è uscito questo “ASM235CM Tools for Turning off Sleep Mode-2020.rar”. pare dalle documentazioni che sono dentro una cartella del download che per impostazione predefinita il case in oggetto abbia lo sleep mode impostato a 3 minuti, mentre con il tool si può mettere a off. Ho eseguito quello che c’è scritto nel pdf di esempio con annessa formattazione del disco. Provato nuovamente a migrare su ssd ed ha funzionato, dopo circa 30min è ripartito il sistema effettuate le prove da te descritte con esito positivo.
            # lsblk
            NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
            sda 8:0 0 111.8G 0 disk
            `-sda1 8:1 0 111.8G 0 part /mnt/data
            mmcblk0 179:0 0 29.7G 0 disk
            |-mmcblk0p1 179:1 0 32M 0 part /mnt/boot
            |-mmcblk0p2 179:2 0 24M 0 part
            |-mmcblk0p3 179:3 0 256M 0 part
            |-mmcblk0p4 179:4 0 24M 0 part
            |-mmcblk0p5 179:5 0 256M 0 part /
            |-mmcblk0p6 179:6 0 8M 0 part
            |-mmcblk0p7 179:7 0 96M 0 part /mnt/overlay
            `-mmcblk0p8 179:8 0 29G 0 part
            zram0 254:0 0 462.1M 0 disk [SWAP]
            zram1 254:1 0 32M 0 disk /var
            zram2 254:2 0 16M 0 disk /tmp
            # df -h | grep sda1
            /dev/sda1 111.7G 7.5G 99.7G 7% /mnt/data
            /dev/sda1 111.7G 7.5G 99.7G 7% /var/lib/docker
            /dev/sda1 111.7G 7.5G 99.7G 7% /var/log/journal
            # lsblk –discard /dev/sda
            NAME DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
            sda 0 512B 4G 0
            `-sda1 0 512B 4G 0

          2. Henrik Sozzi

            Immagino che lo sleep sia dopo quanto tempo mandare in spin off i dischi. Questo cambia parecchio con i dischi rotativi meccanici perchè quando sono fermi per ripartire ci mettono qualche secondo. Quindi per esigenze specifiche può aver senso non farli andare in spin off. Ma con gli SSD si risparmia solo un po’ di corrente in quanto appena viene ridata il disco è pronto, non credo che cambi niente… Mi sembra strano che l’inghippo possa essere stato quello.
            Ciò detto sul sito ugreen, nelle FAQ, riporta di disattivare lo sleep mode per installare Mac OS su un SSD… Quindi qualcosa inficia.
            In conclusione le possibilità sono due, a mio avviso:
            1) che effettivamente sia tal parametro a rompere. (ma allora tutti quelli che hanno comprato ugreen, fatta la procedura e via in passato…?)
            2) che riformattando l’SSD la procedura si sia messa a funzionare. Essendo che mi sembra di aver capito che da quando la command line è cambiata qualche versione di HA fa ci siano anche dei controlli su come è partizionato il disco che non fanno procedere…
            Ad ogni modo ti ringrazio molto per le informazioni che spero possano essere d’aiuto per altri.

  67. Ivan

    Ciao Henrik, ho seguito la tua guida moooolto tempo fa e tutto funzionava però non mi sono mai messo seriamente a gestire home assistant per vari problemi alla linea e router. Adesso ho cambiato linea e router, mettendo un fritz box 7530 ax. Gli ip sono diversi e già che ci sono volevo formattare la scheda SD e reinstallare hassios nella versione 64bit, ma il contenuto del SSD lo posso tenere o devo formattare anche quello? Così facendo devo rifare tutta la procedura? Grazie

    1. Henrik Sozzi

      Bella domanda. L’ho fatto anch’io diverso tempo fa. Avevo la 32bit e dopo un aggiornamento del SO non è più ripartito (aggiornamento andato storto… Chissà). Ho colto l’occasione per farmi una SD con Balena a 64bit, messa dentro e… puff. Riparte tutto com’era perchè HA riconosce che aveva i dati su SSD e li ricarica da lì.
      L’unica cosa che perdi è l’apertura della porta SSH dev sulla 22222 e l’abilitazione del TRIM, che vanno rifatti.
      Ad ogni modo per stare dalla parte della ragione fatti un bello snapshot prima di iniziare l’operazione, mettilo in cassaforte che se le cose vanno male per qualunque motivo sei in grado di ripristinare tutto durante l’onboarding dell’installazione.

      1. Ivan Cagol

        Ciao Henrik, ho appena rifatto la procedura, non tutta. Come dici tu mi riconosce l’SSD gia con trim e ripartizioni varie. Volevo riscrivere anche l’SSD ma gia quando l’ho inserito nel raspberry e dato di nuovo il comando “lsusb” non mi aggiungeva una riga ma me la sostituiva con un’altra con diversi valori, non so se mi spiego. Facendo tutte le altre prove sempra che tutto funzioni, terro’ controllato ai primi trim.
        Ne approfitto, tu sai che vuol dire questo messaggio?
        22-01-30 17:01:12 WARNING (SyncWorker_1) [supervisor.docker.interface] Can’t find homeassistant/aarch64-hassio-supervisor for cleanup

        1. Henrik Sozzi

          Ciao, suppongo ne abbiamo già parlato su messenger. Quel messagio no, non l’ho mai visto… A naso direi che non riesce a contattare il supervisor ma non saprei. Magari è un warning temporaneo che si risolve da solo.

  68. maurizio

    ciao Henrik, alla fine ho messo SSD diretto togliendo la SD, ho seguito la tua guida e ho abilitato ssh su porta 22222 e ora vorrei abilitare il TRIM, solo che non potendo attaccare e staccare l’ssd per sapere quale USB sta usando, puoi dirmi come fare? altrimenti non riesco ad abilitarlo, facendo lsusb mi esce:

    Bus 001 Device 001: ID 1d6b:0002
    Bus 001 Device 005: ID 0781:5572
    Bus 001 Device 002: ID 2109:3431
    Bus 002 Device 002: ID 2537:1068
    Bus 002 Device 001: ID 1d6b:0003
    Bus 001 Device 003: ID 10c4:ea60

    1. Henrik Sozzi

      Ciao, purtroppo non conosco un modo alternativo a staccare l’SSD. Potresti sempre farti una SD con HA (o quella che usavi precedentemente…) e fare lsusb da lì, così per differenza lo trovi.

  69. madavideDavide

    Ciao Henrik, innanzi tutto grazie per le tue guide, sono eccezionali e a prova di errore, circa un mese addietro ho eseguito la tua guida e abilitato dati su ssd e trim attivo senza problemi. Due giorni fa a causa di un crash del sistema ho dovuto ripristinare hassos da un backup e il raspberry non mi ha visto più l’ssd dopo vari tentativi sono riuscito a risolvere usando la porta usb 2 e riseguendo la tua guida tutto è andato bene, non c’è verso di avviare l’ssd da usb 3. Hai qualche suggerimento o aiutarmi a capire cosa sia successo? Grazie in anticipo

    1. Henrik Sozzi

      Ciao, grazie! 🙂 Purtroppo detta così non ho idea, non mi è mai capitato di vedere una situazione simile. Hai provato l’altra porta USB3? Magari è la porta USB che è saltata.

  70. roberto

    Henrik, grazie 1000 per la guida, chiara e comprensibile … quasi tutta, anche per chi é alle prime armi con rasp/HA/linux. Io l’ho seguita ed eseguita correttamente sul mio rasp 4 4mb con sd kingston 32 classe 10, fino alla migrazione, poi mi sono fermato al punto in cui ribadisci “ATTENZIONE! Prosegui solo se sei sicuro che sia il controller che il tuo SSD supportino il comando TRIM!” , in quanto io non lo sono e non ho ben chiaro come appurarlo. Posso dire che ho un case Argon ONE M.2 (supporta ssd SATA B-key o B+M key) con una ssd Trascend TS120GMTS820S , ma non so che chipset monta. Sai se è compatibile con TRIM e posso continuare senza incasinare tutto? Grazie

    1. Henrik Sozzi

      Ciao, scusa se non ti ho risposto ma ci siamo già parlati sul gruppo Home Assistant Italia quindi me la sono presa comoda qui 🙂
      Abbiamo appurato che così come arriva i case Argon non sono compatibili TRIM. Il produttore risponde che magari un giorno lo implementerà ma da tanto tempo non l’ha mai fatto. Esiste però un firmware non ufficiale (so che tu lo sai ma magari viene buono a qualche altro lettore) che implementa il trim. Il link è presente nell’ultimo post di questo thread.
      Disclaimer: a vostro rischio e pericolo. Ho postato il link solo per riferimento. Ognuno si assume i rischi delle proprie azioni.

  71. Andrea Santinelli

    Ciao,
    vorrei comprare questo controller:
    Geekworm Raspberry Pi 4 mSATA SSD Adapter X857 V2.0.
    E’ idoneo per installare Home Assistant e non avere problemi?
    Grazie

    1. Henrik Sozzi

      Ciao, io ho proprio quello ma versione 1. Purtoppo nella versione 2 hanno rimosso il supporto a TRIM (ma perchè? Nonostante le richieste di tanti…) e quindi l’ho rimosso dalla lista per questo motivo. Il controller è fantastico, compatto, funziona bene. Ma non avere TRIM… 🙁

  72. Andrea Santinelli

    Ciao!
    mi sono iscritto al gruppo Facebook Home Assistant Italia così ti seguo anche li!! Una domanda allora.. quale mi consigli come controller? Devo prenderne uno USB esterno? Perché preferivo quel fattore di forma…
    Grazie

    1. Henrik Sozzi

      Hai fatto bene ad iscriverti, ci sono tante persone di valore che possono dare una mano lì dentro! 🙂
      Come controller, non potendo purtroppo scegliere un geekworm che anche secondo me era la scelta perfetta, se vuoi spendere poco c’è l’ugreen che però è esterno e anche a me non piace avere cavi penzoloni da tutte le parti… Oppure l’Argon One M.2 (appena aggiunto all’articolo) che è un bel case, compatto con uno slot per un SSD M.2 tutto interno. Però costicchia…
      Potresti valutare un case home made e all’interno alloggiare l’ugreen… Idea buttata lì. Perchè con il prezzo di Argom One + RPI, per quanto bello, ci si compra un MiniPC…

  73. Andrea Santinelli

    Ciao!
    Leggo che il controller GeekWorm non supporta TRIM ma UASP. Senza TRIM non funziona bene la cosa? Si riduce la vita dell’SSD? O è solo un fatto di velocità? Perché i controller esterni non mi piacciono proprio. Potrei comprare un case esterno e modellare un case da stampare in 3D ma poi la realizzazione (io non ho stampante 3d) non è così economica. Infine.. nella foto che hai pubblicato hai installato un dissipatore ENORME per un Pi4. E’ necessario? Io attualmente sul Pi3 ho il case alluminio della GeekWorm e le temperature sono sempre basse. Mi consigli un dissipatore a ventola di quel genere?? Come carico CPU attualmente ho installato il broker MQTT, Tasmota, Integrazione per inverter fotovoltaico, integrazione zigbee per i sensori temperatura, integrazioni fritz. Vorrei poi riattivare Grafana (che sul Pi3 ho disattivato a causa del carico CPU eccessivo).
    Che dici?
    Grazie!

    1. Henrik Sozzi

      Ciao, scusa se ti rispondo un po’ tardi.
      Si, i controller che vendono oggi Geekworm sono tutti UASP ma non TRIM, purtroppo. Senza TRIM funziona tutto bene lo stesso. Il problema è che senza TRIM non è possibile distribuire il wearing della flash in modo uniforme tra le celle prolungando la vita del disco. Questo perchè il disco, non essendo in grado dal suo firmware di interpretare il file system, non sa quali aree sono vuote e quali no. Di conseguenze rischi di sollecitare molto più frequentemente le stesse aree di memoria che prima o dopo cedono. In sostanza TRIM è la garanzia che il tuo SSD duri più tempo possibile (a meno che lo spazio vuoto sia pochissimo, in tal caso le celle su cui scrivere sono sempre quelle…)
      Per lo stesso motivo anche un disco più grande del necessario prolunga la vita dei dati in quanto la riscrittura delle stesse celle avverrà con minor frequenza.
      Per i controller esterni lo so, non piacciono nemmeno a me… Infatti sono contento di avere un Geekwork con TRIM come erano quelli precedenti. Oggi, come alternativa per non avere componenti esterni, resta solo l’Argon One M.2 che però costa parecchio. Alla fine tra Raspberry e case Argon conviene forse un Mini PC…
      Per quanto riguarda il mio dissipatore no, non è assolutamente necessario! 😀 Deriva dal fatto che all’inizio avevo il solito kit con ventolina che dopo un mese ha cominciato a fare un rumore da tagliaerba. Spazientito l’ho spenta e per un po’ ho fatto a meno (ma andava sempre in throttling, non mi piaceva…) così ho preso il miglior dissipatore che ho trovato. Ma anche quella ventola, dopo quasi un anno però, ha iniziato a far rumore. Sostituita con una Noctua credo di aver risolto il problema. E’ inudibile.
      Le cose che vuoi mettere sul pi4 sono perfettamente adeguate all’hardware, vai tranquillo.

  74. Alessandro

    Ciao!
    Grazie per la guida non capisco perchè tutti parlino di spostare tutto su SDD e non di spostare solo i dati che sembra l’opzione consigliata anche dagli sviluppatori!
    Ho un problema nel seguire la procedura con questo HW su un RPI4 8GB:

    https://www.amazon.it/gp/product/B07Y825SB8/ref=ppx_yo_dt_b_search_asin_image?ie=UTF8&psc=1

    https://www.amazon.it/gp/product/B01N6JQS8C/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1

    da intefaccia il comando MOVEDADISK mi dice “No suitable attached devices found”, da CLI “ha os datadisk list” non restituisce alcun SDD; ma da SYSTEM – HARDWARE – ALL HARDWARE l’SSD è riconosciuto è listato.

    cosa sto sbgagliando? L’HW dovrebbe essere tra quello supportato.

    1. Henrik Sozzi

      Ecco, quando riesci a capire perché quasi tutti parlano di spostare tutto (boot incluso) su SSD dimmelo perché non lo capisco nemmeno io… E’ uno dei motivi che mi ha spinto a scrivere questo articolo, almeno un po’ di utenti li ho intercettati e sottratti a questa pratica tuttaltro che ottimale 🙂
      Riguardo al tuo problema: si, ti confermo che l’hardware che hai scelto è in assoluto quello che non ha mai dato problemi. Ma per quanto riguarda i “problemi” parliamo di attivazione del TRIM, non di riconoscimento del disco, che invece è ben meno sensibile al tipo di disco.
      Potrebbe essere come è partizionato / formattato. All’inizio, quando il comando CLI era datactl move, il disco veniva partizionato automaticamente. Mi pare di capire che da quando è diventato ha os datadisk move sia diventato più schizzinoso. La documentazione è molto scarna a riguardo. L’unica piccola informazione è qui:

      If you have been using a data disk previously with Home Assistant Operating System, you need to use your host computer to delete all partitions before using it as a data disk again.

      Ti consiglio quindi di eliminare tutte le partizioni del disco e di riprovare (puoi farlo dalla shell di HA oppure collegando il disco al PC).
      Se ancora non funziona puoi provar a creare una partizione di base e formattarla con un FS… Inizierei a provare con un ext4, che è quella che usa la partizione dati (appena verificato la mia).
      Fammi sapere come va…

      1. Alessandro

        Confermo! Ho eliminato le partizioni con tool standard di Windows e ora l’SSD viene riconosciuta e (attendendo 1 h!) son riuscito a spostare i dati.
        Ora sto litigando cn la rete zigbee, che leggo va in conflitto con l’HD se le porte USB usate sono le USB3

        Grazie!
        Gentilissimo

        1. Henrik Sozzi

          Ottimo! Rete ZigBee e usb3 del Raspberry fanno a pugni… Usa una prolunga USB e posiziona la chiavetta lontano. Oppure, soluzione definitiva e la migliore, segui il mio articolo per fare un gateway ZigBee oppure prendi una z-bee duo ethernet (se puoi) e vai su un altro pianeta.

  75. Alessandro

    Ho già una prolunga usb per il conbee 2, ma forse é troppo corta? (Circa 30 cm). Oltre alla zigbee duo, pensi che anche la Sonoff ZigBee 3.0 USB Plus possa essere una soluzione alternativa ed equivalente? (Visto che richiederebbe meno lavoro.. 🙂 )

  76. Andrea Santinelli

    Ciao Henrik, ho seguito la tua guida ed è filato tutto liscio. Ho utilizzato la procedura da interfaccia utente che si è preoccupata di fare tutto il lavoro. Ti allego il controller che ho usato io così, se vuoi, puoi aggiornare la tua lista.
    – Controller ORICO M.2 NGFF (https://www.amazon.it/gp/product/B08JV3HZ9S/ref=ppx_yo_dt_b_asin_title_o06_s00?ie=UTF8&psc=1)
    – Hard Disk Kingston A400 da 240GB (https://www.amazon.it/gp/product/B07P22RK1G/ref=ppx_yo_dt_b_asin_title_o06_s00?ie=UTF8&psc=1)
    Al termine della procedura avevo la partizione su SSD correttamente ridimensionata e TRIM attivo.
    Grazie delle tue preziose guide!!!

    1. Henrik Sozzi

      Bella la soluzione di questo controller!!! Tolti i Geekworm che fissandosi con le torrette al Raspberry erano inarrivabili ma non supportano più TRIM (dannati!!!) direi che subito dopo ci metterei questo controller che ingloba il disco! Grazie mille per avermi scritto una volta tanto quando è andato tutto bene (di solito i commenti sono di problemi… 😉 ) e per l’indicazione dell’hardware, li aggiungo appena ho un attimo!
      edit: aggiunti, grazie!

  77. Alessio

    Ciao, ho seguito la guida e dopo un piccolo problema con putty sono arrivato alla creazione del file per aggiungere una regola a udev .
    Sinceramente non ho capito come fare a creare il file.
    chiedo un aiuto.
    grazie

    1. Henrik Sozzi

      Ciao, presumo tu sia lo stesso Alessio a cui ho appena risposto per i problemi di Putty, questo risponde alla domanda se poi ce l’avevi fatta 🙂
      Per creare il file devi solo seguire le istruzioni dell’articolo scrivendo i comandi nel terminale tramite putty o la console fisica.

  78. Francesco Ciarrocchi

    Ciao Henrik, ho usato la tua splendida guida un bel pò di tempo fa ti ringraziai su FB e ora lo faccio anche qui 🙂
    Rileggevo l’articolo perchè ho avuto un problema con l’aggiornamento del SO dalla 9.1 alla 9.3 non andando mai a buon fine con log sempre pulito. Cosi ho deciso di cambiare sd e già che c’ero di passare da 32 al 64bit.
    Volevo chiederti delle delucidazioni, una volta inserita la nuova MicroSD, ovviamente con la mia super fortuna HA si è fermato in http ed ho dovuto importare un back-up per riavviarlo (poco male). Ora dopo aver riaperto la porta 22222 quando do il comando # lsblk su /mnt/data vedo che è impostata la MicroSD :
    `-mmcblk0p8 179:8 0 58.8G 0 part /var/log/journal
    /var/lib/docker
    /mnt/data
    Secondo te era meglio non passare da 32 a 64 bit? è potuto accadere qualcosa durante l’installazione?
    Attualmente mi consigli di procedere con la guida come se non ho mai spostato i da su ssd con # ha os datadisk move /dev/sda o posso provare altro?

    P.s. non so se ho inviato doppio il post perchè mi ha dato errore la pagina, in caso scusami.

    1. Henrik Sozzi

      Ciao, grazie per averla definita “splendida” 🙂
      Anch’io tempo fa avevo colto l’occasione di un problema di aggiornamento OS per passare dalla versione 32 alla 64bit. Non ho avuto alcun problema e te lo suggerisco, visto che la 64bit è ora l’edizione consigliata.
      Non ho capito bene cosa ti sia successo, anche perchè quando io ho fatto ripartire HA con la MicroSD appena flashata da Balena è ripartito tutto come prima in quanto ha riconosciuto da solo che i dati erano su SSD. Ho dovuto solo riaprire la porta 22222 e riattivare TRIM.
      Ad ogni modo se hai un backup puoi sempre ripristinarlo e poi rifai la procedura usuale.

      1. Francesco Ciarrocchi

        Ciao Henrik,
        ci mancherebbe è la pura verità 🙂
        Quindi mi confermi quanto avevo capito leggendo le tue risposte a qualche utente più sopra…che una volta preparata la MicroSD è ripartito tutto normalmente tranne il TRIM e la porta 2222. Già da qui la prima differenza per me 😞 al primo avvio sono dovuto entrare in http e visualizzavo la schermata di accesso dove potevo creare un nuovo utente o ripristinare un backup scelta che ho effettuato.

        Dopo svariate prove ho capito che in pratica adesso è come se ho 2 installazioni, una con dati su SSD ed una con dati su MicroSD…
        Me ne sono accorto dopo un riavvio del host, perché mi sono ritrovato con dei componenti aggiuntivi da aggiornare anche se ho tutto aggiornato e nemmeno un backup nell’elenco.
        Poi andando a vedere sulla pagina della memoria infatti ho la dimensione della MicroSD.
        Se effettuo un riavvio torno con i dati su SSD 🤦🏻‍♂️.

        Oggi vorrei provare a formattare la MicroSD e ripetere la procedura per vedere se riesco a risolvere, sperando che non sia un problema del Raspberry o del controller sabrent, che per qualche motivo non viene visto sempre all’avvio.

  79. Paolo

    Ciao domandina. Io ho HAOS e attualmente ho tutto su MicroSD e voglio spostare su SSD.
    Dimmi se i passaggio sono corretti:
    Collego Controller SSD ( a cui ho collegato SSD da tua lista) alla porta usb del Raspberry Pi 3B+.
    Vado in Sistema e clicco su “Sposta il disco dati”.
    1) A questo punto cosa mi esce? Mi esce una finestra in cui selezionare il disco che ho inserito?
    2) L’SSD deve prima essere formattato? In Fat32?
    3) una volta fatto questo il programma fa tutto da se compreso il TRIM dell’SSD?
    Grazie

    1. Henrik Sozzi

      Ciao, colleghi l’ssd e usi “sposta il disco dati”. Ti esce l’unica opzione che puoi avere, ovvero il disco che hai collegato.
      Sul fatto della formattazione non è chiaro. Non ci sono specifiche a riguardo e quando l’ho fatto io ha partizionato il disco da solo. Prova, se non va bene non ti propone il disco. Al massimo lo ripartizioni eliminando tutte le partizioni oppure creando una partizione ext4 e riprovi finché va a buon fine.
      Sul punto 3 devi leggere l’articolo… 🙂

      1. Diego

        Ciao. Ho acquistato il SSD Transcend musata 230S ed il controller cavo della Sabrent ma non sono compatibili (lo slot dove si inserisce il SSD non alloggia il Transcend) che controller posso comprare? Grazie.

        1. Henrik Sozzi

          Ciao, il cavo Sabrent è SATA, il Trascend immagino tu intendessi mSata, come dicevo sopra ai consigli occhio allo stesso formato tra controller e disco. E come spiegavo sopra tutti gli msata erano lì quando c’erano controller msata come quello che ho io ma con il firmware nuovo non supporta più TRIM quindi ho rimosso il controller ma non ho voluto rimuovere i dischi perchè erano frutto di dispendiosa ricerca.
          Non conosco un controller sicuramente compatibile con TRIM mSata quindi le tue possibilità sono:
          1) cambi disco e preni un sata della lista
          2) cambi controller sperimentando un mSata.
          Se segui la seconda strada e trovi un controller che funziona con TRIM ti prego di segnalarmelo che lo aggiungo alla lista!
          Hint: se usi Amazon puoi provarlo e se non funziona fare il reso gratuitamente… 😉

  80. Paolo

    Ciao
    Ho seguito passo passo la procedura senza troppe difficoltà.
    Segnalo solamente che all’invio del comando ‘ha os datadisk move /dev/sda’ per spostare il contenuto su SSD esterno, ricevo in risposta ‘Post “http://supervisor/os/datadisk/move’: context deadline exceeded (Client.Timeout exceeded while awaiting headers)” che parrebbe un messaggio di errore.
    In realtà sembra che il sistema si riavvii (lo vedo perché perdo la connessione) ed esegua comunque lo spostamento dei dati in quanto dopo una decina di minuti trovo il sistema attivo ed il successivo comando “df -h | grep sda1” da il risultato atteso.

    1. Paolo

      Altro problema che ho riscontrato riguarda le porte USB utilizzate sul Raspberry PI4. Se collegate l’SSD su una delle porte USB3.0 del Raspberry, potrebbero esserci problemi legati alle interferenze sulle due porte USB 2.0 (il dongle USB/ZIGBEE CONBEE II che avevo spostato su una delle porte USB 2.0 aveva smesso di funzionare anche se collegato con un cavo di prolunga). Spostato l’SSD su una delle porte USB 2.0 e rimesso il dongle CONBEE II sulla USB 3.0, tutto ha ripreso a funzionare regolarmente. Non ho fatto molte altre prove ma sembra un problema noto (molti forum ne parlano).

      1. Henrik Sozzi

        Si, purtroppo è un problema noto. Sono le porte USB3 del RPI4 il problema, emettono più onde elettromagnetiche del dovuto creando interferenze che azzoppano dispositivi radio. Anche per quello mi sono fatto un gateway basato su RPI3 delocalizzato e connesso in ethernet che ha risolto definitivamente il problema.
        Cmq non è che disturba l’USB2 ma tutto quel che ha intorno. Avendo tu spostato l’SSD su USB2 hai eliminato l’inondazione di questo campo elettromagnetico ma, ovviamente, la velocità di trasferimento dell’SSD è ridotta.
        Io ti consiglierei di passare ad un coordinator ethernet o wifi che è meglio per diversi motivi. Trovi l’articolo di come ho realizzato il mio, completo di file del case da stampare in 3D se ti interessa.
        Se vuoi una cosa pronta, invece, ti consiglio la Z-Duo Duo ethernet o wifi.

        1. Paolo

          Grazie Henrik
          In questo momento la mia soluzione prevede l’utilizzo di due coordinatori diversi, uno (Conbee II) che utilizzo con ‘deconz’ e uno (basato su un chip Silicon Labs EFR32MG21) che utilizzo con ‘zigbee2mqtt’. Questo perché alcuni dispositivi che utilizzo non fanno da routers a end devices di marca diversa creandomi non pochi problemi. Al momento sono ancora in fase di “sperimentazione” per cercare di individuare la soluzione migliore (ognuna delle due ha i suoi pro e i suoi contro), ma alla fine sicuramente convergerò verso una soluzione come quella da te suggerita, magari utilizzando ZHA.
          Grazie ancora.

          1. Henrik Sozzi

            Soluzione creativa! Mi piace ma non devi avere il pieno di wifi dei vicini in tutte le bande perché con due reti ZigBee su due canali diversi + il tuo wifi non avanza granchè…
            Cmq si, i dispositivi ZigBee non ben compatibili sono una piaga… Dovrebbero fare test di interoperabilità per dare la certificazione di zgobee Alliance, invece ogni produttore si fa le sue magagne, principalmente per chiudersi nel suo ecosistema… 😓 Considera magari anche il cambio dei router non ben compatibili, anche se immagino che se non l’hai fatto sono dispositivi che non puoi sostituire… In bocca al lupo 👍🏻

  81. Andrea

    Ciao Henrik, ho tutto funzionante da circa un anno con il case UGreen ed un ssd sata Kingstone A400. Leggevo sopra che ora anche la custodia Argon one con la scheda espansione M.2 ora supporta il trim e visto che il mio Rasp è già nell’Argon One, ero intenzionato a prendere la scheda di espansione + la memoria sata m2. La mie domanda sono, devo rifare tutto da capo? Posso recuperare i dati che ho nell’attuale memoria per poi ripristinarli?
    Grazie.

    1. Henrik Sozzi

      Bella domanda. Non ho mai provato a trasferire i dati da un disco ad un altro…
      Secondo me la strada più semplice, comunque, è quella di fare un backup completo, salvarlo sul PC (o su cloud), collegare il nuovo SSD e ripristinare il backup.
      Se una volta collegato il nuovo SSD HA parte come appena installato basterà ripristinare il backup nella prima schermata dell’UI dell’onboarding, che propone appunto questa possibilità. La dimensione massima per l’upload del file di backup non è enorme però, se il file è più grosso sarà necessario fare la prima configurazione, copiare nella sua cartella il file di backup e ripristinarlo.
      Oppure l’inverso, prima spostare sul disco dati e poi ripristinare il backup, per non passare da un ripristino sulla SD.
      Facci sapere la tua esperienza quando l’hai fatto, potrà essere utile ad altri!
      Buon lavoro 🙂

    2. Rudy

      Scusa Andrea se disturbo, ma hai l’Argon One prima o seconda versione ? io sto cercando l’espansione per la prima per fare il lavoro e seguire questa preziosa guida di Henrik … 🙂 sapete magari dove posso trovare l’espansione per SSD ?

  82. Paolo Gaggero

    Ciao complimenti per l’articolo…una cosa però…sopra dici che ora il metodo è più veloce per lo spostamento dei dati e di cliccare direttamente su quello….solo che poi ci serve l’ID del controller SATA che però è leggibile solo nella parte di guida che abbiamo saltato….ora che ormai sono al punto successivo come faccio a leggere l’ID del controller sata? Grazie

    1. Henrik Sozzi

      Grazie, correggerò l’articolo! Puoi cercare gli id di vendor e device su Google, dovresti riuscire a discriminare i dispositivi.
      Ti prego la prossima volta di scrivermi in un posto solo, non spammare contemporaneamente in tutti i media 😉

  83. Matteo

    Ciao Henrik,
    grazie per la guida che credo utilizzerò nei prossimi giorni.
    Due domande preliminari:
    1) Abilitando il TRIM, resta sempre abilitato in futuro anche con gli aggiornamenti di HassOS? O periodicamente occorre fare qualche verifica?
    2) Per evitare i problemi con Zigbee, che prolunga consigli? Ho letto che ne avevi provate diverse prima di trovare quella migliore 🙂

    Grazie

    1. Henrik Sozzi

      Ciao
      1) resta attivo sempre. L’unico caso è quello in cui rifai la SD da zero. Essendo che l’abilitazione risiede su un file nella SD dovrai ripetere il passaggio (ma solo quello perchè al primo avvio di HA con un disco esterno contenente i dati li caricherà automaticamente da lì come se niente fosse)
      2) eh, bella domanda… Non ricordo durante lo sclero di provare mille combinazioni diverse per creare la congiunzione astrale giusta quale fosse la prolunga che alla fine funzionava meglio… Mi pare (con enfasi sul PARE) che fosse una prolunga Amazon Basics ma ti posso dare un consiglio molto migliore: fatti un controller Zigbee esterno all’host di Home Assistant, ne guadagnerai in tanti aspetti. Zero problemi di interferenze in cui se la prolunga non è nella posizione giusta smette di andare e cose del genere… Puoi posizionare l’oggetto in centro alla casa o comunque in un luogo più strategico. Il controller rimane online anche durante i fermi di HA (update di HA, eventuali fermi per manutenzione HW, qualunque cosa). E la rete zigbee funziona moooolto meglio se il coordinator è tendenzialmente online 24/7 (nel mio caso i sensori Aqara avevano il brutto vizio di uscire dalla rete a coordinator fermo e qualche volta anche i repeater Ikea, portandosi dietro tutti i device a loro collegati… Mai più successo con controller esterno).
      Se vuoi riutilizzare la chiavetta che usi oggi puoi farti un server zigbee esterno come ho spiegato qui: Gateway Zigbee ethernet/wifi su Raspberry Pi 3 o 2 (con stampa 3D)
      Oppure puoi cogliere l’occasione per prendere un controller ethernet: Quali dispositivi per Home Assistant?

  84. Germano Rossi

    Ciao Henrik, visto il tuo interessantissimo video ma aimè solo dopo avere già questa configurazione HA tutto su Samsung MZ-76E500 860 EVO SSD Interno da 500 GB, SATA, 2.5″ e raspberry pi4 realizzata da tutorial vari su Youtube. Debbo dire di riscontrare qualche instabilità e quindi vorrei seguire la tua preziosa guida. A oggi questa guida è ancora valida o è cambiato qualcosa? Considera che sono un neofita. Grazie

    1. Henrik Sozzi

      Ciao Germano, l’articolo è ancora validissimo e non mi stancherò mai di dire che quello esposto è l’unico metodo ufficialmente supportato da Home Assistant. Infatti in Home Assistant è stata aggiunta la possibilità di effettuarla con un click dalla interfaccia utente.
      La parte seguente, quella di attivare il TRIM, è un po’ più arzigogolata, purtroppo ma anch’essa è più che valida.
      Potrebbe esserci qualche piccola variazione che però non cambia il senso dell’operazione (nel qual caso scrivimi pure che se ho tempo ti aiuto volentieri).
      L’unica differenza che c’è riguarda l’apertura della porta dev 22222 (c’è il link a questo altro mio articolo nel testo) in cui c’è una possibilità più semplice (accennata all’inizio dell’articolo) ma che non ho ancora fatto in tempo a stendere per aggiornare quell’articolo.
      Ad ogni modo la procedura esposta dovrebbe comunque funzionare in quanto mi scrivono in tanti di aver effettuato l’operazione.
      Spero di trovare il tempo per aggiornare quanto prima quell’articolo ma gli impegni di lavoro, ultimamente, stanno prendendo il sopravvento… 🙁

      1. Germano Rossi

        Grazie della risposta. Immagino che tu sia assorbito, come detto, dal lavoro quindi la rende ancor più gradita. Prima di iniziare dovrò leggerla e rileggerla più e più volte ma non perché non sia chiara, semplicemente il problema è che io sono proprio un “osso” e pure rimbambito. Andrò step by step quando l’avrò assimilata. Nel frattempo ti ringrazio sinceramente per la tua disponibilità ad aiutarmi. Ciao

  85. ClaudioG

    Auguro a Erik ed a tutti un buon inizio 2024.
    Sicuramente migliore del mio…
    Allora… condivido con questa comunità la mia esperienza.
    Ho utilizzato HA con dati su SSD come indicato in questo articolo per molto tempo.
    Intanto il sistema si è gradualmente espanso e… complicato.
    Ho fatto svolgere con regolarità i backup.
    Da qualche giorno ho notato un funzionamento irregolare di HA al quale non ho dato importanza fino a quando ieri è entrato in modalità provvisoria e quando ne usciva il boot era incompleto (mancavano pagine sulla dashboard ed alcuni dispositivi).
    Nessun problema… restore di backup e via!
    Niente da fare il problema persisteva.
    Allora ho pensato che mi avesse abbandonato la MicroSD e quindi ne ho presa una nuova sulla quale ho reinstallato un backup FISICO di qualche mese fa che per prudenza periodicamente faccio in aggiunta a quelli giornalieri.
    Niente da fare… il problema sussisteva lo stesso.
    Allora ho reinstallato Hassio dal file originale.
    Al boot mi chiede nome utente e password e quindi io inserisco root ma il sistema non mi fa accedere.
    Pensa che ti ripensa mi si accende la lampadina ed inserisco le credenziali del “vecchio” sistema.
    Manco a dirlo che il tutto si apre ma… mi ritrovo nel “vecchio sistema” con i problemi di prima.
    Deduco quindi che il problema non era la MicroSD ma l’SSD.
    Nessun problema (tanto ho i backups).
    Stacco l’HD e faccio un reboot.
    Il restore dalla maschera di boot non ha funzionato in quanto ha looppato all’infinito
    Creo un account “veloce” e faccio il restore dal programma.
    Al termine dell’operazione non ho trovato nulla della vecchia installazione (automazioni, device, dashboards, componenti aggiuntivi, ecc). Neanche l’IP è cambiato.

    Quindi mi trovo con anni di lavoro su un SSD (forse) corrotto e una serie di backups del tutto inutili.

    La morale della storia è:
    – se avessi lasciato il tutto su microSD probabilmente avrei risolto allo step: “restore FISICO” per rendere nuovamente funzionante il sistema (visto che il problema sarebbe stato la microSD corrotta non essendoci SSD) e riallinenado a ieri i dati con i backup giornalieri (essendo la “struttura” del sistema rimasta intonsa)
    – avrei dovuto fare un backup fisico anche dei dati dell’HD.

    Cerchiamo di capire lo scenario:
    – il restore dei backup giornalieri non scrivono i dati sulla “partizione dati di HA” (che prima era su SSD ed adesso su microSD) ma su quella di provenienza (backup fatto da SSD –> restore –> nessun dato copiato su MicroSD).
    – tutti i dati di mio interesse si trovano sull’SSD forse corrotto.

    In definitiva penso che debba spostare con l’apposita procedura i dati dall’SSD alla MicroSD.
    Per fare questo devo testare ed eventualmente sistemare fisicamente l’SSD non avendo senso spostare dati corrotti/incompleti per come adesso sono.
    Data la mia totale sconoscenza dell’ambiente Linux avrei bisogno di conoscere se esiste un programma per testare l’SSD ed eventualmente ripararlo e come usarlo dal PC.

    In alternativa penso sia sufficiente riuscire a capire dove si trovano:
    – la configurazione di tutti i devices (sono mooolti e, i nomi ancorchè da me standardizzati, influiscono sulle automazioni/dashboard)
    – la configurazione della dashboard, affinata con anni di smanettamento.

    Le automazioni, i templates i devices virtuali, li trovo nei backups ed i componenti aggiuntivi li potrò riscaricare.

    PRENDETE LE GIUSTE PRECAUZIONI, VOI CHE USATE LA PROCEDURA INDICATA IN QUESTO ARTICOLO.

    Grazie dell’attenzione.

    1. Henrik Sozzi

      Ciao Claudio, mi spiace che ti sia capitata questa rogna, so quanto sia frustrante quindi ignoro gli spunti polemici (anche perché non è la mia procedura ma quella consigliata dagli autori di Home Assistant, io ho aggiunto solo l’attivazione del TRIM per allungare la vita dell’SSD, se controller e disco lo supportano)
      Ti scrivo velocemente dal lavoro ma spero di darti qualche spunto utile:

      • Nel backup non c’è alcuna informazione circa il posto in cui è stato fatto.
      • La MicroSD va bene farne un backup fisico (io non lo faccio cmq…) ma non serve farlo di frequente in quanto nessun dati variabile vi risiede. Peraltro puoi facilmente rifarla con Balena Etcher e all’avvio verrà riconosciuta la partizione dati su SSD in automatico
      • Normalmente il fatto che riconosca i dati su SSD in automatico è una gran bella cosa, nel tuo caso (SSD probabilmente corrotto) un po’ meno. Più in basso ti dico cosa farei io da provare
      • Considera che anche gli SSD possono corrompersi. Magari non ha il firmware aggiornato e c’era un bug che è stato risolto nell’ultimo firmware? Magari si è spenta la corrente mentre ci stava scrivendo qualche volta? Magari è stato usato senza TRIM per un po’? Magari aveva un difetto? Magari è stato staccato il cavo SATA durante la scrittura per sbaglio? Ci possono essere mille motivi.

      Comunque fai un bel respiro che hai i backup, non perdi niente.
      Ti dico cosa proverei a fare io (spero di non aver ignorato qualcosa che hai scritto, sottolineo ancora che sono al lavoro e ho letto un po’ di fretta):

      • Inizializzare la microsd con Balena Etcher con Home Assistant OS
      • Scollega l’SSD dal Raspberry Pi
      • Metti la microsd e fai partire il sistema
      • Se il backup rientra nelle dimensioni massime ripristinabili ripristinalo tramite il link in basso nella procedura di onboarding, altrimenti crea un utente veloce come hai fatto e ripristinalo normalmente (puoi installare Samba per aiutarti). Importante è che devi fare tutto con SSD staccato
      • Una volta ripristinato su MicroSD (e si ripristina, mi è capitato di farlo a me…) puoi pensare di rifare la procedura di spostamento dati su SSD (credimi che conviene, nonostante la tua brutta esperienza), ma magari valuterei di cambiare SSD o quantomeno di verificarlo collegnadolo a PC (firmware, dati SMART, riformattarlo con formattazione completa)

      In extrema ratio nel backup hai tutto il necessario per ripristinare tutto il tuo lavoro, non temere.
      Nella cartella /config hai tutto quel che serve:

      • configuration.yaml con la cartella dei tuoi package, eventuali include ed eventuali blueprints ripristini automazioni, script, sensori, helper ed integrazioni yaml
      • Nella cartella nascosta .storage hai tutta la configurazione fatta da UI (integrazioni, dispositivi, entità compresi nomi personalizzati) ed anche tutte le dashboard che hai creato da UI (file che iniziano con “lovelace”)
      • Se hai configurato delle dashboard yaml copia anche le cartelle che contengono i relativi file yaml che hai creato
      • La cartella custom_components contiene tutti i componenti personalizzati che hai installato da HACS o a mano

      Usando Samba, per esempio, diventa facile copiare dal backup che hai su PC questi file e ripristinare a mano la situazione che avevi sovrascrivendo i file della tua installazione pulita.
      Per estrarre il file di backup puoi usare 7zip, se non è criptato con password, in caso contrario non saprei su Windows ma sicuramente su Linux puoi scompattarlo.
      Il database (home_assistant_v2.*) puoi provare a ripristinarlo ma se da problemi puoi non copiarlo, si creerà nuovo e funzionerà tutto (la configurazione non è lì, è in .storage…) semplicemente avrai perso lo storico delle entità e le statistiche a lungo termine.

  86. ClaudioG

    Aggiornamento.
    Dopo averci lavorato tutto il giorno… la problematica è rientrata.
    Vi risparmio i tentativi miseramente falliti ed il perchè di quanto sotto.

    Ho formattato l’SSD.
    Ho scaricato la build per il Rasp3 del sistema operativo da
    https://github.com/home-assistant/operating-system/releases
    e l’ho flashata sulla microSD.
    Ho subito chiesto l’importazione di un backup e sono andato in palestra.
    (questo dettaglio è importante perchè evidentemente attese di anche 30 minuti sono state insufficienti).
    Al ritorno ho trovato ancora la figura che girava….
    F5 e voilà richiesta nome utente e password e tutto si è risolto.

    Preciso che ho dovuto reimpostare l’IP statico in quanto mi è partito in DHCP.
    (Sospiro di sollievo)
    Ho voluto osare ed ho aggiornato all’ultimo backup disponibile (quello che non aveva funzionato) e tutto è stato OK.

    Avrei voluto lasciare il mondo per com’era (per i motivi SBAGLIATI che ho spiegato sopra) ma mi sono immediatamente reso conto del calo di performance generali.

    Ho quindi spostato i dati con la procedura built-in sull’SSD e devo dire che tutto è tornato come prima.

    Tolto il dente (formattato l’SSD) tolto il dolore.

    La disavventura mi ha anche fatto capire che il backup fisico della microSD che periodicamente facevo (e dell’SSD che suggerivo di fare) con grande fatica fisica vista la location in cui i devices si trovano sono del tutto inutili in presenza del backup giornaliero.

    Ho anche riletto il tuo articolo constatando che devi averlo riscritto in molte parti visto che l’ho trovato molto più semplice ed esaustivo (o forse io sono adesso più imparato).

    Chiedo scusa a te ed agli altri amici per averti inutilmente sporcato il blog con una serie di informazioni non corrette.
    Cancella pure i miei interventi se lo riterrai opportuno.

    1. Henrik Sozzi

      Ecco, ho letto questo tuo commento dopo aver risposto all’altro 😀
      Sono contento che tu sia riuscito a risolvere, davvero. So quanto sia frustrante la situazione ma ricorda che il backup che fai contiene tutto, dormi tranquillo! Al massimo ripristini i file a mano e ne esci comunque.
      Non ti preoccupare, non hai sporcato niente, anzi mi hai dato spunto per cose da definire meglio (cosa fare in caso di problemi).
      PS: si, l’articolo l’ho rimaneggiato diverse volte per aggiornarlo di volta in volta alle modifiche di Home Assistant… Un lavoraccio… E non sarò mai a pari per bene… 🙁
      Dai, tutto è bene quel che finisce bene! Buon anno anche a te!

  87. Fabio

    Ciao Henrik,
    E’ da un po’ di tempo che ogni tanto capito e ricapito su questa pagina, leggo la guida, mi faccio un’idea di come procedere e poi abbandono per pigrizia. Con il nuovo anno mi sono deciso a fare il passaggio a SSD, ma nell’elenco dei link non riesco più a vedere i collegamenti ad amazon.
    Sbaglio qualcosa io?
    Non uso plug-in che bloccano pubblicità. Ho provato anche a cambiare browser (chrome, edge, safari), dispositivo (PC e smartphone) e rete (wi-fi e rete cellulare) senza riuscire a visualizzarli.
    Buon anno e grazie per le tue (ottime) guide!

    1. Henrik Sozzi

      Ciao, grazie della segnalazione, in effetti tanti articoli linkati da quella pagina sono stati rimossi da Amazon! Tu non sbagli niente, mi devo mettere con calma e gesso a ripristinarli… Scusa per il disservizio, cercherò di farlo il prima possibile.

  88. Andrea

    Ciao Henrik, dopo aver effettuato il tutto il 22 gennaio 2022 è filato tutto liscio. Oggi ho deciso di acquistare l’espansione per l’Argon one e metterci una Sata M.2. Scelta fatta principalmente per una questione estetica. Ora la mia domanda, per sostituire l’Ugreen con l’espansione dell’Argon, devo rifare tutto da capo?
    P.S. purtroppo la kingstone non era disponibile ed ho preso una Intenso Sata III M.2 che accetta il trim, speriamo bene!!!

    1. Henrik Sozzi

      Ciao Andrea, scusa il ritardo, sono davvero incasinato ultimamente. Non ho mai provato a cambiare controller/disco ma a naso sicuramente devi rifare la procedura del TRIM perché il controller cambia (e quindi le coordinate USB). Non so poi se è possibile far tornare i dati nell’SD (da UI no…) magari da CLI… Bisogna provare. Oppure, in extremis, ripartire da installazione pulita su SD con balena, ripristino del backup appena possibile (su SD) e rifare la procedura dell’articolo. Forse è la strada più sicura (e veloce).
      Facci sapere la tua esperienza!

  89. Francesco

    Ciao Henrik, ho cercato di applicare la tua guida, comprando ssd e case suggeriti abilitati TRIM di fabbrica, ho Roma Assistant OS installato su microsd ed ho spostato i dati nel disco esterno, non riesco a capire se ho il trim attivo, i comandi della guida non funzionano:
    systemctl status fstrim.timer e lsblk –discard /dev/sda mi danno comando non trovato.
    fstrim -a -v invece:
    fstrim: unrecognized option: a
    BusyBox v1.36.1 (2023-11-07 18:53:09 UTC) multi-call binary.
    Usage: fstrim [OPTIONS] MOUNTPOINT
    -o OFFSET Offset in bytes to discard from
    -l LEN Bytes to discard
    -m MIN Minimum extent length
    -v Print number of discarded bytes
    Ho letto che in HA OS dovrei avere il trim attivo di default, mi consigli di fare qualcosa? Cosa ne pensi?
    Grazie

    1. Henrik Sozzi

      Ciao, non mi risulta che il trim si attivi per default (mi risulta che lo sia solo per le SD) ma magari è cambiato qualcosa e non lo so io 🙂
      Ad ogni modo i comandi non funzionano perchè non li stai eseguendo sulla console dev come spiega l’articolo. Se li esegui da un addon SSH li stai eseguendo in un container, non nell’host, dove vanno eseguiti.

  90. Francesco

    Non vedo il commento che ho scritto, è in approvazione?

    1. Henrik Sozzi

      Si, essendo la prima volta che scrivi un commento sul sito è necessaria la mia approvazione. Le prossime volte i commenti appariranno senza questa necessità.

Rispondi

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.