slax sur clé usb - freeobi.yoann.free.fr/downloads/projet1a.pdf · 2007. 6. 18. · 4 slax pour...
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