CategoriaInformatica & TechPubblicatoParole2.606Lettura12 minuti

Periodicamente Internet riscopre qualche funzione di Windows che esiste da anni e la trasforma nella nuova minaccia informatica del momento, con tonnellate di articoli clickbait e allarmi a caratteri cubitali.

Questa volta è toccato all’ibernazione e, più precisamente, al filehiberfil.sys: secondo alcuni titoli comparsi nelle ultime settimane, una sorta di assassino silenzioso che Windows 11 terrebbe nascosto nel nostro computer con l’unico scopo di consumare lentamente l’SSD.

La realtà è parecchio meno cinematografica. (gli "assassini silenziosi" nei nostri pc possono esserci, ma sono ben altri e molto più pericolosi!)

Sì, l’ibernazione comporta delle scritture sull’SSD.
Sì, ogni scrittura contribuisce, almeno teoricamente, all’usura delle celle NAND.
E sì, Windows può utilizzare il meccanismo dell’ibernazione anche quando noi non selezioniamo mai esplicitamente la voce “Iberna”.

Ma da qui a sostenere che Windows 11 stia “uccidendo gli SSD” ce ne passa parecchio.

Anzi, secondo me il problema più interessante dihiberfil.sys, attualmente, non è tanto quanto possa accorciare la vita di un SSD, quanto piuttostose abbia ancora senso sacrificargli diversi gigabyte di spazio per guadagnare qualche secondo all’avvio di un PC moderno.

E qui la discussione diventa decisamente più interessante.

Partiamo dal famosohiberfil.sys

hiberfil.sysnon è una funzione segreta appena scoperta e non è nemmeno una novità di Windows 11.

È un file di sistema nascosto, normalmente presente nella radice dell’unità sulla quale è installato Windows, generalmenteC:\, e viene utilizzato per implementare l’ibernazione.

Il principio è semplice.

Durante unanormale sospensioneil computer mantiene alimentata la memoria RAM. Il consumo è basso e il sistema può ripartire quasi immediatamente, ma i dati continuano a esistere perché la RAM rimane alimentata.
Avete presente quella stramaledetta mania di "chiudere" il portatile senza spegnerlo e poi riaprirlo più tardi e ritrovarselo esattamente com'era, programmi aperti e tutto?
Ecco. Smettetela!
Perchè, a parte attivare la sospensione che, come vedremo, non è un problema, la batteria invece la consumate comunque (come detto sopra, "la ram rimane alimentata" quindi in pratica, il pc rimante parzialmente acceso) e, indovinate? Si, alla lunga la farete fuori e non durerà più manco il tempo di un caffè.
Ma soprattutto, chi dà portatili in giro per far conferenze e gli ritornano (IO! n.d.r.) , si è rotto le scatole di controllare se l'avete spento davvero o l'avete solo chiuso, per non trovarsi le batterie scariche dopo una settimana di sospensione di cui non si era accorto.

Durante l’ibernazione, invece, Windows salva su disco lo stato necessario a ricostruire la sessione e poi può spegnere completamente il computer. Al successivo avvio il contenuto viene recuperato dahiberfil.syse riportato in memoria.

Microsoft documenta attualmente due tipi di file di ibernazione:FulleReduced. Il primo, nella configurazione predefinita, ha una dimensione indicativa pari al 40% della memoria fisica; il secondo circa il 20%. Il file completo consente ibernazione, sospensione ibrida e Avvio rapido; quello ridotto serve esclusivamente all’Avvio rapido. Le dimensioni possono comunque essere modificate dalla configurazione del sistema.

Tradotto in numeri, con la configurazione standard parliamo indicativamente di circa:

  • 6,4 GB con 16 GB di RAM;
  • 12,8 GB con 32 GB;
  • 25,6 GB con 64 GB.

Non proprio briciole, soprattutto considerando che oggi 32 GB di RAM stanno diventando piuttosto comuni anche sui PC domestici.

Il dettaglio interessante: quando clicchiamo “Arresta”

Qui entra in scena un'altra funzione, introdotta ormai ai tempi di Windows 8:Avvio rapido, o Fast Startup.

Quando è attivo, premere “Arresta il sistema” non equivale esattamente al classico spegnimento completo che molti immaginano.

Windows chiude le applicazioni e termina le sessioni degli utenti, ma invece di eliminare completamente la sessione del kernel salva nel file di ibernazione il kernel stesso e i driver caricati. All'accensione successiva può quindi recuperare quella situazione già inizializzata anziché ricostruirla completamente da zero.

