Travailler avec des micro-distributions, ou comment mettre Linux dans sa poche

Gazette Linux n°077 — Avril 2002

Larry "Dirt Road" Kollar

Sébastien Marbrier

Adaptation française 

Prénom Nom du relecteur

Relecture de la version française 

Article paru dans le n°077 de la Gazette Linux d'avril 2002.

Cet article est publié selon les termes de la 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

Introduction
Chercher la Disquette-clé
Succès croissant
Différences
Travailler avec BasicLinux
Édition de l'Image
Migrer sur le disque dur
Pris dans la toile
Le Repos
Trouver sa niche

De nos jours, les distributions Linux tiennent sur six CD, c'est une bonne chose de se souvenir qu'un système Linux parfaitement fonctionnel tient sur une cartouche ZIP —— voire sur quelques disquettes.

Afin de montrer l'utilité d'un Linux minuscule, j'ai préparé un système tenant sur deux disquettes sur un 486 pour écrire cet article.

Introduction

Tout a commencé lorsque j'ai reçu un couple de PC et un moniteur. L'ordinateur le plus puissant, un Aptiva, avait un processeur P133, un disque dur de 2Go, un lecteur de CD-ROM mais pas de mémoire. Le second était HP Vectra 486/33N avec un disque dur de 173Mo, Windows 3.1, et 8 Mo de mémoire vive (pas de CD). Les deux étaient équipés de souris mais sans clavier. Après un voyage à Wal-Mart et y avoir dépensé 10 $US, j'avais un clavier compatible PS/2. Les deux ordinateurs utilisant des barrettes SIMM 72 broches, j'ai tout d'abord transféré les barrettes dans l'Aptiva pour m'assurer s'il n'y a pas quelque chose d'utile sur ce gros disque dur.

J'ai appris quelque chose d'intéressant, j'ai appris que Windows 98 s'étouffe affreusement en cas de mémoire insuffisante.

N'ayant pas réussi à mettre la main sur de la mémoire supplémentaire, alors j'ai alors replacé la mémoire dans le Vectra et déterré les disquettes de la Red-Hat 4.0 … Oups, elle est sur CD mais ce Vectra n'a pas de lecteur de CD (et aucun port disponible pour en installer un). Il est clair que je devais opter pour une autre stratégie.

Chercher la Disquette-clé

Linux Daily News est l'une de mes lectures quotidiennes sur le réseau. Si l'information dont vous avez besoin ne se trouve pas sur LWN, il y a un lien vers elle. Sur la page Distributions, j'ai parcouru la liste de celles reposant sur des disquettes.

Ma première idée fut d'utiliser la distribution favorite de secours tenant sur une unique disquette tomsrtbt. J'ai un portable sous Windows au travail, absolument accessoire par rapport à mon Mac G3, mais à l'occasion il rend service. Malheureusement, tomsrtbt fait appel à d'étranges arcanes pour faire tenir 1.77Mo sur une disquette de 1.44Mo et le service informatique a récemment mis à jour le portable avec Windows 2000. Ce dernier n'autorise pas ce genre de manipulation et je ne peux pas avoir accès facilement à un autre système Windows.

Retour à la liste. En explorant d'autres ressources, j'ai découvert que BasicLinux n'est pas à proprement parler une distribution basée sur CD (contrairement à ce qu'affirme la page de la distribution sur LWN). Elle tient sur un unique fichier zip de 2Mo; mais les fichiers décompressés tiennent facilement sur deux disquettes et ne nécessite pas d'écrire une image (elle utilise LOADLIN.exe pour démarrer du DOS). Dérivée de Slackware 3.5 elle présente un noyau 2.0.34 et libc5. Elle alloue également 4Mo pour son disque virtuel, permettant au Vectra de goûter pour la première fois au logiciel libre.

Succès croissant

Malgré des différences de version logiciel, de format de disque, et d'intention, les distributions sur disquettes ont une procédure de démarrage relativement similaire :

  1. Initialisation, soit au démarrage (LILO) soit après le démarrage du DOS (LOADLIN).

  2. Le chargeur décompresse le noyau et le lance.

  3. Le noyau crée un disque virtuel pour son espace utilisateur.

  4. Le chargeur décompresse l'espace utilisateur et le charge dans le disque virtuel.

  5. Le démarrage se passe normalement, le disque virtuel monté à la racine.

Une image disque contenant l'espace utilisateur (c-à-d le contenu du système de fichiers) tient habituellement juste sur une disquette 1.44Mo et se déploie sur environ 3Mo. Sur un disque virtuel, même un 486/33 semble assez tonique.

Différences

Caler un système Linux minimal sur deux disquettes fait penser à la légendaire observation d'Heinlein : il n'y a pas de repas gratuit. Bien qu'il soit possible de proposer des outils de base et même X11, vous n'aurez pas KDE, Gnome ou Mozilla. Les fanas d'Emacs en seront pour leurs frais (du moins pour l'essentiel).

