
-
tutto su Linux e sul software libero -
|
|
Avanti
Indietro
Indice
La chiamata HDIO_GETGEO memorizza il numero dei cilindri
in una variabile di tipo short.
Questo vuol dire che se si hanno più di 65535 cilindri il loro valore
verrà troncato e (per una tipica configurazione SCSI com 1MiB di cilindri)
un disco da 80 GiB apparirà come uno da 16 GiB.
Una volta riconosciuto tale problema è facile evitarlo.
I dischi superiori ai 33.8 GB non sono utilizzabili con i kernel
precedenti alla versione 2.3.21.
Appresso si riportano i dettagli.
Ipotizziamo l'acquisto di un nuovo disco IBM-DPTA-373420 con una
capacità di 66835440 settori (34.2 GB).
I kernel ante 2.3.21 riporterebbero una dimensione di 769*16*63 = 775152
settori (0.4 GB) che è una cosa spiacevole.
Se fornissimo i parametri hdc=4160,255,63 da linea di comando
non otterremmo alcun effetto - tale valori sarebbero ignorati.
Ma cosa succede? La funzione idedisk_setup() utilizza la geometria
fornita dal disco (che è 16383/16/63) e sovrascrive i
valori specificati dall'utente da linea di comando che vengono
utilizzati solo per impostare la geometria da passare al BIOS.
La funzione current_capacity() o idedisk_capacity() ricalcola
il numero dei cilindri come 66835440/(16*63)=66305 poichè
tale valore è memorizzato in una variabile short diviene
769.Fino a quando lba_capacity_is_ok() non distrugge id->cyls
ogni sua chiamata successiva riporterà il valore falso,
di conseguenza la capacità del disco diviene 769*16*63.
È disponibile un aggiornamento per diverse versioni del kernel.
Una "patch" per la versione 2.0.38 può esere trovata presso:
ftp.kernel.org.
Una "patch" per la versione 2.2.12 può essere trovata presso:
www.uwsg.indiana.edu
(potrebbero essere necessarie delle modifiche per eliminare i delimitatori
del linguaggio html).
I kernel della serie 2.2.14 gestiscono tali dischi.
La serie 2.3.* gestisce questi dischi a partire dalla versione 2.3.21.
È possibile "risolvere" il problema a livello hardware utilizzando un
ponticello (jumper) per impostare la dimensione di 33.8 GB.
In molti casi sarà necessario un aggiornamento del
BIOS
se si vuole utilizzare tali dischi come dischi d'avvio del sistema.
Avanti
Indietro
Indice
 - tutto su Linux e sul software libero - | |