site web - téléchargement de la dernière version
Tiny Core Linux (TCL) est une très bonne distribution GNU/Linux. Mon serveur web apache tourne dessus et utilise un total de 43 Mo de mémoire. Le tout démarre depuis une clé usb de 32Mo et se charge dans la ram de la machine, à travers seulement 7 processus .
====Préparation de la clé USB=====
J'ai utilisé une clé USB de 32 Mo qui trainait sur mon bureau sur laquelle j'ai simplement créé une unique partition formatée en FAT16 ( Le FAT32 nécessite un nombre de secteurs que ma clé n'a pas…)
====Rendre la clé bootable avec Syslinux====
Dans un premier temps, il faut installer l'utilitaire syslinux :
sudo apt-get install syslinux
sudo syslinux /dev/sdb1
Pour le connaitre :
df -h
puis chercher la ligne de votre clé usb en fonction de sa taille/système de fichier
=====Installation de TCL=====
Il faut ensuite télécharger la dernière version du fichier .iso de TCL, et le monter comme un cd-rom (loopback).
# creation du repertoire de montage du fichier iso
sudo mkdir /mnt/tcl
# montage de l'image iso
mount -t iso9660 tinycore-current.iso /mnt/tcl -o loop
tinycore-current.iso correspond ici au nom du fichier .iso téléchargé.
Reste à monter la clé usb et à copier le répertoire /boot de l'iso :
# creation du repertoire de montage de la cle
sudo mkdir /mnt/usb
# montage de la cle usb
sudo mount -t vfat -F 32 /dev/sdb1 /mnt/usb
# copie du dossier boot de l'iso vers cle usb
cp -r /mnt/tcl/boot /mnt/usb/
Il faut ensuite déplacer quelques fichiers syslinux dans le répertoire racine de la clé usb et faire un peu de nettoyage :
# on se rend dans le bon dossier
cd /mnt/usb/boot/isolinux
# on deplace les fichiers
mv boot.msg f2 f3 isolinux.cfg ../../
# on retourne a la racine de la cle
cd /mnt/usb
# on renomme le fichier de cfg
mv isolinux.cfg syslinux.cfg
# on supprimer le dossier syslinux et son contenu
rm -r boot/isolinux
Enfin, on va modifier les options de démarrage de l'image linux dans le fichier /mnt/usb/syslinux.cfg en l'ouvrant dans un éditeur de texte :
# si on utilise nano
sudo nano /mnt/usb/syslinux.cfg
Chercher la ligne contenant “append initrd=/boot/tinycore.gz” puis la modifier en ajoutant les options suivantes :
append initrd=/boot/tinycore.gz quiet waitusb=5 noswap tz=GMT text
On redémarre sur la clé usb, en entrant dans le prompt qui s'affiche
tinycore tce=sda1
Cette dernière opération n'est à effectuer qu'une fois, pour régler la persistance des fichiers ( on indique en fait au système ou enregistrer les changements à chaque extinction de la machine )
Les démarrage suivants se feront automatiquement sans avoir à entrer d'option particulière.
=====Installation de nano=====
Par défaut, vi est installé comme éditeur de texte. Si on n'est pas trop à l'aise avec ce dernier, on peut installer nano qui est plus accessible :
tce-load -wi nano.tcz
=====Installation et configuration d'Apache=====
Pour installer Apache, on peut passer par la ligne de commande ou par l'interface graphique.
====Méthode CLI :====
tce-load -wi apache2.tcz
====Méthode GUI :=====
Il faut lancer l'environnement graphique en entrant “startx” puis en utilisant l'outil "AppBrowser". Cherchez apache2 et cliquez sur “OnBoot”.
Un dossier 'htdocs' devrait apparaître dans /home/tc.
====Vérification du fonctionnement d'Apache====
Démarrez le serveur apache (/usr/local/bin/httpd):
apachectl -k start
et sur une autre machine, pointez un navigateur web sur l'adresse ip de votre serveur TCL. Vous devriez avoir droit à un belle page blanche avec un simple message “It Works !”.
====Démarrage automatique d'apache====
Pour qu'apache se lance automatiquement au démarrage, il faut ajouter une ligne au fichier “/opt/bootlocal.sh” :
/usr/local/bin/apachectl -k start
Tous les réglages d'apache se feront directement dans le fichier de configuration “/usr/local/conf/httpd.conf” .
usr/local/conf/httpd.conf
Ce fichier contient en fait une liste des dossiers/fichiers à sauvegarder à chaque extinction de la machine.
Notez que le '/' au début de '/usr/local/conf/httpd.conf' est volontairement supprimé.
=====Installation de Dropbear pour un accès distant SSH=====
On va installer dans un premier temps le serveur Dropbear :
tce-load -wi dropbear.tcz
On ajoute la ligne suivante à “/opt/bootlocal.sh” pour le lancement automatique :
/etc/init.d/dropbear start
on ajoute la ligne suivante à “/opt/.filetool.lst” pour la persistance :
etc/init.d/dropbear
====Configuration de dropbear====
On change la ligne suivante dans le fichier “/etc/init.d/dropbear file” pour qu'elle ressemble à ça:
OPTIONS="-w -g -p 1066"
où '-p 1066' définit le port d'écoute du serveur SSH. Il est préférable de ne pas utiliser le port par défaut ( 22 ), histoire d'échapper au scripts kiddies et autres bots qui parcourent le réseau.
=====Enregistrement des changements=====
Jusque-là, toutes ces opérations sont en ram. Nous devons indiquer au système d'écrire ces changements sur la clé usb, pour qu'ils survivent à un redémarrage.
Encore une fois, deux possibilités :
====Méthode CLI====
Spécifiez le périphérique de sauvegarde “sda/” en éditant le fichier “/opt/.backup_device file” puis entrez la commande :
/usr/bin/filetool.sh backup
====Méthode GUI====
Lancez l'environnement graphique avec la commande “startx”, puis utilisez l'outils “Backup” du “Panel” de la barre d'outils. Specifiez 'sda/' comme périphérique de sauvegarde.
=====Aller plus loin…=====
Vous avez maintenant un serveur web minimaliste qui saura servir des pages html. Mais il est possible de parvenir à un véritable serveur GLAMP en installant php et mysql :
tce-load -wi apache2-mod-php5.tcz
tce-load -wi mysql.tcz
Vous pouvez également passer par un autre serveur web comme lighttpd, installer un serveur ftp, samba, smtp, proxy …
Pour connaitre la liste des paquets disponibles sur TCL, rendez vous ici :
http://distro.ibiblio.org/tinycorelinux/3.x/tcz/index.html
Enfin, un lien vers un tutoriel en anglais pour installer un serveur samba sur TCL :
http://www.parkytowers.me.uk/thin/Igel2110/IgelLinux.shtml
Le nombre de paquets disponibles pour cette distribution rend virtuellement possible toute utilisation de votre machine ( serveur, bureautique, console de jeu, lecteur vidéo…) en ne disqualifiant pas les vieilles configurations…