-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Disquette de démarrage sous Mandrake 9.2, da galère, résumé de la situation et pistes.

L'évolution de la taille des noyaux apporte de nombreuses interrogations sur la création d'une disquette de démarrage. En effet il semble que la place disponible sur une disquette 1,44 Mo soit devenue insuffisante pour certains noyaux.

Il en va en fait un peu différemment même si le résultat semble similaire.

Il existe ensuite plusieurs façons de se créer une disquette de démarrage.

Je me réfère ici à une distribution Mandrake 9.2 puisqu'elle semble poser ce problème mais ça sera à peu près la même chose sur d'autre.


A- Que se passe-t-il et pourquoi ?


Tout d'abord si l'on veut bien jeter un oeil dans /boot on verra que le noyau pèse 1.3 Mo et qu'il devrait donc entrer sur une disquette. Et pourtant à la création par les outils Mandrake (Mandrake Control Center) il apparaît que la disquette est trop petite.

En fait ceci est dû à l'utilisation de mkinitrd : celui-ci va générer un fichier initrd.img qui permet au système de charger temporairement en mémoire les modules raid et scsi qui seraient nécessaires au démarrage du système. En effet si la machine possède des périphériques de ce type indispensable au boot (un disque scsi par exemple) compilé en module elle ne peut démarrer puisque ces modules sont chargés en fin de séquence de démarrage : c'est le serpent qui se mord la queue. La solution a donc été d'utiliser un ramdisk chargé en mémoire pour permettre le boot de telles machines. Cependant, la taille des noyaux et de ces images grossissant, l'ensemble des deux peuvent dépasser la capacité d'une disquette classique : sur une mdk 9.2 1,3 Mo de noyau + 300 Ko pour initrd.img (sans compter le reste).

B- Que faire ?

Plusieurs solutions peuvent être envisagées devant cette difficulté :

1- Pour une machine sans raid et sans pilotes scsi nécessaires au démarrage, n'utiliser que le noyau ou faire sa disquette.
2- Formater la disquette en 1722 ko.
3- Si le matériel refuse de démarrer sur une disquette formater en 1722ko ou si l'on ne veut pas de Lilo sur le Mbr créer une (fausse) disquette de démarrage sans noyau avec Lilo ou Grub.
4- Une vraie disquette avec Lilo sur 1722 Ko.
5- Au secours !


1) N'utiliser que le noyau.
C'est en fait une des plus difficiles.
Mandrake Control Center semble permettre de ne sélectionner que le noyau en cochant "ne pas tenir compte des modules raid" et "ne pas tenir compte des modules scsi" mais ça ne fonctionne pas même en utilisant l'option force (je sais c'est décevant)*.
Il reste donc la possibilité de construire sa propre disquette d'amorçage mais c'est en fait très complexe, c'est d'ailleurs sans doute pour ça que les errata Mandrake (voir leur site Web) à propos du problème de la disquette de démarrage reste tellement vague. Si on veut s'y frotter quand même il faudra commencer par le Bootdisk-HOWTO (dans /usr/share/doc/howto s' il est installé ; on peut le trouver évidemment sur le site de freenix : http://www.freenix.fr/unix/linux/HOWTO/Bootdisk-HOWTO-3.html) : bon courage !


* L'utilisation d'outils plus classiques comme mkbootdisk ne résoud évidemment pas le problème non plus.


2) Formater la disquette avec une plus grande capacité.


On peut grâce aux programmes fdformat et superformat formater une disquette en ligne de commande. Ces programmes font partie du paquet fdutils qu'il faudra installer (sans oublier de jeter un oeil sur la pages man;-) ). La capacité la plus fréquemment acceptée par les lecteurs de disquettes est le formatage en 1722 ko : ça tombe bien c'est la taille qu'il nous faut et pour ça on utilisera fdformat (en plus du manpage on peut lire également le fichier /usr/src/linux/Documentation/devices.txt). Pour faire cela c'est très simple : mettre une disquette dans le lecteur et saisir (ne pas monter surtout)

# fdformat /dev/fd0u1722

(0 représente le numéro du lecteur on saisira "fdformat /dev/fd1u1722" pour le deuxième lecteur de disquettes etc...) La disquette est formatée en haute densité avec une contenance de 1722 Ko. Il existe d'autres formats (moins bien supportés) : voir devices.txt ou, comme on bénéficie de l'auto-complétion et que je suis cossard, "fdformat /dev/fd" puis taper sur la touche <tabulation> montre les formats disponibles (enfin un truc qui marche !)

Ensuite il suffit d'utiliser cette disquette avec le Centre de Contrôle Mandrake et voilà. Mais attention Mandrake utilise sans doute une option surnommée "sûre, lente et stupide" de syslinux (syslinux -s) pour générer cette disquette : ça permet de ne pas caler devant différents bugs liés au Bios, mais pour être lent c'est lent ... ce qui fait que pour démarrer le système régulièrement autrement qu'en cas de panne, il vaut mieux procéder autrement (heureusement qu'on ne reboot pas souvent comme avec ... non ! je ne l'ai pas dit).


