Petit guide d'économie de l'espace disque

Version française du Saving Space mini-HOWTO

Adaptation française : Simon Depiets

Relecture de la version française : Bernard Adrian, Éric Madesclair

Préparation de la publication de la v.f. : Jean-Philippe Guérard

Version : 1.1.fr.1.0

23 janvier 2005

Historique des versions
Version 1.1.fr.1.02005-01-23SD, ÉM, BA, JPG
Première traduction française.
Version 1.11999-04-07GG

Résumé

Ce petit guide explique comment installer Linux pour qu'il occupe le moins d'espace disque possible. Ce qui sera particulièrement utile pour les possesseurs d'ordinateurs portables.


Table des matières

1. Commentaires et corrections
2. Nouvelles versions de ce document
3. Introduction
4. Logiciels nécessaires
5. La procédure
5.1. Supprimer les sources du noyau
5.2. Trier les applications
5.3. Alléger les binaires
5.4. Compression avec upx
5.5. Compresser de tous les côtés
6. Un exemple
7. Droits d'utilisation et informations légales

1.  Commentaires et corrections

Merci de faire parvenir en anglais à l'auteur vos questions et commentaires relatifs à la version originale de ce document à l'adresse .

N'hésitez pas à faire parvenir tout commentaire relatif à la version française de ce document à en précisant son titre, sa date et sa version.

2.  Nouvelles versions de ce document

Vous trouverez la plus récente version française de ce document à l'adresse : http://www.traduc.org/docs/howto/lecture/Saving-Space.html.

La plus récente version originale de ce document est disponible à l'adresse : http://www.tldp.org/HOWTO/Saving-Space.

3.  Introduction

J'ai un portable pré-installé avec Windows 95 sur lequel j'ai installé Linux. Windows a été réinstallé sur une partition de 500 Mo, libérant de l'espace pour créer une partition Linux de 240 Mo. Même si cela paraît peu, j'ai trouvé moyen d'installer un système Linux complet, basé sur la distribution Red Hat 4.1 et, avec un peu de magie, j'ai économisé le maximum d'espace.

Si vous avez besoin d'espace, les indications que vous trouverez dans les sections suivantes économiseront un espace considérable sur le disque dur. Le seul avertissement que je peux vous donner est : ne me blâmez pas si quelque chose ne fonctionne pas ! Nous utiliserons certains programmes qui ont fonctionné pour moi, mais cela peut être dangereux. Vous êtes prévenu.

4.  Logiciels nécessaires

