|
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ì 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
`hd=
cilindri,
testine,
settori'
fa perdere ogni compatibilità con il disk manager.
Se tutto questo vi dà fastidio e se conoscete qualcuno che può ricompilarvi
un nuovo kernel cercate il file linux/drivers/block/ide.c
e cancellate dalla funzione ide_xlate_1024()
il test:
if (drive->forced_geom) {---;return 0;}
.
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é si verifica C <= 1024 o H = 255.
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.
EZ-Drive è rilevato perché assegna alla partizione primaria numero uno il tipo 55.
La geometria è rimappata come detto sopra. La tabella delle partizioni presente nel settore
0 non viene presa in considerazione perché viene letta quella presente nel settore 1.
Il numero dei blocchi del disco non è cambiato, l'operazione di scrittura sul
settore 0 è reindirizzata al settore 1.
Questo comportamento può essere modificato ricompilando il kernel con:
#define FAKE_FDISK_FOR_EZDRIVE 0
in ide.c
.
OnTrack DiskManager (sul primo disco) è rilevato perché assegna alla partizione primaria numero uno il tipo 54. La geometria è rimappata come detto sopra e tutto il disco è traslato di 63 settori (così 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 è necessaria per creare lo spazio per il DDO, questo spiega perché negli altri dischi non si applica tale operazione.
OnTrack DiskManager (sugli altri dischi) è rilevato perché assegna alla partizione primaria numero uno il tipo 51 o 53. La geometria è rimappata come detto sopra.
Questa è 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à). La geometria, come nei casi precedenti, è rimappata come detto sopra.
Si possono dedurre le informazioni necessarie alla traduzione del disco utilizzando un test
che verifica l'inizio
e la fine
della partizione primaria.
Se l'inizio
e la fine
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 è prassi terminare le partizioni entro le dimensioni di un cilindro,
e dacché l'interfaccia IDE utilizza al massimo 16 testine, si può 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à 63 settori per traccia e altrettante testine
non viene effettuata la rimappatura (perché questo significa che probabilmente ne è già stata fatta una).
Hosting by: hurra.com
Generated: 2007-01-26 17:56:16