Knoppix avec un noyau 2.6.7 à partir d'un cédérom non amorçable

Gazette Linux n°107 — Octobre 2004

Anonymous

Article paru dans le n°107 de la Gazette Linux d'octobre 2004.

Traduction française par Emmanuel Araman .

Relecture de la traduction française par Joëlle Cornavin .

Article publié sous Open Publication License. La Linux Gazette n'est ni produite, ni sponsorisée, ni avalisée par notre hébergeur principal, SSC, Inc.


Table des matières
1. Introduction
2. Prérequis
2.1. Option n°1
2.2. Option n°2
3. Évolutions futures

1. Introduction

Vous voulez démarrer Knoppix, mais votre lecteur de cédérom ne peut pas amorcer pour des raisons soit techniques soit administratives. Vous pouvez essayer de démarrer le cédérom de Knoppix à partir d'un lecteur de disquette. Pour cela, il vous faut une disquette de démarrage Knoppix.

La récente Knoppix de mai 2004 repose sur un noyau 2.4.x, mais dispose du noyau 2.6.6 en option. De la même façon, la Knoppix 3.7 du 20 août contient le noyau 2.6.7 en option. Cette dernière version n'est — pour l'instant — disponible qu'en Allemagne sur un cédérom offert par un magazine informatique. Cependant, une version générale, éventuellement avec un noyau 2.6.8, devrait sortir prochainement. Il est donc logique de se référer au nouveau noyau parce qu'il est de plus en plus gros et cause des problèmes avec les disquettes.

Nous nous référerons au nouveau noyau Knoppix en tant que knoppix26 en utilisant le même nom que dans la configuration du cédérom d'amorçage. Malheureusement, knoppix26 ne démarre pas avec une seule disquette, il lui en faut deux.

Lorsqu'il s'exécute, knoppix26 contient un script dans /KNOPPPIX/usr/sbin/mkbootfloppy qui, malgré son nom singulier, permet de créer ces deux disquettes. Cependant, les disquettes ainsi générées reposent sur le noyau en cours d'utilisation. Si vous voulez qu'elles soient capables d'amorcer un noyau 2.6.x, vous devez les écrire tout en exécutant le noyau 2.6.x, ce qui donne une situation pour le moins inextricable ! Modifier le script semble également impossible car il n'est pas directement accessible sur le cédérom de la distribution Knoppix et il ne devient lisible que quand Knoppix tourne. Vous le trouverez sur le Web sous une forme éditable, mais l'utiliser intelligemment sera beaucoup plus compliqué que le conseil proposé dans cet article, en particulier avec le noyau 2.6.7, qui ne tient évidemment pas sur une seule disquette de 1,4 Mo.

Donc si votre cédérom n'amorce pas, comment allez-vous démarrer knoppix26 à partir du lecteur de disquette ?


2. Prérequis

Vous devez avoir quelques connaissances sur syslinux. Heureusement, vous pouvez les acquérir rapidement sur le site http://syslinux.zytor.com.


2.1. Option n°1

Utiliser l'un des deux chargeurs d'amorçage (en chaîne) suivants :

Ces deux chargeurs peuvent créer une disquette d'amorçage qui démarre un cédérom (amorçable), même si le cédérom est incapable d'amorcer. Dans le cas particulier du cédérom Knoppix, la bonne nouvelle est qu'ils l'amorceront tous les deux à partir d'un cédérom non amorçable.

Cette solution est intéressante si vous souhaitez mimiser le travail préliminaire. Malheureusement, si vous n'installez pas Knoppix sur le disque dur par la suite, il se peut que vous fassiez beaucoup de saisie sur la ligne de commande à chaque fois que vous amorcez.

[Ne considérez pas la remarque ci-dessus comme une critique de ces deux chargeurs d'amorçage. Ils sont également très utiles dans d'autres situations.]


2.2. Option n°2

Le principal problème est la taille du noyau à partir de la version 2.6.7. Avec la version 2.6.6, le noyau Knoppix tenait sur une disquette de 1,4 Mo. Dorénavant, vous devez formater la disquette à 1,68 Mo — ;la même taille qu'utilise parfois Microsoft® pour ses disquettes. À cette fin, vous pouvez utiliser winimage sous Windows, fdformat sous DOS ou superformat/fdformat sous Linux. Bonne chance à vous car les disquettes vendues pour la capacité de 1,4 Mo n'acceptent pas forcément d'être formatées sans problème à une capacité supérieure. D'après mon expérience, il faut une boite de dix disquettes pour trouver une telle disquette tolérante. Pour une vérification stricte, utilisez winimage et vous verrez le massacre.

Quand vous avez formaté la disquette, faites-en une disquette de démarrage syslinux. Vous pouvez le faire sous DOS, Windows ou Linux — le choix vous appartient. Aucune aide supplémentaire n'est prévue ici pour cela. Cette disquette de démarrage ne contiendra qu'un seul petit fichier, ldlinux.sys.

