View Full Version : dimensione settori hard disk
come posso sapere la dimensione dei settori degli hard disk?
esiste un'api?
mi sembra che la getvolumeinformation non funzioni a questo scopo.
grazie.:D
GetDiskFreeSpace(........);
ma se non ricordo male ha qualche limite
Ma dei settori o dei cluster ?
spiego meglio il mio problema:
linguaggio VB6.
non permette di scrivere in asm
devo accedere a una funzione dos che scrive e legge
direttamente dall'hard disk a basso livello
ho trovato un vxd che mette a disposizione tutte le funzioni dos
e bios passandogli una struttura con la quale verranno riempiti i
registri del processore prima di chiamare l'int.
la struttura richiesta contiene tra altri dati quello della
dimensione del settore.(come me lo ricavo)?
mi spieghereste una volta per tutte la differenza tra traccie,
cluster, settori,ecc....? grazie
Il cluster è la dimensione minima indirizzabile dal sistema operativo...
La suddivisone in cluster logica in cluster viene effettuata durante la formattazione...
I cilindri dovrebbero essere le varie circonferenze concentriche su cui vengono memorizzati fisicamente i dati...
I settori sono siddivisioni (che passano dal centro) a spicchi della superficie del disco...
Le testine sono invece le testine di lettura che si occupano di leggere solo una determinata superficie del disco (o una porzione della superficie)...
Quindi invidiuando sia un cilindro testina e traccia si possono individuare una serie di dati su una determinata superficie del disco...
Il sistema operativo mantiene una tabella all'inizio del disco in cui scrive le varie catene di cluster che un file occupa...
Ci dovrà essere una routine del sistema operativo che si occupa di tradurre l'indice del cluster nelle coordinate CHS (Cylinder Head Sector)...
non voglio essere puntiglioso ma
cilindro e traccia non sono la stessa cosa?
quindi per indirizzare un punto io necessitero' di cordinate
x=cilindro o traccia
y=settore
z=testina
e'giusto?
so che la dimensione dei settori di un floppy e' sempre di 512 byte ed esistono 2880 settori
in questo caso quanto e' grande il cluster?
Originariamente inviato da x110
[B]non voglio essere puntiglioso ma
cilindro e traccia non sono la stessa cosa?
Non lo so...
Originariamente inviato da x110
[B]x=cilindro o traccia
y=settore
z=testina
e'giusto?
Dipende come la vedi... Il cilindro è la distanza dal centro (in realtà il primo cilindro dovrebbe essere quello più esterno)...
Il settore è la posizione sulla circonferenza del cilindro (quindi non è un asse)...
La testina la puoi vedere anche come Z...
Lo puoi associare ad un sistema di coordinate cilindrico...
Originariamente inviato da x110
[B]so che la dimensione dei settori di un floppy e' sempre di 512 byte ed esistono 2880 settori
Guarda cosa rende il chkdsk del floppy :
512 byte in ogni unità di allocazione.
2.847 unità totali di allocazione su disco.
Le unità di allocazione sono i cluster...ed in questo caso dovrebbero corrispondere con la dimensione della parte di dati individuata dal CHS...
In tal caso nei floppy i cilindri sono 80 e le testine 2 (facce)...
C = Clindri = 80
H = Testine = 2
S = Settori
S = 2880/(80*2) = 18 Settori
Il tipo di indirizzamente CHS reale comunque non viene più utilizzato... E' stato sostituito con un tipo di indrizzamento fittizio chiamato LBA (Logical Block Addressing, se guardi nel BIOS ci sono le modalità LBA, CHS, LARGE)...
Questo perchè il numero di cilindri era diventato troppo grande per utilizzare un indrizzamento reale (superiore a 1024)...
Con il metodo LBA c'è un ulteriore livello di traduzione effettuato dal BIOS o dal controller EIDE (mi sa di più il BIOS)...
Quindi le coordinate CHS che il sistema operativo passa alla routine dell'interrupt software che va a leggere sul disco non corrispondono più alla posizione reale in cui il disco andrà a scrivere... Come avvenga la traduzione non lo so... Probabilmente viene aumentato il numero delle testine e viene messo il numero di cilindri al massimo utilizzabile...
Secondo me quella che cerchi è la dimensione dei cluster e non dei settori... Anche perchè parlando solo di settori non si individua la più piccola parte indirizzabile del disco...ma il settore è l'intero spicchio del disco (dal centro all'esterno)...
Comunque come dice misterx...con la GetDiskFreeSpace puoi ottenere la dimensione del cluster e il numero di settori su cui sta il cluster...
GRAZIE PER LE RISPOSTE.
ORA PROVO A VEDERE SE LA DIMENSIONE DEL CLUSTER DEL FLOPPY E' 512 BYTE POICHE'
IO HO UN PROGRAMMA DI ESEMPIO CHE UTILIZZA QUEL VXD CHE DICEVO PRIMA
E QUESTO DICHIARA UNA COSTANTE SECTORZIZE=512 QUANDO VUOLE LEGGERE DA FLOPPY.
Sul floppy sono sicuro... Ogni cluster occupa un solo settore...
Me lo ricordo dai vecchi CarbonCopy e DiskDupe ;)
MetalMassacre
30-11-2002, 14:39
Originariamente inviato da x110
[B]non voglio essere puntiglioso ma
cilindro e traccia non sono la stessa cosa?
le testine degli hd si muovono sui piu piatti in contemporanea determinando cosi un'area definita cilindro (in senso verticale..lo spazio occupato dalle testine allineate sui diversi piatti).
le tracce invece sono scritte concentricamente su ogni piatto
:)
Quindi un cilindro è l'insieme di tutte le tracce leggibili da quella posizione delle testine... Va bene ?
Torna...torna...
X CIONCI
COSA SONO CARBONCOPY E ELTRO???
SONO MICA DEI COPIATORI?
SE COSI' FOSSE MI MANDI UN LINK DAL QUALE LI POSSO SCARICARE O SE LI HAI TU ME LI PUOI MANDARE?
GRAZIE.;)
MA SCUSATE, I CILINDRI E LE TRACCE QUINDI SONO SEMPRE IN NUMERO UGUALE,
ANCHE SE UNO INDICA UNA TRACCIA SU UN DISCO MENTRE
L'ALTRO INDICA L'INSIEME DELLE TRACCE SUI VARI DISCHI.
ANCHE NEL CASO DEL FLOPPY TORNA POICHE QUESTO
HA 80 TRACCIE E 80 CILINDRI.
CHIEDO CONFERMA:
SE ESISTESSE UN HD CON 2 DISCHI CHE HA 1000 TRACCIE
I CILINDRI SAREBBERO SEMPRE 1000?
In pratica il cilindro indica quale traccia vuoi leggere utilizzando una determinata testina...
Quindi con 2 dischi uguali con 1000 tracce il numero di cilindri è 1000...
MetalMassacre
01-12-2002, 10:35
Originariamente inviato da cionci
[B]Quindi un cilindro è l'insieme di tutte le tracce leggibili da quella posizione delle testine... Va bene ?
Torna...torna...
Giustissimissimo :)
Originariamente inviato da misterx
[B]leggete qua: http://www.tutorialpc.it/hardisk.asp
e qua:
http://www.ghostcomputerclub.it/archivi/speciali/hard-disk.htm
http://ildp.pluto.linux.it/guide/GuidaSysadm/hd-schematic.png
2 DOMANDE:
COME POSSO QUINDI RICAVARE LA DIMENSIONE DEL SETTORE?
(CHE PUO' ESSERE INTESO COME UN ARCO DI TRACCIA?)
COME FUNZIONA IL MODO DI INDIRIZZAMENTO DELL'LBA?
;)
GetDiskFreeSpace(........); ti rende il numero di settori occupati da ogni cluster...e anche la dimensione del cluster...quindi hai anche la dimensione del settore...
La modalità LBA opera solamente variando il numero di testine e cilindri logici... Quindi la dimensione del settore ricavata nel modo sopra dovrebbe rimanere costante...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.