Sophie

Sophie

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

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: Avvio del sistema</TITLE>
 <LINK HREF="Large-Disk-HOWTO-6.html" REL=next>
 <LINK HREF="Large-Disk-HOWTO-4.html" REL=previous>
 <LINK HREF="Large-Disk-HOWTO.html#toc5" REL=contents>
</HEAD>
<BODY>
<A HREF="Large-Disk-HOWTO-6.html">Avanti</A>
<A HREF="Large-Disk-HOWTO-4.html">Indietro</A>
<A HREF="Large-Disk-HOWTO.html#toc5">Indice</A>
<HR>
<H2><A NAME="s5">5. Avvio del sistema</A></H2>

<P>
<!--
booting!BIOS usage during
-->

<!--
disk!BIOS access during booting
-->

Quando il sistema viene inizializzato il BIOS legge il settore 0 (definito come 
MBR - Master Boot Record) dal primo disco fisso (o dal floppy) e
lancia il programma che vi trova - di solito un bootstrap loader.
Il loader residente nel settore 0 non ha i suoi driver per cui utilizza
i servizi del BIOS. Ci&ograve; significa che il kernel di Linux deve essere interamente contenuto
nei primi 1024 cilindri per essere caricato.
<P>Questo problema si risolve molto semplicemente verificando che il kernel
(e gli altri file utilizzati durante il boot, come le mappe dei file di LILO)
sia in una partizione contenuta intieramente nei primi 1024 cilindri del disco
in modo che il BIOS vi possa accedere - probabilmente questo significa
utilizzare il primo o il secondo disco.
<P>Create quindi una piccola partizione, diciamo di 10 MB, 
cos&igrave; c'&egrave; spazio per pi&ugrave; di un kernel, facendo attenzione che sia contenuta entro i primi 1024
cilindri del primo o del secondo disco.
Montatela in <CODE>/boot</CODE> cos&igrave; LILO vi metter&agrave; i file di cui necessita. 
<P>
<P>
<H2><A NAME="ss5.1">5.1 LILO e l'opzione `linear'</A>
</H2>

<P>
<A NAME="linear"></A> 
Un altro problema &egrave; che sia il boot loader che il BIOS devono vedere la stessa geometria del disco.
LILO inoltra al kernel la richiesta di informazioni circa la geometria ma molte volte gli autori
dei driver dei dischi hanno la brutta abitudine di utilizzare la
tavola delle partizioni per desumere la geometria del disco invece di
specificare a LILO qual &egrave; la geometria utilizzata dal BIOS.
Cos&igrave; facendo spesso la geometria fornita dal BIOS non &egrave; corretta. In questi casi pu&ograve; essere conveniente passare a LILO l'opzione `<CODE>linear</CODE>' in modo che non necessitando dei parametri della geometria
durante la fase di inizializzazione del sistema (memorizza gli indirizzi lineari nelle mappe)
faccia la conversione in indirizzi lineari all'avvio. Perch&eacute; questa non &egrave; un'opzione predefinita?
Bene, occorre tener presente che il suo uso comporta un problema. LILO con l'opzione `linear'
attivata non &egrave; in grado di conoscere il numero dei cilindri come conseguenza non pu&ograve;
generare nessun avvertimento se una parte del kernel si trova oltre il limite dei 1024 cilindri.
Alla fine vi potreste trovare con un sistema che non &egrave; in grado di avviarsi.
<P>
<H2><A NAME="ss5.2">5.2 Un "bug" di LILO</A>
</H2>

<P>Le versioni di LILO inferiori alla v21 hanno un difetto:
la conversione degli indirizzi effettuata durante la fase di avvio ha un
"bug": quando il prodotto c*H &egrave; maggiore od eguale a 65536 si hanno degli errori di
overflow durante il calcolo.
Per valori di H superiori a 64 si ha un limite pi&ugrave; stretto sui valori
attribuibili a c rispetto al solito c &lt; 1024; per esempio, con H=255 e con
una versione datata di LILO si deve avere c &lt; 258 (c=cilindro dove risiede
l'immagine del kernel, H=numero delle testine del disco).
<P>
<H2><A NAME="ss5.3">5.3 1024 cilindri non sono 1024 cilindri</A>
</H2>

<P>Tim Williams scrive: `Ho la mia partizione Linux nei primi 1024
cilindri e tuttavia non c'&egrave; verso di di avviarla. Quando l'ho ridimensionata a meno di 1 GB le cose sono andate a posto.'
Cosa pu&ograve; essere? Bene, il disco in parola &egrave; un disco SCSI con un controller AHA2940UW
che usa sia H=64, S=32 (ossia cilindri di 1 MiB = 1.05 MB) che H=255, S=63 (ossia cilindri di
8.2 MB) a seconda delle opzioni impostate nel firmware e nel BIOS.
Senza dubbio il BIOS assume la prima e trova il limite dei 1024 settori in corrispondenza di una capacit&agrave; di 1 GiB mentre Linux utilizza la seconda e LILO trova il limite agli 8.4 GB. 
<P>
<HR>
<A HREF="Large-Disk-HOWTO-6.html">Avanti</A>
<A HREF="Large-Disk-HOWTO-4.html">Indietro</A>
<A HREF="Large-Disk-HOWTO.html#toc5">Indice</A>
</BODY>
</HTML>