Sophie

Sophie

distrib > Mandriva > 9.1 > i586 > by-pkgid > f1098342ec4a2b28475e34123ce17201 > files > 558

howto-html-it-9.1-0.5mdk.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
 <TITLE>Large Disk HOWTO: Traduzione dei dischi IDE operata dal kernel</TITLE>
 <LINK HREF="Large-Disk-HOWTO-9.html" REL=next>
 <LINK HREF="Large-Disk-HOWTO-7.html" REL=previous>
 <LINK HREF="Large-Disk-HOWTO.html#toc8" REL=contents>
</HEAD>
<BODY>
<A HREF="Large-Disk-HOWTO-9.html">Avanti</A>
<A HREF="Large-Disk-HOWTO-7.html">Indietro</A>
<A HREF="Large-Disk-HOWTO.html#toc8">Indice</A>
<HR>
<H2><A NAME="s8">8. Traduzione dei dischi IDE operata dal kernel</A></H2>

<P>
<!--
disk!translation done by kernel
-->

Se il kernel di Linux rileva la presenza di un disk manager su un disco IDE
cerca di rimappare il disco nello stesso modo in cui l'ha mappato il disk manager, cos&igrave; vede le stesse partizioni che ad esempio il DOS gestisce con OnTrack o EZ-Drive.
Tuttavia se si specifica la geometria da riga di comando
NON viene effettuata la rimappatura del disco. Una riga di comando del tipo
`<CODE>hd=</CODE><I>cilindri</I><CODE>,</CODE><I>testine</I><CODE>,</CODE><I>settori</I>' 
fa perdere ogni compatibilit&agrave; con il disk manager.
<P>Se tutto questo vi d&agrave; fastidio e se conoscete qualcuno che pu&ograve; ricompilarvi
un nuovo kernel cercate il file <CODE>linux/drivers/block/ide.c</CODE>  
e cancellate dalla funzione <CODE>ide_xlate_1024()</CODE> il test:
<CODE>if (drive->forced_geom) {---;return 0;}</CODE>.
<P>La rimappatura si fa, posto il prodotto H*C costante, variando il
valore del numero di testine (4, 8, 16, 32, 64, 128, 255) finch&eacute; si verifica
C &lt;= 1024 o H = 255.
<P>Il titolo dei paragrafi che seguono corrisponde alle stringhe che appaiono in fase di 
boot quando Linux rileva la presenza di un disk manager.
I tipi delle partizioni si devono intendere espressi in notazione esadecimale.
<P>
<H2><A NAME="ss8.1">8.1 EZD</A>
</H2>

<P>
<!--
disk!EZ-Drive translation
-->

<!--
disk!EZD translation
-->

EZ-Drive &egrave; rilevato perch&eacute; assegna alla partizione primaria numero uno il tipo 55.
La geometria &egrave; rimappata come detto sopra. La tabella delle partizioni presente nel settore
0 non viene presa in considerazione perch&eacute; viene letta quella presente nel settore 1.
Il numero dei blocchi del disco non &egrave; cambiato, l'operazione di scrittura sul
settore 0 &egrave; reindirizzata al settore 1.
Questo comportamento pu&ograve; essere modificato ricompilando il kernel con:
<CODE> #define FAKE_FDISK_FOR_EZDRIVE  0 </CODE> in <CODE>ide.c</CODE>.
<P>
<H2><A NAME="ss8.2">8.2 DM6:DDO</A>
</H2>

<P>
<!--
disk!OnTrack DiskManager translation
-->

<!--
disk!DM6:DD0 translation
-->

OnTrack DiskManager (sul primo disco) &egrave; rilevato perch&eacute; assegna alla partizione 
primaria numero uno il tipo 54. La geometria &egrave; rimappata come detto sopra e tutto
il disco &egrave; traslato di 63 settori (cos&igrave; facendo il vecchio settore 63 diventa il nuovo settore 0).
Dopo questa operazione sul settore 0 viene letto un nuovo MBR (con la relativa
tavola della partizioni). Naturalmente la traslazione dei settori &egrave; necessaria
per creare lo spazio per il DDO, questo spiega perch&eacute; negli altri dischi
non si applica tale operazione.
<P>
<H2><A NAME="ss8.3">8.3 DM6:AUX</A>
</H2>

<P>
<!--
disk!OnTrack DiskManager translation
-->

<!--
disk!DM6:AUX
-->

OnTrack DiskManager (sugli altri dischi) &egrave; rilevato perch&eacute; assegna alla partizione 
primaria numero uno il tipo 51 o 53. La geometria &egrave; rimappata come detto sopra.
<P>
<H2><A NAME="ss8.4">8.4 DM6:MBR</A>
</H2>

<P>
<!--
disk!OnTrack DiskManager translation
-->

<!--
disk!DM6:MBR
-->

Questa &egrave; una vecchia versione di OnTrack DiskManager rilevata da una firma e non da un
assegnamento di tipo ad una partizione (si verifica che l'offset trovato nel 2 e 3 byte
dell' MBR non sia maggiore di 430 e che lo short trovato in questo offset sia eguale a 
0x55AA, e inoltre che sia seguito da un byte di disparit&agrave;).
La geometria, come nei casi precedenti, &egrave; rimappata come detto sopra.
<P>
<H2><A NAME="ss8.5">8.5 PTBL</A>
</H2>

<P>
<!--
disk!PTBL translation
-->

Si possono dedurre le informazioni necessarie alla traduzione del disco utilizzando un test
che verifica l'<CODE>inizio</CODE> e la <CODE>fine</CODE> della partizione primaria.
Se l'<CODE>inizio</CODE> e la <CODE>fine</CODE> di una partizione sono nei settori 
numero 1 e 63, rispettivamente e se le testine finali sono 31, 63, 127 o 254 allora,
considerato che &egrave; prassi terminare le partizioni entro le dimensioni di un cilindro,
e dacch&eacute; l'interfaccia IDE utilizza al massimo 16 testine, si pu&ograve; presupporre che il
BIOS abbia effettuato una traduzione e che la geometria del disco sia stata rimappata per
utilizzare 32, 64, 128 o 255 testine, rispettivamente.
Quando la geometria rilevata ha gi&agrave; 63 settori per traccia e altrettante testine 
non viene effettuata la rimappatura (perch&eacute; questo significa che probabilmente ne &egrave; gi&agrave; stata fatta una).
<P>
<HR>
<A HREF="Large-Disk-HOWTO-9.html">Avanti</A>
<A HREF="Large-Disk-HOWTO-7.html">Indietro</A>
<A HREF="Large-Disk-HOWTO.html#toc8">Indice</A>
</BODY>
</HTML>