Dimensione di un blocco
Una traccia tridimensionale (la stessa traccia su tutti i dischi) è chiamata cilindro. Ogni traccia è divisa in 63 settori. Ogni settore contiene 512 byte di dati. Pertanto la dimensione del blocco nella tabella delle partizioni è di 64 teste * 63 settori * 512 byte er ... diviso per 1024 ... :-)
Fonte: partizionamento con fdisk
Ogni volta che Linux fa riferimento alla dimensione del blocco, è quasi sempre 1024 byte - Linux utilizza blocchi da 1024 byte come unità primitive per la cache del buffer e tutto il resto Le uniche volte in cui non lo è è nei driver specifici del filesystem, poiché alcuni filesystem ne usano altri granularità (ad esempio, su un filesystem ext3 di dimensioni normali, la dimensione del blocco del filesystem è di solito 4096 byte). Tuttavia, non si vede quasi mai la dimensione del blocco del filesystem; quasi l'unico modo per vederlo è essere un hacker del kernel o eseguire programmi come dumpe2fs.
Il problema è che ci sono quattro unità distinte che devi tenere a mente. A peggiorare le cose, due di queste unità hanno lo stesso nome. Queste sono le diverse unità:
- Dimensione del blocco hardware, "dimensione del settore"
- Dimensione del blocco del filesystem, "dimensione del blocco"
- Dimensione blocco cache buffer kernel, "dimensione blocco"
- Dimensione del blocco della tabella delle partizioni, "dimensione del cilindro"
Per distinguere tra la dimensione del blocco del filesystem e la dimensione del blocco della cache del buffer, seguirò la terminologia FAT e userò la "dimensione del cluster" per la dimensione del blocco del filesystem.
Le dimensioni del settore sono le unità gestite dall'hardware. Questo varia tra diversi tipi di hardware, ma la maggior parte dell'hardware di tipo PC (floppy, dischi IDE, ecc.) Utilizza settori a 512 byte.
La dimensione del cluster è l'unità di allocazione utilizzata dal filesystem ed è ciò che causa la frammentazione: sono sicuro che tu lo sappia. Su un filesystem ext3 di dimensioni moderate, in genere si tratta di 4096 byte, ma puoi verificarlo con dumpe2fs
. Ricorda che questi sono anche comunemente chiamati " blocchi ", solo che qui mi riferisco a loro come cluster . La dimensione del cluster è ciò che viene restituito nel st_blksize
buffer delle statistiche, in modo che i programmi siano in grado di calcolare l'utilizzo effettivo del disco di un file.
La dimensione del blocco è la dimensione dei buffer che il kernel utilizza internamente quando memorizza nella cache settori che sono stati letti dai dispositivi di archiviazione (da cui il nome "dispositivo a blocchi"). Poiché questa è la forma più primitiva di archiviazione nel kernel, tutte le dimensioni dei cluster di filesystem devono essere multipli di questo. Questa dimensione di blocco è anche ciò a cui quasi sempre fanno riferimento i programmi di userspace. Ad esempio, quando si esegue
du
senza le opzioni -h o -H, verrà restituito quanti di questi blocchi occupa un file. df
riporterà anche le dimensioni in questi blocchi, la colonna "Blocchi" fdisk -l
nell'output è di questo tipo e così via. È quello che viene comunemente chiamato "blocco". Due settori del disco si adattano a ciascun blocco.
La dimensione del cilindro viene utilizzata solo nella tabella delle partizioni e dal BIOS (e il BIOS non è utilizzato da Linux).
Fonte: dimensione del blocco del disco Linux ... aiuto per favore
Settori 0-31
Per rispondere alla tua domanda sui primi 32 settori, poiché l'unità flash è un dispositivo formattato FAT, quindi guardando la definizione del file system FAT, si può vedere che un file system FAT è composto da quattro diverse sezioni:
a) I settori riservati;
b) la regione File Allocation Table (FAT);
c) la regione della directory principale e;
d) La regione dei dati.
I settori riservati , situati all'inizio, sono (in questo caso) i settori 0-31:
Il primo settore riservato (settore logico 0) è Boot Sector (aka
Volume Boot Record (VBR) ). Include un'area chiamata BIOS Parameter Block (con alcune informazioni di base sul file system, in particolare il suo tipo, e puntatori alla posizione delle altre sezioni) e di solito contiene il codice del boot loader del sistema operativo.
Informazioni importanti dal settore di avvio sono accessibili attraverso una struttura del sistema operativo chiamata Drive Parameter Block (DPB) in DOS e OS / 2.
Il conteggio totale dei settori riservati è indicato da un campo all'interno del settore di avvio e di solito è 32 nei file system FAT32 .
Per i file system FAT32, i settori riservati includono un settore di informazioni sul file system nel settore logico 1 e un settore di avvio di backup nel settore logico 6.
Mentre molti altri fornitori hanno continuato a utilizzare un'impostazione a settore singolo (solo settore logico 0) per il caricatore di bootstrap, il codice del settore di avvio di Microsoft è cresciuto fino a comparire sui settori logici 0 e 2 dall'introduzione di FAT32, con il settore logico 0 a seconda del routine secondarie nel settore logico 2. L'area del settore di avvio del backup comprende anche tre settori logici 6, 7 e 8. In alcuni casi, Microsoft utilizza anche il settore 12 dell'area dei settori riservati per un boot loader esteso.
Solo informazioni aggiuntive, non pertinenti alla domanda del PO
La regione FAT sarà nel settore 32:
Questo in genere contiene due copie (che possono variare) della tabella di allocazione dei file per motivi di controllo della ridondanza, anche se usati raramente, anche dalle utility di riparazione del disco.
Queste sono mappe della Data Region, che indicano quali cluster sono utilizzati da file e directory. In FAT12 e FAT16 seguono immediatamente i settori riservati.
In genere, le copie extra vengono mantenute in stretta sincronizzazione nelle scritture e nelle letture vengono utilizzate solo quando si verificano errori nel primo FAT. In FAT32, è possibile passare dal comportamento predefinito e selezionare un singolo FAT tra quelli disponibili da utilizzare a fini diagnostici.
I primi due cluster (cluster 0 e 1) nella mappa contengono valori speciali.
La directory directory principale :
Questa è una tabella di directory che memorizza informazioni sui file e le directory che si trovano nella directory principale. Viene utilizzato solo con FAT12 e FAT16 e impone nella directory principale una dimensione massima fissa che è pre-allocata alla creazione di questo volume. FAT32 memorizza la directory principale nell'area dati, insieme a file e altre directory, consentendole di crescere senza tale vincolo. Pertanto, per FAT32, la Data Region inizia qui.
La regione dei dati :
Qui è dove vengono archiviati i dati di file e directory effettivi e occupa la maggior parte della partizione. Tradizionalmente, le parti non utilizzate dell'area dati vengono inizializzate con un valore di riempimento di 0xF6 secondo la tabella dei parametri del disco (DPT) di INT 1Eh durante il formato su macchine compatibili IBM, ma utilizzate anche nel portafoglio Atari. I floppy CP / M da 8 pollici venivano in genere preformattati con un valore di 0xE5; tramite Digital Research questo valore è stato utilizzato anche su floppy in formato Atari ST. Amstrad ha usato invece 0xF4. Alcuni formattatori moderni cancellano i dischi rigidi con un valore di 0x00, mentre un valore di 0xFF, il valore predefinito di un blocco flash non programmato, viene utilizzato sui dischi flash per ridurre l'usura. Quest'ultimo valore viene in genere utilizzato anche sui dischi ROM. (Alcuni strumenti di formattazione avanzati consentono di configurare il byte di riempimento del formato.)
La dimensione dei file e delle sottodirectory può essere aumentata in modo arbitrario (purché ci siano cluster gratuiti) semplicemente aggiungendo più collegamenti alla catena del file nel FAT. Si noti tuttavia che i file vengono allocati in unità di cluster, quindi se un file di 1 KiB risiede in un cluster da 32 KiB, vengono sprecati 31 KiB.
FAT32 inizia in genere la tabella della directory principale nel cluster numero 2: il primo cluster dell'area dati.
Fonte: Wikipedia - Tabella di allocazione dei file