Algoritmo di recupero dati HFS+: Guida completa
Scopri i segreti dell’algoritmo di recupero dati HFS+! Sei curioso di sapere come funziona il recupero dati per i file system HFS+ (Hierarchical File System Plus)? In questo articolo analizzeremo le complessità del algoritmo di recupero dati HFS+. Che tu sia un appassionato di tecnologia, un professionista IT o semplicemente interessato alle tecnologie di memorizzazione, questa guida completa ti fornirà informazioni su come funzionano gli algoritmi di recupero dati HFS+. Dalla comprensione della struttura dei file system HFS+ all’esplorazione dei metodi utilizzati per il recupero dei dati, copriremo tutto ciò che è necessario sapere per decifrare i segreti del recupero dati HFS+.

- 1. Vantaggi e peculiarità di HFS+
- 2. Architettura di HFS Plus
- 3. Recupero dati con Time Machine
- 4. Algoritmo di recupero per HFS+
- Conclusione
- Domande e risposte
- Commenti
1. Vantaggi e peculiarità di HFS+
La principale differenza di HFS+ è l’uso di un’architettura a 32 bit invece dei 16 bit di HFS. Il vecchio sistema di indirizzamento rappresentava già una seria limitazione in quanto non supportava volumi contenenti più di 65 536 blocchi. Ad esempio, su un disco da 1 GB la dimensione del blocco di allocazione (cluster) in HFS è di 16 KB, quindi anche un file di 1 byte occuperebbe l’intero spazio di 16 KB sul disco.
Come il suo predecessore, HFS+ utilizza l’albero B (B-tree) per memorizzare la maggior parte dei metadati.
I volumi HFS+ sono suddivisi in settori (chiamati blocchi logici in HFS), solitamente di 512 byte. Uno o più settori costituiscono un blocco di allocazione (cluster); il numero di blocchi di allocazione dipende dalla dimensione totale del volume. L’indirizzamento a 32 bit consente di usare oltre 4 294 967 296 cluster rispetto ai 65 536 disponibili per i 16 bit. In confronto, i due file system differiscono per:
- lunghezza del nome file: in HFS: 31, in HFS+: 255;
- codifica del nome file: HFS: Mac Roman, HFS+: Unicode;
- dimensione del record: HFS: 512 byte, HFS+: 4 KB;
- e il numero massimo di file è aumentato: HFS: 2^31, HFS+: 2^63.
| Vantaggio o differenza | Descrizione |
|---|---|
| Supporto per file di grandi dimensioni | HFS+ supporta la gestione di file di grandi dimensioni, risultando utile per l’archiviazione di file multimediali e altri file di grandi dimensioni. |
| File system journaling | HFS+ offre il journaling, che riduce il rischio di perdita di dati durante crash di sistema o interruzioni improvvise di alimentazione. |
| Supporto Unicode | HFS+ supporta la codifica Unicode, permettendo di memorizzare file con nomi in lingue diverse. |
| Ottimizzato per macOS | HFS+ è progettato specificamente per macOS, offrendo elevate prestazioni e stabilità su questi dispositivi. |
| Deframmentazione | HFS+ deframmenta automaticamente i file, migliorando le prestazioni durante le operazioni di lettura e scrittura dei dati. |
| Supporto dei metadati | HFS+ supporta metadati estesi, facilitando una migliore organizzazione e gestione dei file. |
| Compatibilità con Time Machine | HFS+ è pienamente compatibile con la funzione di backup Time Machine di macOS. |
| Limitazioni nel supporto dei sistemi moderni | HFS+ manca di alcune funzionalità e dell’affidabilità offerte da APFS (Apple File System), che è lo standard nelle versioni più recenti di macOS. |
I migliori programmi per leggere dischi APFS su Windows
2. Architettura di HFS Plus
I volumi HFS Plus sono suddivisi in settori (chiamati blocchi logici in HFS), solitamente di 512 byte. Questi settori sono poi raggruppati in blocchi di allocazione (simili ai cluster in Windows) che possono contenere uno o più settori. Il numero di blocchi di allocazione dipende dalla dimensione totale del volume. HFS Plus utilizza un valore di indirizzamento dei blocchi di allocazione maggiore rispetto a HFS, 32 bit invece di 16 bit. Il file system utilizza l’ordine dei byte Big Endian.

