Cosa significa l'output di fdisk?


10

Ho una chiavetta USB e voglio comprenderne le proprietà così come viene emessa fdisk. L'ho inserito dmesge ho controllato e ho potuto vedere che era montato, /dev/sdb1così ho corso fdiskper vedere cosa è stato segnalato/dev/sdb

mike@mike-Qosmio-X770:~$ sudo fdisk -l
[sudo] password for mike: 

Disk /dev/sdb: 127 MB, 127926272 bytes
16 heads, 32 sectors/track, 488 cylinders, total 249856 sectors
 Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x6b3ee723

   Device Boot      Start         End      Blocks   Id  System
 /dev/sdb1   *          32      249854      124911+   b  W95 FAT32

Per quanto ne so, l'unità è un'unità flash formattata FAT32 da 128 MB, con solo 1 partizione. Inizia da "32" (presumibilmente 0-31 è usato per alcuni FTL).

Sta segnalando che un "settore" ha una dimensione di 512 byte e ci sono 249.856 settori (122 MB in totale).

Ora sono confuso riguardo al cilindro, alla testa e al numero di settori / tracce. So che i cilindri / le teste hanno a che fare con i tipi di archiviazione su disco magnetico. C'è un significato per questi quando si tratta di un dispositivo flash? O sono solo informazioni "lasciate" fdiskche non hanno davvero alcun significato per un supporto di memorizzazione non magnetico? Se poi, perché dare dei valori?

Seconda domanda, qual è la "dimensione" di un blocco? :

Blocks
 124911+

E qual è il significato del +conteggio dei blocchi dopo il blocco?


1
Bella domanda, +1, non ci avevo mai pensato prima. Cosa intendi con "FTL" però? Per me questo significa Faster Than Light, immagino che ti riferisca a qualcos'altro?
terdon,

1
@terdon - FTL (Flash translation layer) le cose che fanno il livellamento whare e quant'altro
Mike

Risposte:


3

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à:

  1. Dimensione del blocco hardware, "dimensione del settore"
  2. Dimensione del blocco del filesystem, "dimensione del blocco"
  3. Dimensione blocco cache buffer kernel, "dimensione blocco"
  4. 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_blksizebuffer 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 dusenza le opzioni -h o -H, verrà restituito quanti di questi blocchi occupa un file. dfriporterà anche le dimensioni in questi blocchi, la colonna "Blocchi" fdisk -lnell'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.

Panoramica dei grassi

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


1

Immagino che i settori 1-31 siano riservati alle informazioni di avvio e alle informazioni sulla tabella delle partizioni. La partizione / dev / sdb1 inizia dal blocco / settore 32 e va a 249854. È una partizione logica sul disco fisico.

124911+ ti fornisce il conteggio dei blocchi tra 32 e 249854.

Informazioni su Disk Geometry ecco cosa man fdsikdice al riguardo:

Se possibile, fdisk otterrà automaticamente la geometria del disco. Questa non è necessariamente la geometria del disco fisico (in effetti, i dischi moderni non hanno davvero nulla di simile a una geometria fisica, certamente non qualcosa che può essere descritta in forma semplicistica di cilindri / teste / settori), ma è la geometria del disco che MS-DOS utilizza per la tabella delle partizioni.

Di solito tutto va bene per impostazione predefinita e non ci sono problemi se Linux è l'unico sistema sul disco. Tuttavia, se il disco deve essere condiviso con altri sistemi operativi, è spesso una buona idea lasciare che un fdisk da un altro sistema operativo crei almeno una partizione. Quando Linux si avvia, guarda la tabella delle partizioni e cerca di dedurre quale (falsa) geometria è necessaria per una buona cooperazione con altri sistemi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.