Quand le syst�me est mis en route, le BIOS lit le secteur 0 (connu sous le nom de MBR : le "Master Boot Record", la donn�e principale d'amor�age) du premier disque dur (ou de la disquette, ou du cd-rom) et saute au code trouv� � cet endroit -- en g�n�ral un chargeur d'amorce. Les petits chargeurs trouv�s � cet endroit n'ont, par principe, pas leur propre gestionnaire de disques durs et utilisent plut�t les services du BIOS. Cela signifie qu'un noyau Linux ne peut �tre charg� que s'il est enti�rement situ� dans les 1024 premiers cylindres du disque, � moins que vous ne poss�diez un BIOS et un chargeur de d'amorce moderne : un BIOS qui supporte les fonctions INT13 �tendues et un chargeur de d'amorce qui sache les utiliser.
Ce probl�me (s'il existe) est r�solu de mani�re tr�s simple : assurez-vous que le noyau (et peut-�tre d'autres fichiers utilis�s pendant la phase de d�marrage, comme les fichiers 'map' de LILO) soit situ� sur une partition qui est comprise toute enti�re dans les 1024 premiers cylindres d'un disque dur auquel le BIOS peut acc�der -- il est probable qu'il s'agisse du premier ou du second disque.
Ainsi, cr�ez une petite partition, disons d'une taille de 10 Mo, de telle
mani�re qu'il y ait de la place pour une poign�e de noyaux, en vous assurant
qu'elle soit contenue enti�rement dans les 1024 premiers cylindres du premier ou
du second disque dur. Montez-le en tant que r�pertoire /boot
;
ainsi, LILO pourra y mettre ses propres fichiers.
La plupart des syst�mes depuis 1998 utilisent un BIOS moderne.
Le principal : si vous utilisez LILO comme chargeur d'amorce, assurez-vous d'avoir un LILO avec une num�ro de version d'au moins 21.4 (LILO peut �tre trouv� � l'adresse suivante : ftp://metalab.unc.edu/pub/Linux/system/boot/lilo/).
Un appel � /sbin/lilo
(le programme qui installe la carte d'amor�age)
permet de stocker une liste d'adresses dans cette carte, pour que LILO (le
chargeur d'amorce) sache � partir d'o� lire l'image du noyau. Par d�faut ces
adresses sont stock�e au format (c,h,s) et un appel INT13 ordinaire est utilis�
au moment du d�marrage.
Quand le fichier de configuration pr�cise lba32
ou linear
, des
adresses lin�aires sont stock�es. Avec l'option lba32
les adresses
lin�aires sont �galement utilis�es au moment du d�marrage si le BIOS supporte
les extensions INT13 �tendues. Avec l'option linear
, ou avec un vieux
BIOS, ces adresses lin�aires sont reconverties sous une forme (c,h,s) et au
moment du d�marrage des appels INT13 ordinaires sont utilis�s.
De ce fait, avec l'option lba32
il n'y a pas de probl�me de g�om�trie
et il n'y a pas de limite � 1024 cylindres. Sans elle, il y a une limite �
1024 cylindres. Qu'en est-il de la g�om�trie ?
Le programme d'amor�age et le BIOS doivent �tre d'accord sur la g�om�trie du
disque dur. /sbin/lilo
demande la g�om�trie au noyau, mais il n'y a
aucune garantie que la g�om�trie du noyau Linux co�ncide avec celle qu'utilise
le BIOS. Donc, la g�om�trie fourni par le noyau est souvent inutile. Dans de
tels cas on peut faciliter la t�che � LILO en lui passant l'option
linear
. L'avantage alors est que, l'id�e qu'� le noyau Linux de la
g�om�trie, n'est plus utilis�e. Le revers de la m�daille est que lilo
ne peut plus vous pr�venir si une partie du noyau est stock�e au-del� de la
limite des 1024 cylindres et vous pouvez vous retrouver avec un syst�me qui
ne d�marre plus.
Avec les versions de LILO ant�rieures � la 2.1 il y a un autre d�savantage : la conversion des adresses effectu�e au d�marrage comporte un bug. Quand c×H est sup�rieur ou �gal � 65536, le calcul provoque un d�passement de capacit�. Pour H sup�rieur � 64 cela donne � c une limite encore plus stricte que le bien connu c<1024 ; par exemple, avec H=255 et un vieux LILO, on doit avoir c<258 (c=cylindre o� r�side l'image du noyau, H=nombre de t�tes du disque).
Tim Williams a �crit : "J'avais ma partition Linux en dessous des 1024 premiers cylindres et �a ne d�marrait quand m�me pas. Au d�but quand je l'ai d�plac�e en dessous de 1 Go, les choses fonctionnaient." Comment cela est-il possible ? En fait, c'�tait un disque dur SCSI avec un contr�leur AHA2940UW qui utilise soit H=64, S=32 (c'est � dire des cylindres de 1 Mio=1,05 Mo), soit H=255, S=63 (c'est � dire des cylindres de 8,2 Mo), en fonction des options du micro-code du disque dur et du BIOS. Il ne fait aucun doute que le BIOS se basait sur le premier groupe de valeurs, c'est pourquoi la limite des 1024 cylindres �tait trouv�e � 1 Gio, alors que Linux utilisait la seconde m�thode et LILO estimait que la limite �tait � 8,4 Go.
Le chargeur d'amorce nuni
ne fait pas appel aux services du BIOS mais
acc�de directement aux unit�s IDE. Donc il est possible de le mettre sur une
disquette ou sur le MBR et de d�marrer de d'importe o� de n'importe quel disque
IDE (pas seulement les deux premiers). Vous pouvez trouver ce chargeur �
ftp://metalab.unc.edu/pub/Linux/system/boot/loaders/
Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:42