3) Si etc... en gros ça môrche pô :-(


Il nous reste la fausse disquette de démarrage. Fausse, parce que si elle permet de démarrer un système qui va bien depuis une disquette, en cas de problème (cas pour lequel en gnéral on a recours à la disquette) elle ne sera d'aucune utilité vu qu'elle ne contient qu'un secteur d'amorçage. Ceci sert donc à démarrer un sytème depuis la disquette et ne peut en aucun cas remplace pas une véritable disquette d'amorçage.

C'est très simple, il suffit d'installer Lilo ou Grub sur une disquette au lieu du mbr du disque dur. On peut le faire depuis le Centre de Contrôle Mandrake/Démarrage/Drakboot --> configurer et dans le menu déroulant sélectionner /dev/fd0 et valider.

Attention ! Si vous faites ça juste pour faire une disquette mais que vous utilisez le mbr du premier disque habituellement (ou un autre) refaite ensuite la même manipulation en selectionnant votre disque habituel car ceci modifie le fichier /etc/lilo.conf. On peut aussi rétablir "lilo.conf" manuellement (sous root) en rétablissant la ligne d'en-tête "boot=/dev/hda" ou autre selon la configuration précedente. Dans le cas contraire un "/sbin/lilo" sous root inscrira lilo sur la disquette.

Et si on ne veut pas modifier lilo.conf ? On peut le faire en ligne commande dans une console avec

# lilo -b /dev/fd0

Cette option équivaut à la ligne boot=/dev/fd0 du fichier lilo.conf et possède l'avantage de ne pas le modifier.

Ça marche : chouette, il était temps !


4) Une disquette d'amorçage avec Lilo en 1722 Ko.


Comme je parle ici de fausse disquette de boot avec Lilo (ou Grub) on peut supposer qu'il en existe une vraie plus rapide que la disquette de démarrage classique. Oui bien sûr mais c'est encore un peu plus compliqué à fabriquer : il lui faut un noyau, un système de fichier, un ramdisk, sysconfig ... et des outils de dépannages... Je renvoie donc les téméraires au Bootdisk-howto où tout est décrit.

Dans l'écran du centre de Contrôle (section DrakBoot/configurer) décrit précédemment (bouton "avancé") on peut voir la case à cocher "disquette de démarrage" et on se prend à rêver à une vraie disquette de démarrage Lilo (comme sous Slackware) mais pas de chance comme il lui faut un tas de choses évoquées plus haut et que ça utilise mkbootdisk, échec aussi pour cause d'obésité.

Cependant le Linuxien, même débutant, étant malin, patient voire entêté mais logique, le dit-linuxien se met à songer que s'il croisait les deux il fabriquerait une disquette d'amorçage rapide (menu DrakBoot/configurer/avancé et pas DrakFloppy) en appliquant la dernière méthode envisagée sur une disquette formatée 1722 Ko. Évidemment ça marche et ça démarre normalement.Ouf!


5) Au secours !


Rescue in English. À ceux dont le matériel n'accepterait pas le formatage sur 1722 Ko il reste la solution rescue du cd Mandrake. C'est sur le fichier /images/README du cd 1 :

Booter sur le cd puis F1 et saisir "rescue" ça charge un système de base qui devrait permettre de réparer. Si la machine ne démarre pas sur le cdrom (ça devient rare) on copie une image (celle cdrom.img si on a les cd) sur disquette comme pour l'installation du système, par exemple :

# dd if=/mnt/cdrom/images/cdrom.img of=/dev/fd0

Et <F1> puis "rescue" au boot (on met quand même le cd dans le lecteur sans ça il le cherche évidemment). Puis on suit les écrans.

Finalement c'est la solution la plus simple en dépannage (en utilisation quotidienne c'est d'inscrire Lilo ou Grub sur disquette) surtout que les lecteurs de disquettes c'est plutôt la fin, d'ailleurs il n'y en n'a plus sur les Macs, et si les pc en ont encore c'est plus par atavisme que par nécessité.
Et comme il y a des chances qu'on démarre bientôt directement sur une mémoire non volatile (depuis le temps qu'on en parle!) conservant en état préalable du pc, on devrait déjà pouvoir faire une "rescue-usb-key" ou un truc dans le genre ça gagnera du temps merci!
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org


iD8DBQE/ssLcKlDWAt/k5ckRAn3qAJ96dGTtK+qtJqVcnnKoi5M8fVRZ+ACeJx76
aPo/UbZI47xCrot/rTNeOK0=
=ec5R
-----END PGP SIGNATURE-----


Vous souhaitez acquerir votre Pack ou des Services MandrakeSoft?
Rendez-vous sur "http://www.mandrakestore.com";.

Foire Aux Questions de la liste : http://mdk.mondelinux.org

Répondre à