Guida: relazione tra LBA, dimensione del settore e capacità di archiviazione

Comprendere la relazione tra LBA, dimensione del settore e capacità di archiviazione

Quando si lavora con chiavette USB, schede SD, schede microSD, SSD e altri dispositivi di archiviazione a blocchi, due valori sono particolarmente utili: la dimensione del settore e il numero di LBA. Insieme, questi valori descrivono la capacità indirizzabile di un dispositivo di archiviazione a livello di blocco.

LBA significa Logical Block Addressing, ovvero indirizzamento logico a blocchi. Invece di descrivere un dispositivo di archiviazione utilizzando concetti fisici più vecchi come cilindri, testine e settori, i moderni dispositivi di archiviazione vengono indirizzati come una raccolta sequenziale di blocchi logici. A ogni blocco viene assegnato un numero, a partire da LBA 0 e proseguendo fino all’ultimo blocco logico disponibile sul dispositivo.

In termini semplici, il numero di LBA indica quanti settori indirizzabili sono disponibili, mentre la dimensione del settore indica quanti byte sono contenuti in ciascuno di questi settori.

Perché il numero esatto di LBA è importante

Per la normale archiviazione dei file, una piccola differenza nella capacità grezza del dispositivo passa generalmente inosservata. Un utente che copia documenti o fotografie su una chiavetta USB normalmente non si preoccupa del fatto che due unità nominalmente identiche possano contenere un numero di settori leggermente diverso.

Il disk imaging e la duplicazione sono un’altra cosa.

Un dispositivo sorgente può contenere una partizione o una struttura del disco che si estende molto vicino all’ultimo LBA disponibile. Se il dispositivo di destinazione contiene meno LBA rispetto alla sorgente, anche di una quantità relativamente piccola, un’immagine settore per settore potrebbe non entrare.

Questo può accadere anche quando entrambi i dispositivi vengono commercializzati con esattamente la stessa capacità. Due dispositivi etichettati come 32 GB, 64 GB o 128 GB non hanno necessariamente lo stesso identico numero di settori logici indirizzabili.

Il problema diventa particolarmente importante con le strutture situate vicino alla fine di un disco. I supporti formattati GPT, ad esempio, mantengono un header GPT di backup vicino alla fine del dispositivo. Modificare l’intervallo LBA disponibile può quindi influire su qualcosa di più della semplice quantità di spazio inutilizzato alla fine del disco.

LBA è più preciso della capacità stampata sul dispositivo

Le indicazioni commerciali della capacità, come 32 GB, 64 GB e 128 GB, sono utili per i consumatori, ma non rappresentano descrizioni precise della geometria di archiviazione.

Quando è importante ottenere una compatibilità esatta, tre valori forniscono un quadro molto più chiaro:

Tre valori importanti:

1. Dimensione del dispositivo in byte
2. Dimensione del settore logico
3. Numero totale di LBA

Conoscendo questi valori è possibile determinare esattamente quanto spazio di archiviazione indirizzabile esiste e se un dispositivo di archiviazione è realmente abbastanza grande da contenere l’intera struttura a blocchi di un altro dispositivo.

La relazione tra LBA e dimensione del settore

Il calcolo di base della capacità è:

Formula di base della capacità
Capacità in byte = Numero LBA × Dimensione del settore logico

Per un dispositivo che utilizza settori logici da 512 byte:

Capacità in byte = Numero LBA × 512

Il calcolo può anche essere eseguito al contrario. Se sono note la capacità totale del dispositivo in byte e la dimensione del settore logico, il numero di LBA può essere calcolato come segue:

Calcolare il numero di LBA
Numero LBA = Capacità in byte ÷ Dimensione del settore logico

Ad esempio, consideriamo un dispositivo con un numero LBA di 60.125.184 e una dimensione del settore logico di 512 byte:

Esempio

Numero LBA: 60.125.184
Dimensione settore: 512 byte

60.125.184 × 512
= 30.784.094.208 byte

Questa relazione diventa particolarmente importante quando si confrontano dispositivi di archiviazione per disk imaging, duplicazione, clonazione, analisi forense o altre applicazioni nelle quali è importante conoscere il numero esatto di settori disponibili.

Perché i settori da 512 byte sono così comuni

Una dimensione del settore logico di 512 byte è stata per decenni lo standard tradizionale per i dispositivi di archiviazione. Rimane estremamente comune nelle chiavette USB, nelle schede di memoria e in molti altri dispositivi di archiviazione grazie alla compatibilità con sistemi operativi, file system, strutture di avvio, controller e software esistente.

Per questo motivo, quando si esamina una tipica chiavetta USB, aspettarsi una dimensione del settore logico di 512 byte è generalmente ragionevole. Tuttavia, quando è importante conoscere la capacità esatta, non bisogna semplicemente darlo per scontato. Windows può indicare direttamente la dimensione del settore logico e controllare il valore effettivo elimina qualsiasi incertezza.

