slax sur clé usb - freeobi.yoann.free.fr/downloads/projet1a.pdf · 2007. 6. 18. · 4 slax pour...

18
2 e semestre 2006-2007 6, bd maréchal Juin F-14050 Caen cedex 4 Spécialité Informatique 1 re année Rapport de mini-projet Slax sur clé USB PAITEL Arnaud Montouchet Yohann Responsable : François Lecellier

Upload: others

Post on 30-Jan-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

  • 2e semestre 2006-2007

    6, bd maréchal Juin

    F-14050 Caen cedex 4

    Spécialité Informatique

    1re année

    Rapport de mini-projet

    Slax sur clé USB

    PAITEL Arnaud

    Montouchet Yohann

    Responsable : François Lecellier

  • 2

    Table des matières

    Introduction ........................................................................................................................... 3

    1 Pourquoi Slax ? ..................................................................................................................... 4

    2 Formatage ............................................................................................................................ 5

    3 Rendre la clé bootable sous linux.................................................................................... 6

    4 Slax ........................................................................................................................................ 7

    5 Installshield ......................................................................................................................... 9

    6 Script final ......................................................................................................................... 15

    7 Site Internet ..................................................................................................................... 16

    Conclusion .............................................................................................................................. 17

    Références bibliographiques ............................................................................................ 18

  • 3

    Introduction

    Élèves ingénieurs de l'ENSICAEN, nous devions réaliser un projet dans le cadre de

    l'informatique. Nous avons choisi de créer un Setup qui permettrait d'installer sur une clé

    USB un système d'exploitation Linux.

    En effet lors de notre arrivée, nous utilisions Windows, et il nous fallait installer Linux

    pour pouvoir travailler les TP chez nous. Nous avons donc pensé à faire ce programme

    pour faciliter la vie des futurs 1A qui nous suivent.

    Nous nous sommes donc penchés sur ce projet, qui nécessitait des aptitudes à la

    compréhension des systèmes bootables, des scripts BATCH, et surtout du programme

    InstallShield.

    Avec ce programme vous installez SLAX, la distribution que nous avons

    choisi, mais aussi tout un tas de programmes qui vous faciliteront la vie ainsi que

    des éditeurs et des compilateurs, et tout ça sur une simple clé USB!!!, ensuite vous

    n'avez qu'a booter la clé sur n'importe quel PC relativement récent.

  • 4

    1 Pourquoi Slax ?

    Au début nous avons commencé par travailler sur DSL : Damn Small Linux.

    En effet ce système était très intéressant du fait de sa très petite taille, environ 50 mo.

    Mais nous nous sommes vite rendu compte des problèmes qui s'en suivaient :

    Ancienneté des programmes livrés avec la distribution et grande difficulté d’en

    rajouter…

    Aucun lien entre Windows et Linux donc le transfert de fichiers était

    problématique

    De gros problèmes de drivers, donc pas d'internet pour certains, pas de carte

    graphique pour d'autres.

    Au bout de 2 séances à essayer de régler ces problèmes, nous avons décidé de chercher

    un autre système.

    Ensuite nous sommes tombés sur le site : http://www.pendrivelinux.com qui proposait un

    certains nombre de systèmes linux comme Ubuntu, Knoppix, PclinuxOS à installer sur clé

    USB.

    Seul problème, aussi intéressants que soient ces systèmes, leurs installations

    nécessitaient l'utilisation d'un liveCD afin de formater la clé depuis linux en tapant une

    dizaine de commandes dans un terminal.

    Nous avons vite abandonné, après quelques tests tout de même sans formater la clé sous

    linux, résultat : le système plantait au démarrage.

    Par contre sur ce même site nous avons découvert SLAX. Après l'avoir installé nous

    l'avons testé, et nous avons été agréablement surpris par sa rapidité, sa fluidité et ses

    fonctionnalités alors qu’il tenait sur une clé de seulement 256 Mo.

    Le grand avantage de SLAX, c'est qu'il fonctionne avec un système de modules, qui sont

    en fait des logiciels, ou bien des pilotes, que le système charge au démarrage.

    En effet il suffit de copier les modules souhaités dans un dossier sur la clé USB et ceux-

    ci sont automatiquement intégrés au système.

    De plus il existe des centaines de modules disponibles sur

    http://www.slax.org/modules.php ce qui est très utile, et promet une grande évolutivité

    du système.

    Après avoir effectué quelques tests de compatibilité et quelques modifications nous

    avons donc décidé de prendre cette distribution.

    http://www.pendrivelinux.com/http://www.slax.org/modules.php

  • 5

    2 Formatage

    Il est tout d'abord préférable que la clé soit formatée.

    Nous utilisons un logiciel du nom de :

    HP USB Disk Storage Format Tool

    Nous utilisons ce logiciel car le formatage windows n’est pas très fiable.

    Nous pouvons utiliser directement le logiciel ou bien créer un script BATCH contenant

    uniquement cette ligne de commande :

    HPUSBF.EXE %1 -FS:FAT32 -V:SLAX -Y

    Le "%1" est à remplacer avec la lettre du lecteur USB à formater.

    /!\ ATTENTION, l'option -Y signifie que aucune confirmation ne sera demandée à

    l’utilisateur pour effectuer le formatage ! Donc bien vérifier que la clé est dans le bon

    lecteur.

    Le formatage de la clé est très utile pour repartir d'une clé propre.

    Nous avons aussi créé un fichier autorun.inf pour rendre la clé plus accessible, car SLAX

    doit impérativement être installé à la racine de la clé ce qui représente toutes sortes de

    dossiers et de fichiers à la racine.

    Cet autorun permet lors d'un double click sur la clé USB depuis le Poste de travail d'aller

    directement dans un dossier vierge sans passer par la racine de la clé afin d'éviter le

    mélange de vos fichiers avec les fichiers systèmes.

    Voici ce que contient le fichier autorun : [autorun]

    ICON=boot\slax.ico

    label=Slax

    Open="explorer.exe USB\"

  • 6

    3 Rendre la clé bootable sous linux

    Même formatée, la clé n'est pas encore prête pour booter sous linux.

    Il faut ensuite activer un flag dans le système de fichiers de la clé.

    Pour cela on utilise un programme libre : syslinux.exe, qui prend en argument le nom du

    lecteur et qui va activer le flag recherché. Il suffit d'écrire cette ligne dans un script

    BATCH pour lancer le programme :

    syslinux.exe -ma %DISK%:

    Avec %DISK% qui représente la lettre du lecteur on se trouve la clé, et –ma qui permet

    d’activer la partition en tant que partition principale et active.

    Cette opération sera effectuée à la fin de l'installation grâce à l'exécution de notre

    script final.

    Voila la clé est maintenant prête pour l'installation de SLAX et de ses composants.

  • 7

    4 Slax

    Pour rendre la clé utilisable, il a fallut modifier le contenu de l’image de SLAX que l’on a

    récupéré sur son site.

    La première modification a été l’ajout d’un module de traduction, permettant d’activer le

    support de la langue française dans KDE, l’environnement graphique de la distribution.

    Une fois traduite, nous avons taché de rendre le démarrage de la clé plus aisé, en

    automatisant l’initialisation de la partie graphique de l’ordinateur, ainsi que le lancement

    de l’environnement.

    Auparavant, il fallait, après le démarrage de la clé, et en mode console, taper un nom

    d’utilisateur et un mot de passe, puis taper les commandes xconf suivie de startx.

    Ce n’est en effet pas très amusant pour l’utilisateur.

    Nous en avons profité pour ajouter un petit fichier permettant d’avoir le clavier

    configuré correctement en français, même si l’utilisateur ne démarre pas KDE, appelé

    dans le fichier syslinux.cfg au démarrage par la commande suivante :

    kbdmap fr.ktl

    Nous avons ensuite traduit les différents menus qui s’affichent à l’utilisateur, en

    commençant par le premier, qui n’est affiché que pendant une poignée de seconde, où

    l’utilisateur choisi dans quel mode il veut démarrer la clé.

    Les choix qu’il a alors sont les suivant :

    Attendre 5 secondes, et la distribution se lance toute seule.

    Taper « kdex » et cela a le même effet que d’attendre 5 secondes.

    Taper « kde ». Dans ce cas, la distribution se charge et lance KDE sans avoir

    initialisé de pilote graphique, ce qui a l’avantage d’être compatible avec toutes les

    cartes, mais perd par la même occasion l’accélération matérielle.

    Taper « slax » et dans ce cas se retrouve en mode console, sans accélération

    matérielle, et sans KDE.

    Enfin taper « memtest » et l’utilisateur se retrouve dans un mode spécial, qui n’a

    rien a voir avec Linux, mais permet de tester la mémoire vive de l’ordinateur et

    donc de déterminer une défaillance possible de celle-ci. Utile quand on sait que le

    système utilise énormément cette mémoire.

    Nous nous sommes ensuite penchés sur les modules qui pourraient se révéler intéressants

    pour l’utilisateur ensicaennais, à commencer par les modules dits de développement. Nous

    avons donc intégré un module qui contient en son sein les outils make, gcc (en version

    3.3.5) ou encore python. Mais l’utilisateur attend aussi un outil pour « faire du code », et

    donc nous avons aussi intégrer emacs, ce qui fût assez difficile. Il ne fonctionnait en

    effet pas directement, et affichait à la place des caractères des carrés assez

    disgracieux et illisibles. Il fallait donc rajouter un pack supplémentaire, contenant des

    polices utilisables par emacs.

  • 8

    Nous en avons donc trouvé un, après en avoir essayé quelques uns, et nous avons rajouté

    sur le bureau de KDE un raccourci pour lancer emacs avec les bonnes polices de

    caractères.

    La commande utilisée alors est la suivante : Emacs –fn fixed

    Pour continuer, nous avons intégré les traditionnels Firefox, en version 2.0.0.4, ainsi que

    OpenOffice en version 2.2, tous deux en français, accompagnés de Blender, en version

    2.43, et The Gimp, en version 2.2.12. Pour ces deux derniers, ce ne sont pas forcément les

    toutes dernières versions, mais ce sont les seules à fonctionner correctement, et à être

    localisée en français.

    Nous avons également ajouté le lecteur Java, le kit de développement n’étant pas encore

    au point, en version 1.6, ainsi que Google Earth, en version 4, et nécessitant d’avoir des

    drivers graphiques supportant l’accélération matérielle.

    Enfin, nous avons mis un lecteur de fichiers PDF, ainsi qu’un pack de codecs pour le

    lecteur de fichiers multimédia KPlayer, afin que celui-ci puisse prendre en charge tous les

    formats de vidéo.

    Il faut ajouter à cela que nous avons placé sur le bureau les icones qui sont utiles à

    l’utilisateur, ainsi qu’une permettant de sauvegarder les modifications apportées au

    système, celles-ci n’étant pas automatiquement enregistrées d’une session à l’autre pour

    éviter que dans le cas où l’on fasse une erreur, celle-ci ne rende la clé inutilisable. Il faut

    donc penser à cliquer sur l’icône pour enregistrer les modifications.

    Les drivers supportant l’accélération matérielle pour les deux principaux fabricants de

    puces graphiques NVIDIA et ATI ont également été ajoutés, et supportent normalement

    la grande majorité des puces disponibles sur le marché. Mais hélas nous n’avons pu

    vérifier le fonctionnement de ceux-ci que sur un nombre limité de périphériques, les

    ressources disponibles ne le permettant pas.

  • 9

    5 Installshield

    Le programme que nous avons utilisé pour générer l’installeur s’appelle InstallShield et est

    édité par la société Macrovision. Nous l’avons choisi pour sa puissance et sa relative

    simplicité comparée à d’autre générateur d’installeur.

    Pour générer l’installeur, nous avons suivi le protocole suivant :

    Nous avons d’abord choisi, après avoir essayé de faire l’installeur en mode dit

    « InstallScript », de faire celui-ci en mode « Script MSI ». Les différences entre les

    deux modes concernent la façon dont est géré le mode d’installation (mode complet ou

    avancé…), ainsi que le moment où intervient le choix de l’emplacement de destination. En

    effet, en mode « InstallScript », le choix de l’emplacement d’installation intervient après

    que l’on ait choisi le mode d’installation personnalisé, et n’intervient donc pas si on fait une

    installation complète. Très ennuyant pour faire un installeur de clé USB.

    Enfin, le dernier critère de sélection, qui fût presque le critère décisif, c’est que le mode

    « Script MSI » permet d’exécuter un Script à la fin de l’installation, là où le mode

    « InstallScript » ne permet que de lancer des exécutables classiques, à condition de

    créer des raccourcis sur l’ordinateur, et donc à condition de laisser des traces sur cet

    ordinateur. Nous ne voulions pas ça, mais préférions installer le programme directement

    sur la clé, autant de fois que l’on veut l’installer sur des clés, sans laisser de traces.

    Nous avons donc créé notre installeur, en créant des « fonctionnalités » pour chaque

    module, afin de permettre à l’utilisateur de sélectionner les modules dont il a besoin. Si

    l’utilisateur choisit le mode « installation complète », il n’a plus rien à faire jusqu’à la fin

    de la copie des fichiers.

    Avant de choisir le type d’installation, il est demandé à l’utilisateur l’emplacement de sa

    clé USB.

    Le script exécuté à la fin de l’installation écrasant le secteur de boot du disque sur lequel

    il est installé, on rappelle à l’utilisateur qu’il doit faire attention en choisissant

    l’emplacement de sa clé USB, les conséquences d’une erreur pouvant être très

    préjudiciables (l’ordinateur ne démarre plus………).

    Nous avons aussi bloqué la navigation des dossiers, l’utilisateur devant installer SLAX à la

    racine de sa clé USB. Il ne peut donc choisir que le lecteur, pas de sous dossier.

  • 10

    Pour faire cela, nous avons simplement édité les pages de dialogue affichées par

    l’installeur. Nous avons affecté aux blocs permettant le choix de dossiers la valeur False

    à l’attribut « enabled ». Nous avons ensuite défini le script responsable de la

    configuration de la clé, afin que l’installeur exécute ce script dès que la copie est

    terminée, et avant de quitter.

    Après cela, nous avons édité quelques unes des pages de dialogues, afin de personnaliser

    un peu l’installation, en mettant également des avertissements pour l’utilisateur, aux

    moments où cela s’avérait nécessaire.

    Enfin, dernière étape, nous avons tâché de faire en sorte que l’installeur ne laisse pas de

    trace sur l’ordinateur à partir duquel il est exécuté.

    Pour ce faire, nous avons dû retirer certaines actions de la séquence d’installation. Ces

    actions sont les suivantes : RegisterProduct, RegisterUser, PublishProduct, et

    PublishFeatures. Retirer ces actions a pour effet d’éviter que le programme d’installation

    n’enregistre dans la base de registre de l’ordinateur hôte les informations concernant le

    programme installé. On évite donc par la même occasion de voir apparaître un nouveau

    programme dans Ajout/Suppression de programme.

    Voici, après installation, ce qu’obtient l’utilisateur quand il démarre sur sa clé :

  • 11

    Pour illustrer le fonctionnement de SLAX, voici quelques possibilités offertes par cette

    distribution :

    L’ENSICAEN… (Google Earth)

  • 12

    Hello SLAX !!! (emacs & gcc)

    Retouche photo… (GIMP)

  • 13

    Modélisation 3D (Blender)

    Lecture de musique (JuK)

  • 14

    Graver un CD ou DVD (K3b)

    Même surfer sur le web ! (Firefox)

  • 15

    6 Script final

    Voici le script final qui finit l'installation :

    @echo off

    cls

    set DISK=none

    set BOOTFLAG=fichiertemp.tmp

    echo Ceci est un fichier temporaire, vous devriez le supprimer... >\%BOOTFLAG%

    if not exist \%BOOTFLAG% goto readOnly

    for %%d in ( D E F G H I J K L M N O P Q R S T U V W X Y Z ) do if exist %%d:\%BOOTFLAG% set DISK=%%d

    rem cls

    del \%BOOTFLAG%

    if %DISK% == none goto quit

    if %OS% == Windows_NT goto setupNT

    echo vous devriez vraiment songer a changer de pc, Windows 9x est ancestral.

    goto exit

    :setupNT

    tools\WIN\syslinux.exe -ma %DISK%:

    goto end

    :readOnly

    echo Le media sur lequel vous avez installe SLAX est en mode de lecture exclusive...

    echo Donc les chances que votre cle demarre sous linux sont nulle...

    goto exit

    :end

    echo Votre cle, situee en %DISK%, est bien installee, appuyez sur une touche pour quitter.

    goto exit

    :exit

    pause > nul

    :quit

    Il fonctionne de la façon suivante :

    Le script crée un fichier temporaire : fichiertemp.tmp

    Il va ensuite regarder le chemin du fichier et tester sur quel lecteur il se trouve, puis il

    va lancer la commande permettant d’activer le flag vu précédemment, en ayant vérifier

    qu’il a les autorisation pour écrire sur la clé.

  • 16

    7 Site internet

    Pour le site web, nous nous sommes servis des bases apprises en TP de Html et nous avons

    utilisé les fonctions déjà connues pour afficher ou effacer un élément de la page.

    La seule difficulté a été de pouvoir allonger le fond d’écran suivant la taille de la page, ce

    qui est possible en le coupant en 3 parties et en multipliant la partie du milieu, on peu le

    voir dans le script css :

    #head

    {

    background-image: url(haut.jpg);

    background-repeat: no-repeat;

    height: 105px;

    width: 945px;

    }

    #middle

    {

    margin-left: auto;

    margin-right: auto;

    text-align: left;

    background-image: url(milieu.jpg);

    width: 945px;

    background-repeat: repeat-y;

    margin-top: 30px;

    }

    #end

    {

    clear: both;

    background-image: url(bas.jpg);

    height: 130px;

    width: 945px;

    background-repeat: no-repeat;

    }

    Il faut ensuite ajuster les « » dans un ordre précis pour que cela marche.

    Nous n’avons pas copié le contenu de notre rapport sur le site, nous avons préféré mettre

    un guide d’installation pour notre programme.

    Le site est disponible à l’adresse suivante :

    http://obi.yoann.free.fr

    http://obi.yoann.free.fr/

  • 17

    Conclusion

    Au début nous avons eu du mal à faire un choix parmi les projets proposés car nous

    voulions faire quelque chose de concret, nous voulions découvrir un domaine que nous ne

    connaissions pas et qui nous intéressait.

    C'est pourquoi le lancement du projet fût un peu tardif, mais au final quand nous avons

    trouvé le thème, nous nous sommes beaucoup impliqué afin de pouvoir proposer à la fin, un

    programme qui marche, utile et surtout utilisable par tout le monde.

    Ce projet nous a donc permis de mettre au point un programme qui installe tout seul un

    système Linux bootable sur clé USB.

    Nous nous sommes beaucoup investis, car il profitera à beaucoup de personnes découvrant

    linux et ne sachant pas l'installer sur clé USB.

    De plus SLAX est tellement complet, rapide et prend tellement peu de place pour ce que

    c'est, qu'il peu aisément tenir sur une clé USB de 256mo, donc inutile d'acheter une clé

    de dernière génération pour pouvoir profiter de ce programme.

  • 18

    Références bibliographiques [1] http://www.damnsmalllinux.org

    [2] http://www.pendrivelinux.com

    [3] http://www.slax.org/?lang=fr

    http://www.damnsmalllinux.org/http://www.pendrivelinux.com/http://www.slax.org/?lang=fr