Per gestire il processo di allocazione dei dati sul disco, HFS+ memorizza informazioni di servizio speciali note come metadati. I seguenti elementi sono i più importanti per il corretto funzionamento del file system e sono di particolare interesse quando si cercano dati mancanti:
- Intestazione del volume. Ha una struttura di tipo tabellare e fa uso di record di extent (Extents);
- File di allocazione. Strutturato come bitmap, utilizza record di extent (Extents);
- File catalogo. Ha struttura a B-tree e utilizza record di extent (Extents);
- File di overflow degli extent. Ha struttura a B-tree;
- File dei blocchi danneggiati. Ha struttura a B-tree;
- File di avvio. Dimensione fissa;
- Journal. Area del disco con dimensione e posizione fisse.
Il sistema operativo include altre strutture, ma quelle elencate sono di primaria importanza per il recupero dei dati. Per continuare l’esame della struttura, è necessario approfondire i concetti di base: B-tree ed extent.
Cos’è un B-tree?
Per memorizzare una parte delle informazioni, HFS+ utilizza i B-tree. Sono necessari per abilitare la scrittura di determinate quantità di dati (per esempio 100 MB) in blocchi di dimensione fissa (ad esempio 4 KB). In questo caso, il primo blocco non contiene i dati veri e propri, ma i collegamenti ai blocchi successivi che possono contenere a loro volta collegamenti a un altro livello di blocchi, oppure contenere i dati effettivi. Gli elementi dell’albero che contengono collegamenti sono noti come nodi, mentre gli elementi di livello zero che contengono i dati sono indicati come foglie.

Cosa sono i record di extent e il File di overflow degli extent?
Per memorizzare informazioni sul numero di blocchi occupati da un file, HFS+ può utilizzare da 0 a 8 record di extent. Ogni record contiene un collegamento al primo blocco contenente dati e il numero di cluster sequenziali utilizzati per memorizzare i dati. Se un file è troppo frammentato e 8 record non sono sufficienti per descrivere tutte le sue parti, i frammenti rimanenti vengono scritti nel file degli extent aggiuntivi—il File di overflow degli extent.
Intestazione del volume
L’intestazione del volume si trova sempre nel secondo settore del disco (contando dall’inizio) e contiene informazioni generali sul volume. Per esempio, la dimensione dei blocchi di allocazione, un timestamp che indica quando il volume è stato creato o la posizione di altre strutture del volume: File catalogo, File di overflow degli extent, File di allocazione, Journal ecc. Il settore penultimo del disco contiene sempre la copia dell’intestazione del volume, cioè la copia dell’Intestazione del volume.



File di allocazione
Contiene dati sui blocchi di allocazione occupati e liberi. Ogni blocco di allocazione è rappresentato da un singolo bit. Un valore zero indica che il blocco è libero e un valore uno indica che il blocco è in uso. A volte questa struttura viene chiamata bitmap. Il file di allocazione può variare di dimensione e non deve essere memorizzato in modo contiguo all’interno di un volume. Tutte le informazioni sugli elementi del file sono memorizzate nell’Intestazione del volume.

File catalogo
Memorizza la maggior parte delle informazioni sull’allocazione di file e cartelle sul disco ed è in realtà una grande struttura a B-tree.
In HFS Plus questo file è molto simile al file catalogo in HFS, la differenza principale è la dimensione dei campi. Ora è più grande e contiene più dati. Per esempio, permette l’uso di nomi Unicode più lunghi fino a 255 caratteri. In HFS la dimensione del record è di 512 byte, rispetto ai 4 KB in HFS Plus per Mac OS e agli 8 KB per OS X. I campi in HFS hanno dimensione fissa, mentre HFS Plus consente dimensioni variabili a seconda della quantità effettiva di dati.
La maggior parte dei campi memorizza attributi piccoli che possono essere contenuti in 4 KB di spazio. Per attributi più grandi si utilizzano extent aggiuntivi (il numero massimo disponibile è di 8 extent, e se ne servono altri vengono salvati nel File di overflow degli extent). Gli extent contengono collegamenti ad altri campi dove sono memorizzati i dati dell’attributo più grande.
File di avvio
Questo file è destinato ai sistemi operativi che non supportano HFS o HFS Plus ed è simile ai boot block nei volumi HFS.
Blocchi danneggiati
Questo file contiene i dati su tutti i blocchi riallocati (difettosi).
Journal
Il journal non è un file ma piuttosto un’area a dimensione fissa (insieme di blocchi) sul disco. I collegamenti ai primi blocchi e la dimensione dell’area sono memorizzati nell’Intestazione del volume. Prima che qualsiasi modifica venga scritta sul disco, HFS+ le registra nel journal e solo successivamente nei file di sistema. In caso di interruzione di corrente durante l’operazione di scrittura, il file system può essere ripristinato.
È però importante notare che la dimensione del journal in HFS+ è limitata e il suo contenuto viene sovrascritto regolarmente. Il journal del volume di avvio sul Mac Mini viene solitamente sovrascritto entro 5–10 minuti, mentre il tempo prima della sovrascrittura su MacBook è di circa 30 minuti. Se Time Machine è abilitato, questo intervallo si riduce a 20 secondi.