Alcuni dispositivi di archiviazione moderni utilizzano settori fisici da 4.096 byte pur continuando a presentare al sistema operativo settori logici da 512 byte. Questa configurazione viene comunemente definita 512e, ovvero emulazione a 512 byte. Altri dispositivi possono esporre direttamente settori logici da 4.096 byte, comunemente chiamati 4Kn.

Perché un dispositivo dovrebbe utilizzare una dimensione del settore diversa?

Settori più grandi possono migliorare l’efficienza dell’archiviazione perché sono necessari meno settori per descrivere la stessa quantità di capacità. Un settore da 4.096 byte contiene otto volte la quantità di dati di un settore da 512 byte. Settori più grandi possono inoltre ridurre parte dell’overhead relativo all’indirizzamento e alla correzione degli errori e adattarsi meglio all’architettura interna dei moderni dispositivi di archiviazione ad alta capacità.

Tuttavia, modificare la dimensione del settore logico comporta implicazioni per la compatibilità. Sistemi operativi, boot loader, file system, apparecchiature di duplicazione, sistemi embedded e software specializzato possono aspettarsi settori logici da 512 byte. Questo è uno dei motivi per cui un dispositivo di archiviazione può utilizzare internamente settori fisici da 4K pur continuando a presentare al sistema host settori logici da 512 byte.

Come la dimensione del settore modifica il numero di LBA

La stessa capacità in byte può avere numeri LBA molto diversi a seconda della dimensione del settore logico.

Consideriamo un’ipotetica area di archiviazione contenente 4.096.000 byte.

Stessa capacità — dimensioni dei settori diverse

Settori logici da 512 byte
4.096.000 ÷ 512
= 8.000 LBA


Settori logici da 4.096 byte
4.096.000 ÷ 4.096
= 1.000 LBA

La quantità di spazio di archiviazione non è cambiata. È cambiata soltanto la dimensione di ogni blocco logico indirizzabile. Il dispositivo con settori da 4K richiede quindi un ottavo del numero di LBA per descrivere la stessa capacità in byte.

Questo è il motivo per cui il numero di LBA, da solo, non descrive completamente la capacità di archiviazione. È necessario conoscere anche la dimensione del settore logico.

Conversione da LBA a MB e MiB

Quando si converte un numero di LBA in un valore di capacità più familiare, è importante distinguere tra megabyte decimali (MB) e mebibyte binari (MiB). Sebbene i termini vengano spesso utilizzati come se fossero intercambiabili nelle conversazioni informali, rappresentano numeri di byte differenti.

Megabyte decimali (MB)

1 MB = 1.000.000 byte
MB = (Numero LBA × Dimensione del settore logico) ÷ 1.000.000


Mebibyte binari (MiB)

1 MiB = 1.048.576 byte
MiB = (Numero LBA × Dimensione del settore logico) ÷ 1.048.576

Questa distinzione spiega perché le capacità di archiviazione possono apparire diverse a seconda di come un’utilità o un sistema operativo riporta il valore. I produttori di unità pubblicizzano comunemente la capacità utilizzando unità decimali, mentre molti sistemi operativi e calcoli tecnici hanno tradizionalmente utilizzato unità binarie.

Per un dispositivo che utilizza settori logici da 512 byte, convertire un numero LBA in MiB è particolarmente semplice:

Formula rapida per settori da 512 byte
MiB = (Numero LBA × 512) ÷ 1.048.576

Poiché 1.048.576 ÷ 512 = 2.048:

MiB = Numero LBA ÷ 2.048

Questa è una formula rapida utile quando si lavora con chiavette USB che riportano settori logici da 512 byte.

Il calcolo inverso è:

Da MiB a LBA
Numero LBA = MiB × 2.048

Ad esempio, per aggiungere 7 MiB di capacità indirizzabile a un dispositivo con settori da 512 byte sono necessari:

Esempio: aggiungere 7 MiB

7 × 2.048
= 14.336 LBA aggiuntivi


LBA attuale: 60.110.848
LBA aggiuntivi: 14.336
LBA di destinazione: 60.125.184

Ciò significa che un dispositivo con 60.110.848 LBA avrebbe bisogno di altri 14.336 settori logici per raggiungere 60.125.184 LBA. Con settori logici da 512 byte, questa differenza rappresenta esattamente 7 MiB di capacità indirizzabile.

Se invece sono necessari MB decimali, il calcolo utilizza 1.000.000 di byte per MB anziché 1.048.576 byte per MiB:

Settori da 512 byte: da LBA a MB decimali
MB = (Numero LBA × 512) ÷ 1.000.000

Come fare: controllare la dimensione del settore in Windows PowerShell

Windows PowerShell permette di esaminare facilmente le dimensioni dei settori logici e fisici riportate dai dispositivi di archiviazione collegati.

Aprire PowerShell e immettere: (copia e incolla)

