You are currently viewing 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!

  • Autore dell'articolo:
  • Categoria dell'articolo:Home Assistant
  • Commenti dell'articolo:164 commenti
  • Ultima modifica dell'articolo:14 Maggio 2021

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. Il controller ed il disco SSD marcati con il colore verde sono quelli che ho usato personalmente (visibili nella foto sotto). 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.

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

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

Geekworm ha rilasciato la versione hardware 2.0 del controller X857 che ho utilizzato io. Oltre a diversi miglioramenti NON SUPPORTA PERO’ TRIM (link)! Geekworm, che ho raggiunto per chiarimenti, afferma che è così non escludendo un possibile aggiornamento firmware di cui però non si sa nulla. Per ora sconsiglio l’acquisto della versione 2.0!

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).

I controller Geekworm si possono anche acquistare direttamente dal sito del produttore, tieni in conto che però arriveranno dalla Cina.

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

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

  • accedere tramite la console
  • 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.

Collegato via SSH o Putty al tuo Raspberry Pi sulla porta 22222 (o tramite la console, con utente root) e vedrai una schermata come questa:

Schermata di accesso SSH alla porta 22222

A questo punto per accedere alla shell di sistema:

ha> login

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 (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!

Potrebbe essere sufficiente uno snapshot (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:

# datactl move /dev/sda

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 Supervisor -> Sistema -> Used space (o sensori che avete nella vostra configurazione e mostrati nell’interfaccia) vi accorgerete che sembrerebbe lo stesso rapporto di occupazione che c’era sulla MicroSD. E’ normale. 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 (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

Sperando che prima o poi Home Assistant gestisca questa procedura in modo automatico tramite un comodo wizard nell’interfaccia utente, nel frattempo ci siamo messi 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 un 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à.
(se non vedi il tasto di seguito clicca QUI)

Henrik Sozzi

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

Questo articolo ha 164 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.

      1. Henrik Sozzi

        Grazie! Aggiunti i tuoi dischi all’hardware compatibile 🙂

  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. Henrik Sozzi

          Ottimo! Lo Shelly lo integri con integrazione ufficiale?

          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.

Rispondi