Microsoft descrive esplicitamente questo comportamento nella propria documentazione.

È una scorciatoia intelligente e, quando venne introdotta, anche piuttosto utile.

Con un hard disk meccanico e un sistema che impiegava magari un minuto per arrivare al desktop, recuperare una parte dell'ambiente già inizializzato poteva fare una differenza evidente.

Oggi abbiamo NVMe capaci di leggere diversi gigabyte al secondo, processori molto più veloci e computer che spesso completano un avvio tradizionale in pochi secondi.

La domanda quindi diventa legittima:quanto ci serve ancora quella scorciatoia?

Ma allora ogni volta che spengo il PC scrivo 10, 20 o 30 GB sull’SSD?

Ed eccoci al clickbait di cui parlavo prima
Perché è proprio questo il punto dove alcuni articoli iniziano a prendere una strada, come dire, un po’ troppo panoramica.

Il fatto chehiberfil.sysoccupi, per esempio, 12 o 25 GBnon significa automaticamente che Windows scriva 12 o 25 GB sull’SSD a ogni spegnimento.

Con un'ibernazione completa deve essere conservato lo stato necessario a ricostruire la memoria della sessione. Con Avvio rapido, invece, le sessioni degli utenti sono già state terminate e Windows salva essenzialmente la sessione del kernel e i driver.

Sono due scenari differenti.

Microsoft lo specifica chiaramente: nel Fast Startup vengono salvati kernel e informazioni di sistema, non semplicemente copiato tutto il contenuto della RAM dell'utente.

Per questo motivo non prenderei come dato certo alcune stime che stanno circolando in rete secondo cui ogni normale spegnimento produrrebbe automaticamente decine di gigabyte di scritture.

Può produrre scritture significative? Certamente.

Sono scritture che, senza Avvio rapido, non sarebbero necessarie? Anche.

Mala dimensione massima del file di ibernazionenonpuò essere utilizzata direttamente come contatore dei byte scritti ad ogni arresto.

Ed è una differenza piuttosto importante quando si vuole valutare l'impatto reale sull'SSD.

Più che dell'SSD, mi preoccuperei del fatto che un "Arresto" non sia un vero arresto ma una "fotografia" di come è messo il sistema in quel momento, che poi andiamo a recuperare al riavvio.
E quindi viene a crollare tutta la faccenda di riavviare per provare a sistemare un driver che fa i capricci o un problema ad un software.
Se non "ripartiamo da capo" ma solo da dove eravamo prima, i problemi ce li ritroviamo esattamente dov'erano.

Quanto dobbiamo preoccuparci dell'usura?

Gli SSD hanno effettivamente una vita non infinita.
Si, sono più umani di quanto possiate immaginare!

Le celle NAND sopportano un numero limitato di cicli di programmazione e cancellazione e per questo i produttori dichiarano normalmente un valore espresso inTBW, Terabytes Written, che indica il volume di dati scrivibili associato all'endurance e alla garanzia dell'unità.

Ma i numeri sono generalmente molto più grandi di quanto si possa credere.

Prendiamo un esempio concreto: un Samsung 990 EVO Plus da 1 TB (gran dischi, ne ho due e vanno come dei treni!) viene garantito per cinque anni oppure fino a600 TBW. Diversi altri SSD consumer di fascia analoga utilizzano ordini di grandezza simili.