Vous aurez besoin de :

  • un système Linux fonctionnant (n'importe quelle version devrait convenir) ;

  • l'utilitaire de compression gzip, ou éventuellement bzip2 que vous pouvez trouver à l'adresse suivante ftp://sunsite.unc.edu:/pub/Linux/utils/compress ; cet outil est plus performant que gzip, mais est aussi un peu plus lent et consomme beaucoup de mémoire ;

  • D'upx un utilitaire de compression pour exécutables, dont la page web se trouve à l'url http://upx.sourceforge.net/ ;

  • le paquet zlibc, disponible à l'url ftp://sunsite.unc.edu:/pub/Linux/libs/compression. Il est appelé zlibc-X.X.tar.gz, où « X.X » est le numéro de la dernière version.

Il existe d'autres utilitaires de compression pour exécutables. L'un deux est gzexe, tandis que tcx était probablement le meilleur avant le développement d'upx ; il y a aussi tzx, qui est, en théorie, meilleur que tcx. Cependant, j'ai tout détruit lorsque je l'ai essayé sur un ordinateur de rechange, bien que je ne soit pas sûr d'avoir fait une erreur quelque part. Vous devriez utiliser upx : il est sûr, efficace et très pratique.

Il y a des correctifs du noyau qui proposent une compression du système de fichiers à la Stacker, mais, au moment ou j'écris ces lignes, aucun n'a une réputation de stabilité ou de sécurité.

5.  La procédure

5.1.  Supprimer les sources du noyau

Les sources du noyau prennent plus de 20 Mo, et vous pouvez vouloir les supprimer. Si c'est le cas, je vous suggère de compiler un nouveau noyau qui convient à votre machine une fois pour toutes, et de se débarrasser des sources. Faites attention, néanmoins.

Il n'est pas recommandé de supprimer les sources du noyau à moins que vous ne soyez sûr que votre machine soit correctement configurée. De plus vous aurez besoin des fichiers entêtes du noyau pour la compilation de programme en C. Réfléchissez-y à deux fois !

Si vous décidez d'enlever les sources, ne supprimez pas l'arborescence include/linux à moins que vous ne soyez sûr de ne plus jamais compiler d'applications sur votre ordinateur.

5.2.  Trier les applications

Maintenant décidez de quelles applications vous avez vraiment besoin. Certaines peuvent être redondantes : par exemple, êtes vous sûr que vous ne pouvez pas vivre sans Emacs ? Vous pouvez utiliser Vim à la place.

C'est à vous de décider ce que vous voulez garder. Voici quelques idées générales :

  • le paquet gcc est un assez gros paquet. Il est nécessaire pour recompiler le noyau et toutes les applications pour lesquelles il n'y a pas de binaires Linux pré-compilés. Il est aussi nécessaire, bien sûr, si vous écrivez vos propres programmes C ou Fortran (avec f2c ou g77) ; considérez vos besoins avant de le supprimer. D'autres compilateurs comme lcc sont efficaces, mais pas du niveau de gcc. Je vous suggère de le garder ;

  • X11 est énorme, mais il est agréable de l'avoir. Si vous décidez que vous ne pouvez pas vous en passez, essayez au moins de ne garder que ce qui est nécessaire : uniquement le serveur X correspondant à votre carte, un simple gestionnaire de fenêtres, un xterm, pas de polices 100 dpi, et cætera ;

  • TeX et les paquets l'accompagnant sont aussi très gros. Utilisez TeX à la place de LaTeX, vous permettra d'économiser beaucoup d'espace ; ne pas utiliser les visionneuses X11 telles xdvi et ghostview est possible si vous utilisez dvitty, dvivga ou d'autres. Éliminer le besoin pour X11 dviware peut même rendre X11 redondant ;

  • les jeux ne sont jamais « nécessaires »

5.3.  Alléger les binaires

Réduisons la taille des binaires. Déplacez-vous vers /usr/bin et saisissez la commande :

machine:/usr/bin# strip *

ce qui supprimera les symboles contenus dans les binaires. Répétez cette étape dans /usr/X11R6/bin/ et les autres dossiers contenant des exécutables (n'oubliez pas de localiser les binaires TeX et gcc), mais ne lancez pas cette commande dans /sbin, /bin, ou /usr/sbin/ votre installation est en jeu !

5.4.  Compression avec upx

Tout d'abord, installez upx et lisez sa documentation. Puis allez dans /usr/bin et lancez la commande upx * ; cela compressera tous les exécutables, même les suid (tcx ne le ferait pas). Répétez cette étape dans tous les autres dossiers comme ci-dessus.

N'oubliez pas de compresser les exécutables à chaque fois que vous installez un nouveau paquet !

5.5.  Compresser de tous les côtés

Il y a beaucoup d'autres fichiers pouvant être compressés une fois pour toutes. Commençons par /usr/doc/ ; allez dans ce dossier et saisissez la commande :

machine:/usr/doc# find . -type f -exec gzip -9 {} \; 2> /dev/null

N'oubliez pas de compresser la documentation à chaque fois que vous installez un nouveau paquet !

Répétez cette étape dans le dossier contenant la documentation pour TeX (sur mon système, /usr/lib/texmf/texmf/doc/). Si vous êtes vraiment sûr de vous, vous pouvez aussi supprimer ces dossiers.

Maintenant, installez zlibc et compilez le. Si votre système est comme le mien, le processus de compilation s'annulera à cause d'une libc manquante. Ce n'est pas grave, vous trouverez un fichier uncompress.o et c'est celui dont nous avons besoin. Déplacez-le vers /usr/local/lib/ et ajoutez cette ligne dans le fichier /etc/profile :

export LD_ELF_PRELOAD=/usr/local/lib/uncompress.o

Maintenant, vous pouvez compresser avec gzip non seulement la documentation, mais aussi les fichiers de données : les applications qui les utilisent pourront néanmoins les utiliser. En théorie, cette astuce devrait fonctionner avec la plupart des applications, mais en pratique votre degré de succès peut varier. Le mien ne fut pas impressionnant.

6.  Un exemple

Voici ce que j'ai obtenu en appliquant la procédure ci-dessus sur un de mes ordinateurs. Avant le traitement, df a compté que j'utilisais 398 798 blocs de 1024 :

  • Je n'ai pas supprimé les sources du noyau ni les entêtes ;

  • J'ai désinstallé beaucoup d'applications et tous les jeux, mais j'ai laissé, X11, X11 devel, C et Fortran devel, Tcl/Tk, les outils réseau, et quelques autres applications standards. df a compté 244 668 blocs utilisés ;

  • J'ai lancé upx sur /usr/bin, /usr/X11R6/bin, /usr/lib/texmf/bin/i586-linux et /usr/lib/gcc-lib/i386-linux/2.7.2.1. 226 270 blocs utilisés ;

  • J'ai compressé la documentation contenue dans /usr/doc et /usr/lib/texmf/texmf/doc: 198 745 blocs utilisés.

Pour résumer, j'ai commencé avec 398 798 blocs et terminé avec 198 745. Pensez à tout ce que vous pouvez mettre dans ces 200 000 blocs économisés ! J'en aurait même sauvé plus si j'avais utilisé bzip2 à la place de gzip.

En moyenne, si vous faites attention depuis le début et que vous n'installez que les applications nécessaires, compresser les exécutables et la documentation vous économiserez environ 20 Mo. Sur un portable, cela peut être énorme.

7.  Droits d'utilisation et informations légales

Copyright © 2001 Guido Gonzato pour la version originale.

Copyright © 2004-2005 Simon Depiets, Bernard Adrian, Éric Madesclair et Jean-Philippe Guérard pour la version française.

Sauf mention contraire, les guides pratiques Linux sont la propriété de leurs auteurs respectifs. Les guides pratiques Linux peuvent être reproduits en tout ou partie par tout moyen physique ou électronique, tant que les mentions des droits d'auteur et des droits d'utilisation sont conservées dans toutes les copies. La redistribution commerciale est permise et encouragée, mais l'auteur aimerait en être averti.

Unless otherwise stated, Linux HOWTO documents are copyrighted by their respective authors. Linux HOWTO documents may be reproduced and distributed in whole or in part, in any medium physical or electronic, as long as this copyright notice is retained on all copies. Commercial redistribution is allowed and encouraged; however, the author would like to be notified of any such distributions.

Toute traduction, travaux dérivés ou compilation incorporant un guide pratique Linux est aussi couverte par les mêmes droits d'auteur et conditions de distribution. De plus, vous n'êtes pas autorisé à réaliser un travail dérivé de ce guide pratique et à imposer des conditions supplémentaires à sa distribution. Des exceptions à ces règles peuvent être accordées sous certaines conditions ; veuillez contacter le coordinateur des guides pratiques Linux à l'adresse donnée ci-dessous.

All translations, derivative works, or aggregate works incorporating any Linux HOWTO documents must be covered under this copyright notice. That is, you may not produce a derivative work from a HOWTO and impose additional restrictions on its distribution. Exceptions to these rules may be granted under certain conditions; please contact the Linux HOWTO coordinator at the address given below.

En résumé, nous souhaitons promouvoir la diffusion de ces informations par tous les moyens possible. Toutefois, nous tenons à conserver nos droits d'auteur sur ces guides pratiques et nous souhaiterions être informés de tout projet de redistribution.

In short, we wish to promote dissemination of this information through as many channels as possible. However, we do wish to retain copyright on the HOWTO documents, and would like to be notified of any plans to redistribute the HOWTOs.

Si vous avez des questions, contactez (en anglais)

If you have any questions, please contact

Ce document est fourni « comme il est ». J'ai fait un gros effort pour l'écrire aussi précisément que j'ai pu, mais vous utilisez les informations qui s'y trouvent à vos risque et périls. En aucun cas je ne pourrai être tenu pour responsable des dommages résultant de l'utilisation de ce travail.

This document is provided ``as is''. I put great effort into writing it as accurately as I could, but you use the information contained in it at your own risk. In no event shall I be liable for any damages resulting from the use of this work.

Les réactions sont les bienvenues. Pour toute requête, suggestion, et cætera, sentez-vous libre de me contacter.

Feedback is welcome. For any requests, suggestions, flames, etc., feel free to contact me.