Même les commandes de bases et les utilitaires que vous vous attendez à trouver dans tout système d'exploitation dont le nom se termine par 'X' ne sont que des versions tronquées. En réalité, la plupart ne sont que des liens symboliques vers un programme nommé BusyBox. Lineo a développé cet ensemble pour les systèmes Linux embarqués, mais il a trouvé également sa place dans diverses micro-distributions ou de secours. Il regroupe 54 commandes essentielles dans un unique binaire d'à peine plus de 100K. Pour créer un lien (avec ln -s) nommé cp et quand même entrez cette commande, BusyBox se comporte comme la commande cp. Quand vous l'utilisez à la place de mv, il déplace ou renomme les fichiers. L'option --help donne une description rapide de la commande, éliminant du coup de le besoin des pages de manuel. Je peux affirmer que sans BusyBox, les distributions sur disquettes obligeraient à davantage de compromis.

Travailler avec BasicLinux

BasicLinux est un système réseau compact mais satisfaisant. En plus des fonctions essentielles (via BusyBox), il fournit une connectivité réseau à la fois par Ethernet et par numérotation, et peut mettre en place un pare-feu grâce à ipfwadm. Les utilitaires tels que fetchmail et links (pas lynx, il m'a jeté) fournissent un accès au courrier électronique et au web. Afin de donner tout le confort possible à l'utilisateur Linux expérimenté, le shell bash familier. L'initab par défaut offre trois accès console, ce qui est plus que suffisant pour mes besoins (j'utilise parfois deux consoles à la fois, une pour moi et une pour l'administrateur).

Contrairement à d'autres distributions, BasicLinux propose deux éditeurs de texte, le minuscule e3 et le populaire pico. Profitant de l'espace restant dans l'image de démarrage et de l'archive Slackware d'origine, je les ai remplacés par joe. Joe est un éditeur légèrement plus grand que pico mais il peut émuler pico, WordStar, et Emacs (mais sans les gourmandes fonctionnalités avancées). On obtient une image compressée plus grande mais tenant toujours sur une disquette.

Édition de l'Image

Le fichier readme.txt accompagnant BasicLinux est court mais fournit assez d'information à quiconque habitué à la console pour personnaliser le système ou pour créer une image de disquette amorçable.

En écrivant cette section de l'article, j'ai mis les fichiers de BasicLinux sur le disque C: d'un 486 qui fonctionnerait sous MS-DOS. La personnalisation de l'image est aisée :

  1. Décompresser l'image avec gunzip.

  2. Monter l'image sur un périphérique à rebouclage.

  3. Effectuer les changements voulus

  4. Démonter l'image.

  5. Compresser l'image avec gzip.

J'ai écris une page séparée décrivant le périphérique à rebouclage.

Migrer sur le disque dur

Ce n'est pas compliqué, à condition de supprimer tout ce qu'il s'y trouve. Le Vectra avait Windows 3.1 et tout un tas d'applications, sans réelle utilité pour moi.

Avant d'aller plus loin, j'ai effectué quelques recherches et sauvegardé le répertoire du DOS sur une disquette (avec un compacteur zip qui était déjà sur l'ordinateur). Avec 160Mo de disque dur et 8Mo de RAM, j'ai supposé avoir suffisamment de place pour construire un système capable sans être tenté de le surcharger.

Une recherche Google sur les programmes de partitionnement a fait émerger le programme gratuit/libre FIPS (First non-destructive Interactive Partition Splitting program). Selon les instructions, j'ai installé FIPS sur une disquette afin de réduire la partition C:. J'ai voulu la réduire à 10 Mo, mais FIPS (pour une raison obscure) ne descend pas en dessous de 16 Mo. Après avoir complètement effacé Windows 3.1 et défragmenté le disque dur, il me restait moins de 5Mo sur C: je ne suis pas sûr de ce qu'il s'est passé. Eh bien.

Maintenant, je peux redémarrer Linux et utiliser l'utilitaire fdisk fourni avec BasicLinux pour créer une partition d'échange de 32Mo et dédier le reste du lecteur à la racine. Exécuter mkswap, mke2fs, et e2fsck pour préparer les nouvelles partitions. Pour terminer, j'ai décompressé l'archive de BasicLinux instl2hd.zip et suivi les instructions fournies pour charger mon image de disque virtuel (et quelques extras) sur le disque dur. À partir d'ici il a suffi d'éditer /etc/fstab pour pointer sur la nouvelles partitions racine et d'échange. Encore un redémarrage et je démarrais depuis le disque dur. La vie est belle. J'ai copié mon mon article sur la partition Linux et continuais d'écrire.

Pris dans la toile

Avec un système basé sur la console utilisant moins de 5Mo de mémoire vive et laissant 3 Mo de libre, j'ai revu mes objectifs un peu à la hausse. En bref, j'ai voulu ajouter :

  • groff (le formateur troff GNU)

  • vim (l'éditeur de texte de première classe)

  • rogue (tuer des monstres, vaincre le blocage)

  • X11 (afficher des brouillons de documents)

  • gcc (au moins temporairement pour compiler groff et rogue)

Par chance, le Vectra était équipé d'une carte réseau SMB-Ultra. Trouver le module adéquat ne fut pas long, et la documentation BasicLinux m'a indiqué de charger en premier le module 8390. Comme mon Mac G3 fait déjà tourner un pare-feu NAT (ipchains) sous Linux pour partager la ligne téléphonique, il a suffit de le transporter dans la pièce du réseau local et d'y brancher un câble. Après quelques tripatouillages et avoir lu plusieurs fois les pages man de route, j'ai finalement deviné les incantations pour connecter Skeeter (c'est ainsi que j'ai nommé le Vectra) au réseau local et au reste du monde au travers de la passerelle du G3.

Le téléchargement des paquets de X11 m'a rappelé que ma ligne téléphonique n'est pas la plus lente. Ce fut l'une des rares fois où je fus content de ne pas avoir le haut débit; je me serai senti frustré. Mais finalement, j'ai tout récupéré sur le disque dur, et préparé la configuration de X11. En recherchant de l'aide ici et là sur le réseau, j'ai appris que l'utilitaire SuperProbe m'aurait indiqué quelle était la carte vidéo interne du Vectra, et que mon moniteur ne supporte que le 640x480. Le deuxième soir, l'interface graphique fonctionnait et j'ai basculé sur icewm, le gestionnaire de fenêtre qui m'a été recommandé. Le pager d'Icewm et sa petite taille rendent le petit écran supportable, à la limite agréable. Pour être honnête, une fenêtre rxvt de 35 lignes est bien meilleure qu'une console de 25 ligne, je suis donc globalement satisfait.

Le Repos

Maintenant que le réseau et l'interface graphique sont fonctionnels, il reste à finaliser. A cette étape, le système pèse un peu moins de 21 Mo sur le disque dur (sur 113 de disponibles). L'ajout des paquets pour la compilation l'augmentera jusqu'à 35Mo.

Avec l'ajout des paquets nécessaires à compilation de groff et gawk, plus les applications compilées, nous avons dépassé les 60Mo. Après l'installation des programme et la suppressions des répertoires de compilation, j'étais satisfait de 57Mo pour l'utilisation.

Dans le passé, je me suis confronté au partage d'une imprimante sur un réseau local au travers de lpr, peu de fut nécessaire avant d'être en mesure d'avoir quelques documents groff de test et de les imprimer sur l'imprimante laser USB du G3. Skeeter effectue toutes les tâches que j'avais prévues. J'aurais voulu le doter d'un plus grand écran (au moins du 800*600) et peut-être compiler Chimera 1.x pour avoir un navigateur web graphique. Mais ce n'était absolument pas indispensable.

Trouver sa niche

En plus d'être en mesure d'écrire des articles tels que celui-ci, Skeeter peut se connecter aux serveurs de MUD pour le divertissement (imaginez trois personnes partageant une même liaison téléphonique —— deux utilisant telnet et le troisième ne lisant que des courriels dans un navigateur, personne ne se plaindra de la lenteur de la connexion). Rogue a captivé mon adolescent de fils et son ami, qui s'émerveille qu'un jeu sans graphismes puisse être tellement prenant !

Skeeter a également rendu service en tant que pseudo lecteur de disquette distant. L'iMac (fonctionnant à présent sous MacOS X) n'a pas de lecteur de disquette, et le lecteur du G3 est peu douteux. Quand on a besoin de lire ou d'écriture sur une disquette, on appelle Skeeter. Dans le futur, Skeeter pourra devenir un serveur d'impression.

Pour conclure, je considère cette expérience comme étant réussie. Un investissement de 10$ plus un peu de ma propre sueur m'ont permis d'avoir un autre ordinateur utile et quelques nouvelles compétences.

Larry Kollar

Larry est "Rédacteur Technique" mais rêve secrètement de devenir un jour un Foutu Administrateur Infernal. Au travail, il trouve le temps d'écrire des scripts, de mettre en place des serveurs Linux départementaux (sur des Macs bien sûr), et de repousser les hordes du service informatique qui veulent son G3. Chez lui, au bas des montagne de Georgie, il fait de son mieux pour que sa femme, ses deux enfants et ses quatre ordinateurs soient heureux et en bonne santé.

Adaptation française de la Gazette Linux

L'adaptation française de ce document a été réalisée dans le cadre du Projet de traduction de la Gazette Linux.

Vous pourrez lire d'autres articles traduits et en apprendre plus sur ce projet en visitant notre site : http://www.traduc.org/Gazette_Linux.

Si vous souhaitez apporter votre contribution, n'hésitez pas à nous rejoindre, nous serons heureux de vous accueillir.