Se anche, per fare un esempio volutamente abbondante e non una misura reale valida per tutti i PC, attribuissimo all'Avvio rapido 10 GB di scritture aggiuntive ogni giorno, arriveremmo a circa 3,6 TB all'anno.
Certo, oltre a questo ci sarebbe il normale utilizzo.
Aggiornamenti, browser, cache, file temporanei, programmi, giochi, database, macchine virtuali, editing video e chi più ne ha più ne metta.
Allora aggiungiamo, a questi 10GB giornalieri, altri ... quanti? 50? Esageriamo? 100? Ok, 100 siano!
(N.B.: un utente medio scrive 10-30 GB al giorno, cioè circa 4 - 11 TB all'anno)

La formula è semplice:

600TBW0,11TBx365giorni=𝟏𝟒,𝟗𝟒𝐚𝐧𝐧𝐢\frac{600\;TBW}{0,11\,TB\;x\;365\,giorni}\;=\;\mathbf{{\color{Red} 14,94\;anni}}


Quindi, anche usando l'hard disk per 365 giorni l'anno "come se non ci fosse un domani", avremmo quasi 15 anni prima di finire le scritture previste sul disco.

Per l'utente domestico medio è estremamente improbabile che l'ibernazione da sola porti un SSD moderno alla morte prematura.

Questo non significa che sia impossibile consumare un SSD nè che salterà per aria per altri motivi. Con workload intensivi, piccoli SSD, macchine virtuali, videosorveglianza, database o semplicemente conservando un computer per molti anni, il contatore delle scritture può arrivare a livelli importanti oppure può rompersi per altri motivi indipendenti dal numero di scritture.

E qui ammetto di appartenere personalmente alla categoria di quelli che tendono a far durare l'hardware finché non bisogna praticargli l'estrema unzione.
Però, anche se tiriamo alle lunghe con l'hardware, siamo molto lontani dal concetto “hai lasciato attiva l'ibernazione, preparati a comprare un SSD nuovo”.
Personalmente non ne ho mai finito uno. Ne ho rotti si, ma perchè mi son caduti a terra (meccanici) oppure è cascato un fulmine vicino alla caverna digitale e si è portato via un po' di elettronica.

Per levarvi ogni dubbio, potete scaricareCrystalDiskInfo, una piccola utility che vi mostra i dati S.M.A.R.T. (Self-Monitoring,Analysis, andReportingTechnology) del vostro disco.
Lì avrete il numero di scritture fatte finora, la salute del disco e altre informazioni.
Spoiler: ogni valore al di sopra del 15-20% è perfettamente a posto.

Inoltre (e poi la smetto), non è che raggiunti i 600 Terabyte, il disco si fonde tipo mission impossible.
E' una stima, può "crepare" un po' prima o dopo (solitamente dopo, visto che io starei sul conservativo per evitare che qualcuno poi si lamenti) quindi raggiunto il limite, continuerà come se niente fosse, ovviamente avvertendo che ci siete arrivati e che sarebbe il caso di pensare di sostituire il disco.

Il vero fastidio è molto più semplice: lo spazio

Ma quindi, se le scritture sono un parametro importante, si, ma non così catastrofico, qual è il problema?

Prendiamo una workstation con 64 GB di RAM.

Con il file completo configurato alle dimensioni standard possiamo trovarci con oltre 25 GB dihiberfil.sys.

Sono 25 GB occupati permanentemente da una funzione che magari non abbiamo mai utilizzato consapevolmente e che ci permette principalmente di risparmiarequalche secondoquando accendiamo un computer dotato magari di un NVMe da 5, 7 o più GB/s.

Qui il rapporto costi/benefici inizia a sembrarmiuna presa per il culomeno entusiasmante.

Su un SSD da 2 o 4 TB probabilmente ce ne accorgeremo appena.
Su un portatile con 512 GB, o peggio ancora su sistemi con 256 GB, qualche decina di gigabyte recuperati può fare la differenza tra un pc che funziona e uno che non funziona.

Inoltre un SSD quasi pieno non è mai una grande idea: molti controller e sistemi di cache lavorano meglio quando resta disponibile un certo margine di spazio libero.

Quindi non siamo davanti a una bomba a orologeria riguardante la durata del nostro disco.

Siamo più banalmente davanti auna funzione progettata quando le caratteristiche dell'hardware erano molto diverse da quelle attuali, il cui vantaggio oggi può essere abbastanza piccolo da chiedersi se valga ancora lo spazio che occupa.

Attenzione però ai portatili

Ovviamente l'ibernazione può essere disabilitata (per ora, finchè Microsoft non deciderà diversamente anche in tal senso)
Prima di lanciare comandi a caso, però, bisogna distinguere tra desktop e notebook.

Su un computer fisso, soprattutto se dotato di SSD NVMe moderno, rinunciare all'ibernazione può avere pochissime controindicazioni se non viene utilizzata.

Su un portatile la questione è diversa.

Molti notebook moderni utilizzanoModern Standby, identificabile comeStandby (S0 Low Power Idle). In questo scenario l'ibernazione può essere utilizzata anche come sistema di protezione dello stato della macchina quando la batteria raggiunge livelli critici.

Microsoft prevede esplicitamente Hibernate nei sistemi Modern Standby per preservare lo stato delle applicazioni quando la batteria diventa critica.

Disabilitarla significa eliminare anche questa possibilità.

Prima di modificare un portatile che viene abitualmente chiuso, infilato nello zaino e riaperto ore dopo, quindi, ci penserei due volte.
A chiuderlo ed infilarlo nello zaino eh!
Non a disattivare l'ibernazione invece di spegnerlo e poi riaccenderlo.

In ogni caso, potete verificare gli stati supportati dal vostro computer aprendo Terminale come amministratore e digitando:

powercfg /a

Se compareStandby (S0 Low Power Idle), siete davanti a un sistema Modern Standby.

Voglio disattivare tutto: cosa faccio?

Su un desktop dove non utilizziamo mai l'ibernazione la soluzione più radicale è semplicissima.

ApriamoTerminale come amministratoree digitiamo:

powercfg /h off

Il comando disabilita l'ibernazione ed eliminahiberfil.sys, recuperando immediatamente lo spazio occupato. Di conseguenza vengono meno anche Avvio rapido e le funzioni che dipendono dal file di ibernazione. Microsoft documenta ufficialmente questo comando.
Da quel momento in poi, ogni volta che spegnerai il computer, Windows eseguirà un arresto completo al 100%, chiudendo tutte le sessioni, i servizi e i driver. Al riavvio successivo, il sistema operativo caricherà tutto da capo.
Questo garantisce che la memoria RAM sia completamente pulita e che eventuali bug temporanei vengano risolti, proprio come accade quando si seleziona il comando "Riavvia sistema".

Se in futuro cambiamo idea:

powercfg /h on

e Windows ricrea il file.

Voglio soltanto eliminare l'Avvio rapido

Esiste anche una soluzione meno drastica.

Dal vecchioPannello di controllo, entrando nelleOpzioni risparmio energiae nella sezione dedicata al comportamento dei pulsanti di alimentazione, è possibile disattivare soltantoAttiva avvio rapido.

In questo modo un normale Arresta torna ad effettuare uno spegnimento completo, mentre possiamo mantenere disponibile l'ibernazione vera e propria.

Non recuperiamo però lo spazio occupato dahiberfil.sys.

È quindi la soluzione adatta a chi vuole un vero cold boot dopo ogni spegnimento ma desidera continuare a poter ibernare il computer.

Un dettaglio utile da ricordare:Riavvia non utilizza comunque Avvio rapido. Microsoft specifica cheun riavvio esegue il normale ciclo completo di boot.
È anche uno dei motivi per cui, quando qualcosa si comporta in modo strano dopo un aggiornamento o l'installazione di un driver, “Riavvia” può effettivamente fare qualcosa di diverso rispetto a “Arresta” seguito dalla riaccensione.

La soluzione intermedia:reduced

Se invece vogliamo conservare Avvio rapido ma eliminare l'ibernazione completa, Windows prevede il file ridotto:

powercfg /h /type reduced

Il tipo Reduced occupa per impostazione predefinita circa il 20% della RAM e supporta soltanto Fast Startup.

Se Windows restituisce un errore perché il file è stato precedentemente impostato con dimensioni personalizzate, Microsoft indica di utilizzare prima:

powercfg /h /size 0

e successivamente:

powercfg /h /type reduced

Per tornare alla configurazione completa:

powercfg /h /type full

Quindi Windows 11 sta davvero consumando il nostro SSD?

Tecnicamente sì: ogni scrittura consuma una piccolissima parte della vita disponibile delle memorie NAND, e Avvio rapido introduce scritture che un normale cold shutdown non richiederebbe.

Ma detta così sarebbe come sostenere che utilizzare un'auto ne distrugge il motore perché ogni chilometro ne riduce la vita residua.

Vero. E anche piuttosto inutile come informazione.

Gli SSD moderni hanno endurance nell'ordine delle centinaia di terabyte scritti e, nell'uso domestico normale,non ce la farete mai a ucciderliraggiungere quei valori non è affatto scontato.

Per questo non spegnerei l'ibernazione per paura che domani mattina l'SSD decida di abbandonare questo mondo.

La valuterei invece per una ragione molto più pratica.

Su un desktop moderno con NVMe veloce, dove non utilizzo mai l'ibernazione e dove un cold boot richiede comunque pochi secondi,tenere occupati 10, 20 o 25 GB per accelerareleggermentel'avvio mi sembrauna cagata pazzescaun compromesso sempre meno interessante.

Su un notebook il giudizio cambia, perché ibernazione e gestione energetica hanno ancora una funzione concreta e possono proteggere una sessione di lavoro quando la batteria si esaurisce.

Come sempre, quindi, il problema non è trovare il comando magico da applicare indistintamente a qualunque PC.
È capire cosa sta facendo Windows, perché lo sta facendo e decidere se quella funzione ci serve davvero.

Alla prossima
M.