Page suivantePage pr�c�denteTable des mati�res

5. D�marrage

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.

5.1 LILO et les options 'lba32' et 'linear'

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.

5.2 Un bug de LILO

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).

5.3 1024 cylindres ce n'est pas 1024 cylindres

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.

5.4 Plus de limite � 1024 cylindre sur une vieille machine IDE

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/


Page suivantePage pr�c�denteTable des mati�res

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:42