Configuration de LILO (LInux LOader - Chargeur Linux) Introduction 11.. OObbjjeett _L_i_n_u_x peut s'initialiser en utilisant différents mécanismes. L'initialisation consiste à lire et à charger en mémoire un fichier contenant le noyau (souvent nommé zImage ou vmlinuz), puis à en lancer l'exécution. Alors que ceci paraît simple, on est souvent confronté à un certain nombre de bizarreries. C'est pourquoi l'initialisation d'un système d'exploitation est une sorte de ``magie noire.'' A la différence de beaucoup de chargeurs fournis avec d'autres OS commerciaux, _L_I_L_O est largement documenté et un des plus souples, et de loin. Nous allons, en premier lieu, décrire ce qui se passe puis voir ce que l'on peut faire de tout cela. 22.. PPrriinncciippeess ddee LLIILLOO Sans vouloir entrer trop dans les détails, voyons seulement comment se passe le démarrage d'un PC. 22..11.. LLee pprreemmiieerr hhaabbiittaanntt :: llee BBIIOOSS Quand un PC démarre, le _B_I_O_S est le premier programme, résident en _R_O_M, à prendre le contrôle de la machine. Après l'initialisation de la plupart du matériel présent, il tente de charger un petit programme, normalement présent sur le premier secteur de la disquette ou du premier disque dur. Ce programme s'appelle le _M_a_s_t_e_r _B_o_o_t _R_e_c_o_r_d ou en abrégé _M_B_R. 22..22.. DDuu MMBBRR ssuurr llee ddiissqquuee dduurr àà ll''OOSS Le _M_B_R du disque dur, en utilisant le BIOS, réalise l'une des deux opérations suivantes. La première possibilité (comme pour le MBR du DOS) est qu'il localise la partition active et charge le premier secteur de _c_e_t_t_e partition. ce secteur contient un petit programme qui a un peu plus de connaissances concernant l'intimité de _l_'_O_S résident dans cette partition. Il poursuivra le chargement soit des composants de base du système soit, tout simplement, d'un chargeur plus sophistiqué qui terminera le travail. Ou bien, le MBR du disque dur peut charger l'information directement de l'une des partitions et l'utiliser pour charger l'OS de n'importe quelle partition. On peut configurer LILO de cette manière; le chargeur d'OS/2 et Partition Magic, deux autres chargeurs bien connus fonctionnent de cette façon. 22..33.. LLee sseecctteeuurr ddee ddéémmaarrrraaggee dd''uunnee ddiissqquueettttee Le secteur de démarrage d'une disquette peut être comparé au secteur de démarrage de la partition active. Normalement, il charge l'OS présent sur la disquette. 22..44.. EEtt LLIILLOO ?? _L_I_L_O est très flexible, et voici pourquoi. · On peut l'installer soit en remplacement du _M_B_R soit comme secteur de démarrage d'une partition, et continuer à démarrer _L_i_n_u_x et la plupart des autres OS à partir de n'importe quelle partition de n'importe quelle unité de disque. · On peut l'installer sur le secteur de démarrage d'une disquette et lui faire exécuter son travail normal, démarrer à peu près n'importe quoi sur le(s) disque(s) dur(s). · En dehors du secteur de démarrage, il n'utilise aucun fichier caché ni partition spéciale. De plus, ses fichiers de configuration peuvent être installés sur n'importe quelle partition, même celles sans relation avec _L_i_n_u_x, même dans un sous-répertoire d'une partition _D_O_S. · Il peut charger différentes configurations du noyau et même différents noyaux. · Il peut démarrer plus d'une installation _L_i_n_u_x. · Il peut démarrer linux sur n'importe quelle unité de disque. 22..55.. LLIILLOO,, LLiinnuuxx,, eett lleess aauuttrreess Quand on installe _L_i_n_u_x sur une machine disposant de plusieurs OS en plus de _L_i_n_u_x), prenez ceci comme règle de base : Installez et configurez le démarrage de tous les autres OS en premier car ils sont beaucoup moins adaptables. Il sera alors beaucoup plus facile de paramètrer LILO pour faire démarrer tous les autres OS. 33.. DDiiaalloogguuee ddee ccoonnffiigguurraattiioonn ddee LLIILLOO Maintenant que vous savez un peu mieux de quoi _L_I_L_O est capable, voyons comment vous pouvez le configurer en utilisant _L_i_n_u_x_c_o_n_f. Le dialogue principal de configuration est divisé en sections. Voici une introduction à chacune de ces sections. 33..11.. FFoonnccttiioonnnnaalliittééss gglloobbaalleess Cette section concerne l'installation de _L_I_L_O. 33..11..11.. DDééssaaccttiivvaattiioonn ddee LLIILLOO Si vous faites démarrer votre système _L_i_n_u_x sans_L_I_L_O, _L_i_n_u_x_c_o_n_f peut vous paraître quelque peu ennuyeux car il tente toujours de s'assurer que _L_I_L_O est correctement configuré. Vous pouvez désactiver la prise en compte de _L_I_L_O par _L_i_n_u_x_c_o_n_f à chaque instant. Cela ne concerne que _L_i_n_u_x_c_o_n_f. Cela ne fait rien de plus. Cela ne va pas Dés-installer _L_I_L_O. Cela ordonnera simplement à _L_i_n_u_x_c_o_n_f : ``arrête de tester lilo''. 33..11..22.. IInnssttaallllaattiioonn dduu sseecctteeuurr ddee ddéémmaarrrraaggee _L_I_L_O est amené à la vie, au démarrage, par un tout petit, tout petit programme appelé sseecctteeuurr ddee ddéémmaarrrraaggee. Ce programme doit être installé en position stratégique. La liste déroulante de ce champ vous propose une liste de choix valides par ordre de préférence. Si _L_i_n_u_x est la partition aaccttiivvee cela n'a pas beaucoup d'importance. Si ce n'est pas le cas, ou si votre partition _L_i_n_u_x n'est pas sur le premier disque dur, vous devrez installer le secteur de démarrage soit sur l'enregistrement de démarrage maître du premier disque dur, soit sur une disquette de démarrage. Notez que le fait d'installer le secteur de démarrage sur une disquette ne ralentis absolument pas le processus de démarrage, car seul un secteur est lu sur cette disquette. Tous les autres fichiers continuent de résider dans la partition _L_i_n_u_x de votre disque dur. Si vous avez un autre gestionnaire de démarrage (_O_S_/_2 _b_o_o_t _m_a_n_a_g_e_r pour l'un, Partition Magic pour l'autre), alors le choix le plus sûr est d'installer le secteur de démarrage dans la partition linux. Il faudra indiquer à l'autre gestionnaire de démarrage cette nouvelle partition. Le gestionnaire de démarrage _O_S_/_2 _b_o_o_t _m_a_n_a_g_e_r peut démarrer (comme LILO) linux même s'il est situé sur un disque dur secondaire (pas le primaire). 33..11..33.. MMooddee ddee ddéémmaarrrraaggee BBiiooss Il est réputé démarrer plus rapidement. Par contre, il est connu pour ne pas fonctionner sur certaines machines. Je n'ai aucune expérience le concernant. 33..11..44.. EEnnccooddaaggee ddee llaa ttaabbllee ddee ddéémmaarrrraaggee LILO crée une table qui permet au chargeur de localiser le fichiers du noyau. Cet encodage est effectué soit sous la forme piste/tête/secteur ou sous celle de numéro de blocs séquentiels. Avec certains contrôleurs SCSI, le première stratégie ne fonctionne pas. Si cela vous arrive, essayez d'utiliser le mode séquentiel. La plupart des ordinateurs modernes fonctionnent correctement en utilisant le mode numéro de blocs séquentiels. 33..11..55.. AAffffiicchheerr ll''iinnvviittee LLIILLOO Avec cette option, LILO affichera son caractère d'attente. Cette option est activée par défaut LILO boot: A partir de là, vous pouvez · Lancer un OS différent ou une configuration différente · Fournir des paramètres de démarrage au noyau A l'invite, vous pouvez choisir une configuration; appuyez sur la touche TAB pour afficher une liste des configurations existantes. Tapez le nom de la configuration ou tapez simplement sur la touche pour choisir la configuration par défaut. Si vous avez besoin de passer des paramètres de démarrage au noyau, il faudra que vous tapiez en premier lieu le nom de la configuration, même si c'est la configuration par défaut. 33..11..66.. AAtttteennttee àà ll''iinnvviittee Sans durée d'attente spécifiée, LILO attendrait pour toujours une frappe en réponse à son caractère d'invite. Vous pouvez spécifier un délai à l'échéance duquel LILO démarrera de lui-même en utilisant la configuration par défaut. Le délai par défaut est de 5 secondes. 33..11..77.. DDééllaaii ddee ddéémmaarrrraaggee LILO peut démarrer immédiatement ou attendre un certain temps avant d'afficher l'invite boot: (s'il est configuré pour afficher cette invite) ou pour démarrer (s'il n'est pas configuré pour afficher l'invite). Pendant cette attente, vous pouvez interrompre la séquence de démarrage en tapant shift-tab; LILO affichera alors son message d'invite normal boot: prompt. Si vous désactivez l'affichage de l'invite, un délai de démarrage de 5 secondes est recommandé. La valeur 0 désactive ce délai. 33..11..88.. FFiicchhiieerr mmeessssaaggee Vous devez indiquer le chemin d'accès à un fichier texte. Idéalement ce texte sera court et tiendra dans l'écran, laissant le message d'invite _L_I_L_O en bas. Les disquettes de démarrage de quelques distributions l'utilisent. Vous pouvez l'utiliser, par exemple, pour donner des instructions de démarrage dans un Lab. ou aux membres de la famille qui ne se souviennent pas des touches à utiliser. 33..22.. VVaalleeuurrss ppaarr ddééffaauutt Cette section donne la configuration par défaut. Linuxconf l'utilisera pour renseigner les différents champs de configuration de _L_i_n_u_x La saisie de ces informations à cet endroit évitera d'avoir à les rentrer plusieurs fois par la suite. 33..22..11.. PPaarrttiittiioonn RRoooott Vous devez indiquer à _L_i_n_u_x où se situe la partition root. Une liste déroulante vous donne la liste de toutes les partitions existantes. 33..22..22.. TTaaiillllee dduu ddiissqquuee vviirrttuueell Les disques virtuels sont utilisés pour l'installation des disques de démarrage. Ils sont rarement utilisés pour la configuration complète. Le disque virtuel est devenu configurable en fonctionnement depuis le développement récent des modules du noyau. La valeur 0 désactive la fonctionnalité disque virtuel. 33..22..33.. MMooddee ddee ddéémmaarrrraaggee :: LLeeccttuurree sseeuullee?? Normalement ce drapeau est positionné. Pour l'installation de _U_M_S_D_O_S il est désactivé. De toute façon, l'installation _U_M_S_D_O_S utilisera en général _l_o_a_d_l_i_n pour démarrer au lieu de _L_I_L_O. A moins que vous ne sachiez ce que vous faites, laissez ce drapeau activé. Voici pourquoi : Quand _L_i_n_u_x démarre en mode lecture seule, il peut vérifier les partitions sans du tout y toucher. Ceci est particulièrement bénéfique si le démarrage suit un effondrement système qui a laissé les partitions dans un état instable. Pourquoi toutes ces histoires à propos du fait de ne pas toucher les partitions ? Eh bien, _L_i_n_u_x entretient plusieurs marques par fichier. L'une d'entre elles est la "date de dernier accès". Cela signifie que le système de fichiers est modifié (données écrites sur le disque) simplement par lecture de ces fichiers (ce qui est exactement ce qui se passe au démarrage). Cette marque de date du dernier accès est tout à fait utile, mais devient un inconvénient au moment du démarrage. Le fait d'être en "lecture seule" indique à _L_i_n_u_x d'annuler ce comportement. Après que la partition ait été testée, le système remettra en fonction le mode "lecture écriture" automatiquement. 33..22..44.. OOppttiioonnss ddee ddéémmaarrrraaggee Quelques pilotes de périphériques nécessitent quelques informations pour s'initialiser correctement. Par exemple, certains lecteurs de CDROM ne s'identifient pas correctement. Pour dire à Linux de prendre en compte votre lecteur (plutôt détraqué) de CDROM comme lecteur de CDROM, vous devrez indiquer quelque chose comme : hdc=cdrom Ceci indiquant à Linux que le périphérique IDE maître de la deuxième interface IDE (c'est à dire, /dev/hdc) est un CDROM. 33..33.. PPaarraammééttrraaggee ddee LLiinnuuxx La section par défaut est suivie de plusieurs sections identiques. Chacune d'entre elles définit une configuration de démarrage _L_i_n_u_x. Chacune des configuration de démarrage reprend tous les paramètres de la section par défaut. Vous pouvez simplement rentrer les paramètres de chacune de ces sections si vous désirez les modifier. La première configuration sera la numéro un par défaut. Cela signifie que _L_I_L_O démarrera celle-là à moins que l'on en indique une différente à l'invite boot:. Trois champs seulement diffèrent de la section par défaut. 33..33..11.. SSuupppprriimmeerr cceettttee ccoonnffiigguurraattiioonn Si vous cochez cette case, la configuration sera supprimée quand vous cliquerez sur le bouton accept. 33..33..22.. FFiicchhiieerr iimmaaggee dduu nnooyyaauu C'est le chemin d'accès au fichier du noyau qui servira pour démarrer avec cette configuration. Notez qu'un fichier noyau peut être utilisé par plusieurs configurations. 33..33..33.. LLaabbeell C'est un nom court qui identifie la configuration d'une manière unique. Etant donné qu'un fichier noyau peut être partagé par plusieurs configurations, on a besoin d'une clé unique pour l'identifier. Il sera utilisé lorsqu'on arrêtera le processus de démarrage. _L_I_L_O attends alors simplement un label et démarre alors la configuration correspondante. 33..44.. AAuuttrree ssyyssttèèmmee dd''eexxppllooiittaattiioonn _L_I_L_O est capable de lancer à peu près n'importe quoi. Pour chaque OS que vous voulez lancer, spécifiez simplement une partition et un label._L_I_L_O charge simplement le secteur de démarrage de cette partition et le lance. 44.. DDééppllaacceemmeenntt ddeess ffiicchhiieerrss ddee ccoonnffiigguurraattiioonn ddee LLIILLOO Quelquefois, on peut désirer jouer avec les fichiers de configuration de _L_i_l_o. La bonne nouvelle c'est que, en premier lieu, on peut les déplacer, ensuite on peut en informer Linuxconf. Allez simplement au menu "Liste de tous les fichiers de configuration" faites-le défiler jusqu'à la ligne /etc/lilo.conf et sélectionnez le bouton edit. Entrez le nouveau chemin d'accès au fichier de configuration de _L_I_L_O. Faites attention au fait que _L_I_L_O s'attend à trouver son fichier de configuration dans /etc/lilo.conf. Après son déplacement, le fichier doit se trouver dans un sous-répertoire contenant un sous-répertoire etc dans lequel il faudra placer le fichier lilo.conf, par exemple, /mnt/tmp/etc/lilo.conf. 44..11.. DDee ttoouuttee ffaaççoonn,, ppoouurrqquuooii ddééppllaacceerr LLIILLOO ?? Différentes raisons peuvent vous conduire à vouloir le faire. En voici quelques unes. · Votre disque dur a plus de 1024 cylindres et la partition root vient au-delà du 24-ième cylindre._L_I_L_O utilise le BIOS pour charger les fichiers du noyau (entre autres). Si le fichier noyau réside au-dessus de la limite du 24-ième cylindre, _L_I_L_O ne sera pas capable de démarrer correctement. LILO vous le dira au moment de l'installation. · Votre partition root est située sur le second, le troisième ou le quatrième disque dur et votre BIOS (encore lui) est trop vieux et ne reconnaît pas ce second canal IDE. Dans ce cas, LILO vous mettra en garde au moment de l'installation de l'impossibilité, de votre BIOS, à accéder à votre unité de disque. Au moment du démarrage vous aurez un paquet d'erreurs. D'un autre côté, quelques distributions installent correctement tous les fichiers nécessaires pour le démarrage dans un répertoire /boot qui est installé dans une partition séparée si votre répertoire root n'est pas complètement en dessous de la barrière des 1024 cylindres. Dans ce cas, vous n'avez absolument pas besoin de déplacer LILO. 44..22.. CCoommmmeenntt llee ddééppllaacceerr ?? OOùù ?? Sur une machine réservée à Linux, où vous disposez d'une unité de disque de grande capacité, ayant plus de 1024 cylindres, beaucoup de gens créeront une partition plus petite pour l'OS de base et une plus grande pour les données, de façon à être sûrs que tous les fichiers LILO tiennent sous la limite des 1024 cylindres. C'est souvent ennuyeux car cela rend la gestion du système plus complexe et cela se termine par deux partitions partiellement remplies. Une autre solution consiste à créer une très petite partition (quelques megas) au début du disque et de la réserver pour les fichiers de configuration et du noyau de _L_I_L_O. de cette manière, vous pouvez créer une seule grande partition root qui est plus facile à gérer. (on peut cependant argumenter que le fait de créer une seule, grande, partition, constitue une mauvaise idée car cela revient à mettre tous ses oeufs dans le même panier. Etant donné l'architecture du système de fichiers EXT2 qui répartit les informations de gestion sur toute l'étendue de la partition, avec duplication, je doute que cette remarque s'impose encore). Donc, vous avez une partition qui remplit le contrat. Elle est entièrement accessible à partir du BIOS. Voici la marche à suivre. Supposons que cette partition soit montée sous le répertoire lilo et que vouv vouliez mettre tous les fichiers de configuration à la racine de cette partition. · mkdir /lilo/etc · cp /etc/lilo.conf /lilo/etc/lilo.conf · mkdir /lilo/boot · cp /boot/* /lilo/boot · cd / · tar cf - dev | (cd /lilo && tar xvf -) · cp /vmlinuz /lilo Vous pouvez activer cette configuration déplacée de la façon suivante /sbin/lilo -r /lilo Et vous pouvez le faire avec Linuxconf en indiquant que /etc/lilo.conf est devenu /lilo/etc/lilo.conf. A partir de maintenant, en utilisant Linuxconf, le processus est devenu complètement invisible, à vous et à qui que ce soit qui gère votre machine. 55.. AAlltteerrnnaattiivveess àà LLIILLOO _L_i_n_u_x peut être lancé à partir d'une disquette ordinaire ou en utilisant loadlin. Tout cela ne concerne pas _L_I_L_O mais c'est bon de le savoir. En supposant que votre partition root _L_i_n_u_x est /dev/hdaX... 55..11.. UUttiilliissaattiioonn dd''uunnee ddiissqquueettttee Pour créer une simple disquette de démarrage, faites seulement · cp zImage /dev/fd0 · rdev /dev/fd0 /dev/hdaX · rdev -R /dev/fd0 1 55..22.. UUttiilliissaattiioonn ddee llooaaddlliinn pour démarrer en utilisant loadlin (Un programme _D_O_S), copiez simplement le fichier noyau sur la partition _D_O_S et tapez, à l'invite du _D_O_S : loadlin zimage root=/dev/hdaX ro