Sur le cédérom de la Knoppix 3.7, il y a un répertoire /boot/isolinux sur lequel vous trouverez entre autres les fichiers suivants :


    boot.msg              141
    f2                  1,561
    f3                  1,688
    isolinux.cfg        2,642
    linux26         1,458,194
    minirt26.gz       791,321

Copiez tout sauf le dernier fichier sur la disquette syslinux ci-dessus. Renommez isolinux.cfg en syslinux.cfg et modifiez-le comme suit :


DEFAULT knoppix26
TIMEOUT 300
PROMPT 1
DISPLAY boot.msg
F2 f2
F3 f3
LABEL knoppix26
KERNEL linux26
APPEND load_ramdisk=1 prompt_ramdisk=1 root=/dev/fd0 rw init=/etc/init lang=fr apm=power-off nomce BOOT_IMAGE=knoppix
LABEL expert26
KERNEL linux26
APPEND load_ramdisk=1 prompt_ramdisk=1 root=/dev/fd0 rw init=/etc/init lang=fr apm=power-off nomce BOOT_IMAGE=expert

Vous avez maintenant une disquette de démarrage pour le noyau 2.6.x, le disque virtuel initial étant lu depuis une seconde disquette. Saisissez knoppix26 à l'invite de démarrage. Comme il vous demande rapidement d'insérer la seconde disquette, ayez-la à portée de la main.

La seconde disquette doit être une copie brute de minirt26.gz. Cela signifie que vous ne pouvez vous contenter de formater la disquette avec un système de fichiers et de placer minirt26.gz dans ce système de fichiers. Quand syslinux lit la disquette, il attend le contenu binaire de minirt26.gz et rien d'autre. Il ne part pas du principe d'un système de fichiers avec un fichier dedans.

La question est : comment copier le contenu du fichier brut sur la disquette ? Voici la commande à lancer sous Linux depuis le répertoire /boot/isolinux du cédérom de Knoppix :


 
dd if=minirt26.gz of=/dev/fd0 bs=18k

La valeur de bs importe peu, elle détermine juste la taille des segments lus et écrits. (Une disquette de 3,5 pouces haute densité a une piste de 18 ko.) La disquette peut être montée ou non. Si elle n'est pas montée, il n'est même pas nécessaire qu'elle soit formatée, puisque le formatage sera détruit de toute façon [1].

À propos, vous pouvez également faire la copie brute sous DOS/Windows avec un utilitaire capable d'écrire sur un secteur physique sans tenir compte du système de fichiers. Un tel utilitaire est Norton Disk Editor [2].

Après l'insertion de la seconde disquette, knoppix26 démarre.


3. Évolutions futures

À l'évidence, la seconde solution, trop fastidieuse, n'est pas à conseiller à tout le monde. Les chargeurs d'amorçage en chaîne, répertoriés ci-dessus sont la meilleure solution. Notez que Microsoft® vient justement de passer à un amorçage en chaîne pour ses cédéroms XP pour gérer les cédéroms non amorçables.

Néanmoins, nous avons ici quelques développements à suivre. Avec le noyau Linux trop gros pour une disquette normale de 1,4 Mo, syslinux va être reléguée aux disquettes de secours. Il ne jouera plus aucun rôle pour les nouvelles versions de Linux.

De la même façon, lilo est également poussé vers la sortie. Avec le noyau 2.4.x, une disquette lilo pouvait encore démarrer rapidement une Knoppix installée sur une partition non amorçable : vous aviez Windows comme option d'amorçage normal depuis le disque dur, Knoppix également installé sur le disque dur mais amorcé depuis une disquette, sans problème. Ce comportement peut encore être envisageable pour le noyau 2.6.x si le matériel ne nécessite pas de pilotes spéciaux au moment de l'amorçage et si l'on peut se passer du disque virtuel (ramdisk) initial. Si vous avez besoin d'un disque virtuel initial, prévoyez sa taille à environ 4 Mo : vous devrez le personnaliser de façon à ce qu'il tienne sur une disquette, auquel cas vous avez à nouveau une approche comme celle de l'option n°2. Si ce n'est pas possible, alors le disque virtuel devra être sur le disque dur et lilo ne pourra tout simplement pas le trouver.

Exit syslinux, exit lilo, tout converge vers grub ! Et peut-être vont-ils sortir un mécanisme d'amorçage du cédérom à partir d'une disquette en bonus ?

Notes

[1]

Évitez d'avoir la disquette montée, Linux risque de ne pas apprécier la destruction d'un système de fichiers monté (N. d. T.).

[2]

rawrite le permet aussi, mais certaines versions ne fonctionnent que sous DOS) (N. d. T.).