(Courriels de diversion: <saoudite@biscuiteries-affretez.com> <billets@distingue-corrompirent.com> <demarcherent@ferules-boite.com> <plucher@integrons-maximiserai.com> <laboureriez@passe-passe-empêcheuses.com> <dactylographions@finissais-reformant.com> <reorganisation@huppee-imbriquerai.com> <meurtrissant@chatterton-perquisitionnerait.com> <manioc@contresignerions-recompenserai.com> <sondeur@indifferente-phlebites.com> )


<posté comme article et comme courrier>

Le Jeudi 15 Novembre 2001 10:09, Rolly Arnaud (arolly@anfora.fr) a dit dans linux-31.culte.org :

> J'ai un problème bien spécifique, pour les pro de Lilo!
> J'ai un fichier binaire formaté en ext2 (fichier qui sera transféré en raw
> sur un disque dur) et je souhaite pouvoir installer lilo dans le fichier
> binaire, pour qu'il lance un kernel situé dans le fichier binaire.
> Comment faire ?
> J'ai essayé en utilisant les paramètres boot=<fichier_finaire> et
> image=<pt_motage_fichier_binaire/boot/vmlinuz>.
> En toute logique, Lilo refuse (il dit qu'il sait pas faire).

J'aime bien ces problèmes épineux... ça me rappelle le bon vieux temps de 
la bidouille. Tu connais peut-être déjà ce que je vais dire, et j'espère 
aussi ne pas dire trop de bétises.  De toute manière, en cas de doute, la 
doc de LILO fait foi (pas la page de manuel, la VRAIE doc en .ps) :

LILO ne lit pas /etc/lilo.conf au boot, il le lit lorsqu'il est exécuté 
avec la commande «lilo». Dans le cas le plus simple, il confectionne alors 
un MBR (Master Boot Record) qu'il place dans le premier secteur du *disque* 
(512 octets). Il confectionne aussi un «map-file», dont les numéros de 
secteurs seront placés dans le MBR pour pouvoir être lus au boot. Lors du 
boot, le BIOS,  après avoir accomplit sa tâche, charge le MBR en mémoire et 
passe la main au code qu'il est censé contenir. Le MBR ne fait pas partie 
des partitions, et donc ne fait *pas* partie de ton image EXT2.  Le MBR 
contient un code + des adresses des secteurs du disque à lire pour 
récupérer le code des chargeurs secondaires, map-file, ... 

Si LILO est utilisé en chargeur secondaire, l'équivalent du MBR sera stocké 
dans le premier secteur de la *partition* concernée. Il est destiné à être 
chargé par le code du MBR (chargeur principal). Je ne sais pas trop si tu 
veux un chargeur principal ou secondaire...

Si tu as l'intention d'installer ta partition toujours au même endroit sur 
des machines clones, tu peux fabriquer une fois pour toute un MBR que tu 
copiera en plus de la partition EXT2, par exemple en faisant un dd vers le 
périphérique du disque/partition concerné.

Mais si les configs sont différentes, il faut sans doute ruser. Par exemple 
faire un script qui copie en raw ton image EXT2 dans la bonne partition, 
monte cette partition temporairement, disons sur /mnt (ou en loop-device si 
tu veux), crée un /mnt/etc/lilo.conf adéquat, puis lance 
 lilo -r /mnt -C /mnt/etc/lilo.conf 
pour fabriquer le bon chargeur et le stocker au bon endroit (MBR ou 
chargeur secondaire).  Si tu veux un chargeur secondaire, il faut aussi 
modifier le MBR (chargeur principal) pour qu'il pointe sur la bonne 
partition cible contenant le chargeur secondaire. J'imagine qu'il y a des 
solutions + tortueuses avec un initial-ramdisk, et il faut alors demander 
aux spécialistes des boot-floppies...

Dj.

---------------------------------------------------------------------
Aide sur la liste: <URL:mailto:linux-31-help@CULTe.org>Le CULTe sur le web: <URL:http://www.CULTe.org/>