Get-Disk | Select-Object Number, FriendlyName, BusType, LogicalSectorSize, PhysicalSectorSize

Questo comando elenca i dischi riconosciuti da Windows e visualizza il numero del disco, il nome del dispositivo, il tipo di bus, la dimensione del settore logico e la dimensione del settore fisico. Per ulteriori informazioni su come i dispositivi USB vengono gestiti a livello di archiviazione, vedere anche la spiegazione del protocollo per dispositivi di archiviazione di massa USB.

L’output potrebbe mostrare un dispositivo USB simile a questo:

Number  FriendlyName       BusType  LogicalSectorSize  PhysicalSectorSize
2       USB Flash Drive    USB      512                512

Il valore importante per calcolare il numero di LBA è LogicalSectorSize. In questo esempio, ogni blocco logico presentato a Windows contiene 512 byte.

È importante distinguere la dimensione del settore logico dalla dimensione del settore fisico. LBA indirizza i blocchi logici presentati al sistema operativo. Pertanto, quando si calcola il numero di LBA, il valore LogicalSectorSize è quello rilevante.

Ad esempio, un’unità 512e può riportare una dimensione del settore logico di 512 byte e una dimensione del settore fisico di 4.096 byte. Windows continua a indirizzare quel dispositivo utilizzando i suoi blocchi logici da 512 byte, quindi il calcolo LBA si basa su 512 byte anziché sui sottostanti settori fisici da 4.096 byte.

Come fare: ottenere il numero di LBA con PowerShell

Una volta identificato il numero corretto del disco, PowerShell può calcolare direttamente il numero totale di LBA.

Ad esempio, se il dispositivo USB è il Disco 2: (copia e incolla)

Get-Disk -Number 2 | Select Number, FriendlyName, LogicalSectorSize, @{Name="LBA_Count";Expression={$_.Size / $_.LogicalSectorSize}}

Il calcolo eseguito da PowerShell è semplicemente:

Cosa sta calcolando PowerShell
Numero LBA = Dimensione del dispositivo in byte ÷ Dimensione del settore logico

Il comando PowerShell non presuppone che ogni dispositivo di archiviazione utilizzi settori logici da 512 byte. Legge invece il valore LogicalSectorSize riportato dal dispositivo selezionato e utilizza tale valore nel calcolo.

Ciò significa che lo stesso comando funziona con i tradizionali dispositivi con settori logici da 512 byte, con le unità 512e e con le unità native 4Kn. Per un dispositivo da 512 byte o 512e che riporta settori logici da 512 byte, la dimensione del dispositivo viene divisa per 512. Per un dispositivo nativo 4Kn che riporta settori logici da 4.096 byte, la dimensione del dispositivo viene divisa per 4.096.

Questa distinzione è importante perché un’unità 512e può memorizzare fisicamente i dati in settori da 4.096 byte pur continuando a presentare a Windows settori logici da 512 byte. La numerazione LBA segue la dimensione del blocco logico esposta al sistema operativo, non necessariamente la dimensione del settore fisico utilizzata internamente dal dispositivo di archiviazione.

Le semplici formule LBA

Come riferimento rapido, questi sono i calcoli fondamentali utilizzati quando si lavora con valori LBA:

CALCOLARE IL NUMERO DI LBA
Numero LBA = Capacità in byte ÷ Dimensione del settore logico


CALCOLARE LA CAPACITÀ IN BYTE
Capacità in byte = Numero LBA × Dimensione del settore logico


CONVERTIRE LBA IN MB DECIMALI
MB = (Numero LBA × Dimensione del settore logico) ÷ 1.000.000


CONVERTIRE LBA IN MiB
MiB = (Numero LBA × Dimensione del settore logico) ÷ 1.048.576


SETTORI DA 512 BYTE: DA LBA A MiB
Capacità in MiB = Numero LBA ÷ 2.048


SETTORI DA 512 BYTE: DA MiB A LBA
Numero LBA = Capacità in MiB × 2.048


CONFRONTARE DUE DISPOSITIVI CON SETTORI DA 512 BYTE
Differenza di capacità in MiB = Differenza LBA ÷ 2.048

Quest’ultima equazione è particolarmente utile quando si vuole determinare esattamente di quanto una chiavetta USB sia più piccola rispetto a un’altra. Il dettaglio importante è che dividendo la differenza LBA per 2.048 si ottiene un risultato in MiB, non in MB decimali, quando i dispositivi utilizzano settori logici da 512 byte.

Esperienza & competenza: Questo articolo è stato sviluppato sulla base dell’esperienza pratica con chiavette USB, duplicazione di supporti di archiviazione, disk imaging, differenze di capacità a livello di settore e calcoli LBA. Le formule e i comandi PowerShell sono forniti per aiutare i lettori a identificare la capacità esatta di un dispositivo e a comprendere come la dimensione del settore logico influisca sul numero di LBA.

Leggi Altri Articoli

Continua a esplorare storie, analisi e approfondimenti tecnici.