3. Recupero dati con Time Machine
A partire da Mac OS X Leopard, il sistema operativo include Time Machine. Questa utility crea copie di backup dei file per registrare tutte le modifiche che avvengono nel file system. Tutto ciò aiuta gli utenti a ripristinare l’intero sistema operativo, più file o un singolo file esattamente nello stato in cui si trovava in un determinato momento.
Assegna un disco separato per l’uso di Time Machine. Apple produce un dispositivo apposito, Apple Time Capsule, che può essere utilizzato specificamente come unità di rete per memorizzare i backup di Time Machine. Time Machine può essere utilizzato con qualsiasi disco USB o eSATA. Al primo avvio, Time Machine crea una cartella sul disco di backup specificato per contenere tutti i dati.
Successivamente, Time Machine copierà solo i file modificati. In generale, finché Time Machine viene utilizzato per un disco, il recupero dei dati persi non rappresenta un grosso problema.

4. Algoritmo di recupero per HFS+
Recuperare i dati dal file system HFS+ è più difficile rispetto ad altri file system. Uno degli aspetti che causa difficoltà è che HFS+ utilizza B-tree per memorizzare la maggior parte dei metadati del volume relativi all’allocazione dei file. Dopo la rimozione di un file, il B-tree viene aggiornato immediatamente, perciò le informazioni su dove si trovava il file rimosso vengono perse istantaneamente.
Il nostro programma consente di visualizzare il dispositivo di memorizzazione e la struttura HFS+ in Windows senza utilizzare software o driver aggiuntivi.
| Fase | Descrizione dell’azione |
|---|---|
| 1. Installa il programma | Scarica e installa Hetman Partition Recovery sul tuo computer. |
| 2. Collega l’unità | Collega l’unità HFS+ al computer se non è interna. |
| 3. Avvia il programma | Apri Hetman Partition Recovery e seleziona l’unità HFS+ dall’elenco dei dischi disponibili. |
| 4. Scansiona il disco | Avvia il processo di scansione per rilevare file persi o eliminati. |
| 5. Visualizza i dati recuperati | Al termine della scansione, esamina i file recuperati nel formato a te più comodo. |
| 6. Seleziona i file da recuperare | Seleziona i file che desideri recuperare e fai clic sul pulsante di recupero. |
| 7. Salva i file recuperati | Salva i file recuperati su un’altra unità o su un supporto esterno per evitare la sovrascrittura dei dati. |
Durante l’esecuzione di una scansione di analisi completa, il suo algoritmo consente di escludere questi elementi durante la ricerca dei dati persi e recuperare le informazioni necessarie.
Se scegli una scansione rapida, il programma legge l’Intestazione del volume o la sua copia, accede al File catalogo e alla posizione del journal sul disco. Se i blocchi relativi a tali file non sono ancora stati sovrascritti, li leggerà e recupererà i dati.
Se i blocchi del file rimosso non sono stati sovrascritti, questo metodo permette di recuperare il file completamente. E anche se è avvenuta una sovrascrittura, i dati del file possono ancora essere trovati nel journal, oppure il file verrà recuperato parzialmente.
L’algoritmo alla base dell’analisi completa consente al programma di escludere determinati elementi durante la ricerca di dati eliminati, così il programma ricostruirà la struttura del disco e mostrerà i file eliminati, anche se l’Intestazione del volume e il File catalogo sono stati parzialmente sovrascritti.

Conclusione
In conclusione, si può affermare che HFS+ è un file system obsoleto, nato come versione ottimizzata di un file system ancora più datato, HFS. Attualmente HFS+ è stato sostituito da Apple File System (APFS).
In termini di prestazioni, sicurezza e affidabilità, HFS+ è notevolmente inferiore ad APFS, perciò la questione del recupero dei dati diventa particolarmente rilevante. Le informazioni raramente scompaiono senza lasciare traccia; conoscendo bene il funzionamento del file system, è possibile sperare di recuperare anche elementi inizialmente considerati perduti definitivamente.
Come recuperare i dati da una macchina virtuale Parallels danneggiata su macOS

