Newsgroup: it.comp.os.linux.development
Titolo: Api per accedere fisicamente al disco

Ciao a tutti,
potete indicarmi una funzione dell'api di linux che mi consente di accedere
al disco fisicamente? Cioè una funzione a cui dati in ingresso i valori di
cilindro traccia e settore (o anche meglio ancora con l'indirizzamento LBA)
mi dia in uscita il contenuto di quella locazione?
Grazie.

 wrote:

Cos'e`? Hai un cron ogni 12 ore?
Dai un occhio a ioctl() se fa al caso tuo (ne dubito), altrimenti scrivi
un modulo per il kernel.
Bye.

 Cos'e`? Hai un cron ogni 12 ore?
no. cmq non capisco cosa c'entri...

On Fri, 1 Jun 2001 14:38:46 +0200, Giovanni 
was talkin'about:

Sicuramente a livello kernel ma non saprei in che modo. Altrimenti in
userland puoi utilizzare i comandi SCSI come READ. Se il disco e' ide puoi
emularlo.
--
  	Giuseppe "Cowo" Corbelli  -->>  Riding on Linux-2.2.18
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
  -<! A conclusion is simply the place where someone got tired of thinking. !>-


Forse sei poco pratico di Unix, ma il comando cron ti
consente di effettuare operazioni ad intervalli regolari
di tempo senza intervento umano.
Alla tua domanda avevano gia' risposto e ne e' pervenuta
un'altra identica, questo significa che non leggi le
risposte ai tuoi post o che hai un comando cron innescato :-).
Ciao.

 writes:

FILE *disco;
char contenuto[512];
disco=fopen("/dev/hda","r");
fseek(disco,512*numerosettore_LBA);
fread(contenuto,512,1,disco);
fclose(disco);
-- 
     /kinkie (kinkie chiocciola tiscalinet punto it)
Ed ora, qualche parola dai nostri sponsor:
People who fight fire with fire usually end up with ashes.
		-- Abigail Van Buren

 no. cmq non capisco cosa c'entri...
Ero come per dire "e` inutile che posti la stessa domanda ogni 12 ore
(vedi altro tuo post a mezzanotte, questo era a mezzogiorno). Chi sa
rispondere lo fara`, gli altri ignoreranno il tuo post".
Io quel che sapevo te l'ho detto. Non ci sono API per accedere
fisicamente al disco, visto che il VFS di Linux copre tutto. L'unico modo
e` farlo da un modulo del kernel.
Posso sbagliarmi, ma visto anche l'altro post non credo di molto.
Bye.

 fseek(disco,512*numerosettore_LBA);
Correggimi se sbaglio :) ma facendo cosi` non sei dipendente da come il
kernel ha visto il disco?
Mi spiego: quando faccio il boot alcuni dischi vengono visti come LBA
(perche` io gliel'ho detto da BIOS o da fdisk), altri no:
hda: 80315072 sectors (41121 MB) w/1902KiB Cache, CHS=4999/255/63, UDMA(66)
hdf: 60032448 sectors (30737 MB) w/2048KiB Cache, CHS=59556/16/63, UDMA(100)
Il tuo sistema funziona, non ne dubito, con tutti e due, ma non permette
di scegliere se accedere con LBA o meno.
Tralasciando il discorso che ormai dubito che ci siano dischi che "hanno
quel che dichiarano", tipo 16 testine che significa 8 piatti. Da come la
sapevo io gli indirizzamenti ai dischi sono sempre in forma logica, poi
ci pensa l'elettronica sul disco a fare la conversione.
Bye.

di scegliere se accedere con LBA o meno.
I comandi hw del disco prevedono come parametro l'indirizzo in LBA. E'
quello che si divrebbe usare sempre.
-- 
        Giuseppe "Cowo" Corbelli  -->>  Riding on Linux-2.2.18
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
DOS - Defective Operating System
IBM - I Blame Microsoft
BASIC - Bill's Attempt to Seize Industry Control
WINDOWS - Will Install Needless Data On Whole System
MICROSOFT - Most Intelligent Customers Realize Our Software Only Fools Teenagers

Non l'ho fatto di proposito.. non so perchè ma il primo post non mi usciva e
credendo di non averlo mandato l'ho fatto di nuovo...
chiuedo scusa...
Ciao cmq si puo' fare (da root) aprendo /dev/hda come un normale file.
ciao


 ci pensa l'elettronica sul disco a fare la conversione.
E se il disco non la fa, la fa il kernel.
-- 
     /kinkie (kinkie chiocciola tiscalinet punto it)
Ed ora, qualche parola dai nostri sponsor:
A good marriage would be between a blind wife and deaf husband.
		-- Michel de Montaigne

 disco in LBA o in CHS. A te parlera` sempre in equivalente a LBA.
A me non cambia niente. Non ho queste esigenze. :)
Solo che la domanda originale chiedeva un modo per accedere dando C, H e
S, preferibilmente in LBA.
In sostanza tu mi confermi che non c'e` modo a livello utente di
scegliere come vedere il disco e di accedere esattamente a C, H e S
prescelti.
Grazie per il chiarimento. :)
Bye.

 Non capisco la domanda.
Forse lui si riferisce al fatto che su alcuni bios puoi settare il formato 
del disco in 2/3 modi ( varie accoppiate di CHS ). E non è detto che fra un 
modo e l'altro la sequenzialità dei settori venga rispettata.
Il problema ( se esite ) riguarda tutti quei  sistemi  ( vedi il DOS, o i 
boot loader  ) che si appoggiano al BIOS per accedere al disco, e a tutti 
gli altri sistemi che voglio mantenere compatibilità con esso.
Credo che nei doc dei vari /usr/src/linux/driver/block/ide* ci sia qualcosa 
a proposito.