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

Algoritmo di recupero dati HFS+: Guida completa

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.
Vai a vedere
I migliori programmi per leggere dischi APFS su Windows

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.

HFS Plus

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.

B-tree

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.

Intestazione del volume
Intestazione del volume
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 di allocazione

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.

Journal

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.

Time Machine

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.

Lo strumento recupera i file da qualsiasi dispositivo, indipendentemente dal motivo della perdita di dati.
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.

Algoritmo di recupero per HFS+

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.

Vai a vedere
Come recuperare i dati da una macchina virtuale Parallels danneggiata su macOS

Come recuperare i dati da una macchina virtuale Parallels danneggiata su macOS

Anton Kryvoruchko

Autore: , Scrittore tecnico

Anton Kryvoruchko è traduttore dall'italiano, dall'inglese, dal francese e dal polacco. Ha molti anni di esperienza e lavora con testi di vario argomento: dalla narrativa e testi tecnici alle riviste scientifiche popolari. Lavora costantemente per migliorare le sue conoscenze e competenze, perciò nel tempo libero impara anche il tedesco e lo spagnolo.

Mykhailo Miroshnichenko

Editore: , Scrittore tecnico

Mykhaylo Miroshnychenko è uno dei programmatori principali di Hetman Software. Avendo già quindici anni di esperienza nello sviluppo di software condivide le sue conoscenze con i lettori del nostro blog. Oltre alla programmazione, Mykhaylo è anche un esperto di recupero di dati, di file system, di dispositivi di archiviazione e di array RAID.