Sophie

Sophie

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

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: Conclusioni</TITLE>
 <LINK HREF="Large-Disk-HOWTO-10.html" REL=next>
 <LINK HREF="Large-Disk-HOWTO-8.html" REL=previous>
 <LINK HREF="Large-Disk-HOWTO.html#toc9" REL=contents>
</HEAD>
<BODY>
<A HREF="Large-Disk-HOWTO-10.html">Avanti</A>
<A HREF="Large-Disk-HOWTO-8.html">Indietro</A>
<A HREF="Large-Disk-HOWTO.html#toc9">Indice</A>
<HR>
<H2><A NAME="s9">9. Conclusioni</A></H2>

<P>
<!--
disk!consequences of translation
-->

Cosa significa tutto ci&ograve;? Per gli utenti Linux una sola cosa:
che devono verificare che LILO e <CODE>fdisk</CODE> utilizzino la geometria corretta.
Per <CODE>fdisk</CODE> la geometria `corretta' &egrave; quella utilizzata dagli altri sistemi operativi 
installati sullo stesso disco mentre per LILO &egrave; quella che permette
un'interazione senza errori con il BIOS in fase di inizializzazione (di solito i due aspetti coincidono).
<P>Come rileva la geometria <CODE>fdisk</CODE>? Interroga il kernel, utilizzando la funzione
ioctl.h <CODE>HDIO_GETGEO</CODE>. L'utente &egrave; tuttavia in grado di forzare 
la geometria in modo interattivo o da linea di comando.
<P>Come rileva la geometria LILO?
Interroga il kernel utilizzando la ioctl <CODE>HDIO_GETGEO</CODE>.
Tuttavia l'utente pu&ograve; forzare la geometria utilizzando l'opzione `<CODE>disk=</CODE>'
nel file <CODE>/etc/lilo.conf</CODE> (cfr lilo.conf(5)). 
&Egrave; possibile fornire a LILO l'opzione <CODE>linear</CODE> in modo da memorizzare
nella mappa dei file i valori della LBA invece dei CHS e recuperer&agrave; la geometria da utilizzare
in fase di avvio mediante la funzione 8 dell'INT 13 per richiedere la geometria del disco.
<P>Com'&egrave; in grado di rispondere il kernel?
Bene, prima di tutto, l'utente pu&ograve; aver specificato una geometria esplicita
fornendo le opzioni `<CODE>hda=</CODE><I>cyls</I><CODE>,</CODE><I>heads</I><CODE>,</CODE><I>secs</I>'
al kernel da riga di comando (cfr. bootparam(7)),
probabilmtente di persona od indicando al "boot loader" di fornire tali valori al kernel.
Per esempio, si pu&ograve; indicare a LILO di fornire tali informazioni opzionali aggiungendo
una riga del tipo `<CODE>append = "hda=</CODE><I>cyls</I><CODE>,</CODE><I>heads</I><CODE>,</CODE><I>secs</I><CODE>"</CODE>'
in <CODE>/etc/lilo.conf</CODE> (cfr. lilo.conf(5)).
D'altrocanto il kernel &egrave; in grado di congetturare una geometria utilizzando
possibilmente i valori ottenuti dal BIOS o dai dispositivi hardware.
<P>&Egrave; possibile (a partire dalla versione 2.1.79) cambiare i valori della
geometria congetturata dal kernel utilizzando il filesystem <CODE>/proc</CODE>.
Per esempio:
<BLOCKQUOTE><CODE>
<PRE>
# sfdisk -g /dev/hdc
/dev/hdc: 4441 cylinders, 255 heads, 63 sectors/track
# cd /proc/ide/ide1/hdc
# echo bios_cyl:17418 bios_head:128 bios_sect:32 > settings
# sfdisk -g /dev/hdc
/dev/hdc: 17418 cylinders, 128 heads, 32 sectors/track
#
</PRE>
</CODE></BLOCKQUOTE>
<H2><A NAME="ss9.1">9.1 Calcolo dei parametri di LILO</A>
</H2>

<P>Qualche volta &egrave; utile impostare una precisa geometria da riga di comando:
`<CODE>hda=</CODE><I>cyls</I><CODE>,</CODE><I>heads</I><CODE>,</CODE><I>secs</I>'.
Quasi sempre si vuole un valore di <I>secs</I>=63, lo scopo di fornire tale valore &egrave; quello di
specificare il valore <I>heads</I>
(valori ragionevoli in questo periodo sono <I>heads</I>=16 e <I>heads</I>=255).
Quali valori si potrebbero specificare per <I>cyls</I>?
Quei valori che forniranno la capacit&agrave; totale corretta di C*H*S settori.
Per esempio, per un drive con 71346240 settori (36529274880 byte)
si potrebbe calcolare C come 71346240/(255*63)=4441 (usando, e.g., il programma
<CODE>bc</CODE>) e fornire quindi come parametri di avvio: <CODE>hdc=4441,255,63</CODE>.
Come si pu&ograve; stabilire la capacit&agrave; totale corretta?
Per esempio:
<BLOCKQUOTE><CODE>
<PRE>
# hdparm -g /dev/hdc | grep sectors
 geometry     = 4441/255/63, sectors = 71346240, start = 0
# hdparm -i /dev/hdc | grep LBAsects
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=71346240
</PRE>
</CODE></BLOCKQUOTE>

indica due modi per stabilire il numero totale si settori pari a 71346240.
I messaggi del kernel:
<BLOCKQUOTE><CODE>
<PRE>
# dmesg | grep hdc
...
hdc: Maxtor 93652U8, 34837MB w/2048kB Cache, CHS=70780/16/63
 hdc: [PTBL] [4441/255/63] hdc1 hdc2 hdc3! hdc4 &lt; hdc5 > ...
</PRE>
</CODE></BLOCKQUOTE>

riportano (perlomeno) 34837*2048=71346176 settori e 70780*16*63=71346240
settori (almeno). In questo caso il secondo valore &egrave; quello corretto
ma in generale entrambi sono arrotondati per difetto.
Questo &egrave; un buon modo per definire in maniera approssimata le dimensioni del disco quando
<CODE>hdparm</CODE> non &egrave; disponibile.
Non assegnate mai a <I>cyls</I> un valore troppo grande!
Nel caso di dischi SCSI il numero preciso dei settori &egrave; indicato 
dai messaggi forniti dal kernel all'avvio:
<BLOCKQUOTE><CODE>
<PRE>
SCSI device sda: hdwr sector= 512 bytes. Sectors= 17755792 [8669 MB] [8.7 GB]
</PRE>
</CODE></BLOCKQUOTE>

(MB e GB sono arrotondati, non per difetto, e in `notazione binaria'). 
<P>
<HR>
<A HREF="Large-Disk-HOWTO-10.html">Avanti</A>
<A HREF="Large-Disk-HOWTO-8.html">Indietro</A>
<A HREF="Large-Disk-HOWTO.html#toc9">Indice</A>
</BODY>
</HTML>