Installation de Debian 5 sur un NSLU2

Version imprimableVersion imprimable

Introduction

À l'heure où les quantités d'information stockables et nécessaires suivent un accroissement exponentiel, les solutions NAS présentes sur le marché sont de plus en plus répandues. En passant des produits à plusieurs milliers d'euros à ceux à moins d'une centaine d'euros, ces serveurs s'ouvrent considérablement au grand public. On peut définir deux objectifs principaux pour les NAS :

  • Le stockage en masse de données.
  • Le partage en réseau (interne ou externe) de ces données.

Selon le système d'exploitation livré, il est possible de configurer divers services. C'est pour cette raison qu'il est important de bien choisir son achat selon ses propres besoins. J'ai personnellement choisi le NSLU2 de Linksys tout d'abord pour son faible coût (inférieur à 100€) mais également pour la possibilité d'installer un système Linux. Cette dernière raison est très importante par le fait qu'elle ne va imposer aucune limite sur les possibilités du serveur.

L'objectif de cet article est donc d'expliquer comment retirer le firmware d'origine installé par Linksys et comment le remplacer par le système Debian qui est dans sa version 5 à l'heure actuelle.

Présentation du NSLU2

Le NSLU2 dispose des caractéristiques suivantes :

  • Intel XScale IXP-425 cadencé à 267 Mhz (architecture ARM).
  • 32 Mo de SDRAM.
  • 8 Mo de Flash.
  • 2 ports USB 2.0.

Cependant, en dehors de ses caractéristiques tout à fait suffisantes pour son application, le plus impressionnant dans cette machine est sa taille. En le sortant de la boîte on ne discerne plus la fiction de la réalité et on se demande si l'on a pas pris un quelconque hallucinogène avant de le déballer. Plus petit qu'une pochette d'album, tenant dans la main, de la même taille que deux paquets de cigarettes côte à côte, le NSLU2 se cachera facilement dans le moindre recoin comme en attestent les photos suivantes :

Photo du NSLU2 dans une main Photo du NSLU2 couché Photo du NSLU2 à côté d'une pochette de disque Photo du NSLU2 debout

Préparation de la machine

Pour mener cette opération à bien, il vous faudra :

  • Un support de stockage USB 2.0.
  • Un ordinateur permettant d'effectuer un accès SSH.

Avant de commencer, vérifiez que votre routeur est capable de supporter l'IP par défaut qui est 192.168.1.77. L'IP minimale de mon routeur étant sous DD-WRT était 192.168.1.100. Je l'ai donc modifié en 192.168.1.50 et je n'ai eu aucun soucis pour la suite des opérations. Avant de faire quoi que ce soit, je recommande vivement de commencer par partitionner le disque dur qui va permettre d'installer le système. La principale raison est le fait que l'installeur Debian aura besoin d'une partition de swap vu la faible capacité de la mémoire Flash.

Comme on peut l'observer dans la gallerie de photos située plus bas, j'ai appliqué un schéma de partitionnement assez classique dans le monde Linux à l'aide de l'outil gparted (les KDE users, débrouillez-vous ;-)). Une partition ext3 de 20 Go pour le point de montage /, une autre de 90 Go pour le point de montage /home et une partition de swap de 2 Go. Ces valeurs sont évidemment plus qu'il n'en fait, mais après tout, quand on dispose d'espace, pourquoi ne pas l'utiliser ?

Une fois le partitionnement terminé, il faut brancher le disque dur au NSLU2 et ce dernier au réseau. Ensuite, à l'aide d'un navigateur, nous allons flasher le firmware avec l'interface d'administration fournie par Linksys. Pour cela, il faut d'abord commencer par le télécharger à l'adresse suivante : http://www.slug-firmware.net/d-dls.php. Une fois l'archive extraite, rendez-vous à la page 192.168.1.77. Dans la partie Upgrade de l'onglet Administration, il suffit de donner le chemin vers le fichier .bin du nouveau firmware et de cliquer sur Start Upgrade. À partir de ce moment là, il va falloir patienter quelques minutes jusqu'à entendre 3 bips signifiant le démarrage de l'installeur Debian.

Photo de la préparation du disque dur Photo du NSLU2 et du disque dur Photo du flashage par l'interface Web Photo du partitionnement du disque dur

Installation de Debian

Pour se connecter à l'installeur, deux scénarios sont possibles :

  • Vous avez configuré une IP fixe dans le firmware d'origine. Cette IP sera utilisée par l'installeur.
  • Vous avez laissé la configuration en DHCP. Dans ce cas, n'importe qu'elle IP peut être utilisée. Le meilleur moyen de la trouver est de passer par l'interface d'administration de son routeur.

Une fois l'IP récupérée (supposons que ce soit toujours 192.168.1.77), on se connecte à l'installeur Debian au moyen d'un client SSH de la manière suivante :

$ ssh installer@192.168.1.77

Le mot de passe demandé est install. La suite ressemble beaucoup à une installation classique de Debian. Un menu va vous demander la liste des modules noyau à rajouter. Depuis la version 5, tous les modules nécessaires sont ajoutés automatiquement, vous pouvez donc passer cette étape en laissant les choix par défaut sans aucun regret. Un peu plus tard, une nouvelle étape de partitionnement va apparaitre. Il va falloir redéfinir quelques informations pour vos partitions comme le point de montage et le fait que vous vouliez les formater. De plus, n'oubliez pas de définir un bootflag pour votre partition /.

Lorsque vous arrivez à la partie Installing the base system, à un moment donné, vous aurez le choix d'installer plusieurs types de serveurs (HTTP, DNS, etc) ou le système de base. Je recommande personnellement la deuxième option. Le NSLU2 étant très pauvre en mémoire, le but est d'installer seulement la base et de rajouter des serveurs correspondant à nos besoins manuellement. C'est également pour cette raison que je conseille vivement de ne pas envoyer les statistiques sur les paquets !

Ne vous attendez pas à une installation rapide malgré la faible quantité des composants choisis. Vous pouvez compter 3 heures (configuration de l'installeur comprise) pour atteindre la fin de l'installation.

Photo du démarrage de l'installeur Photo du partitionnement du disque dur Photo de l'installation de la base Photo de l'installation des programmes

Photo de la configuration de la mémoire Flash Photo de l'installation du noyau de la Flash Photo de la fin de l'installation Photo de la connexion au NSLU2

Optimisations et configuration

Toutes les opérations décrites dans cette partie doivent être réalisées en super-utilisateur. Pour avoir les droits d'administration, procédez de la manière suivante :

$ su

Détestant les éditeurs vi et vim, la première chose que je fais en arrivant sur un système UNIX est d'installer emacs :

# apt-get install emacs

Nous allons maintenant tenter de réduire légèrement la consommation de ressources. Pour se faire, commençons par désactiver les lignes séries du système en éditant le fichier /etc/inittab et en remplaçant la première ligne par la deuxième ligne ci-dessous :

T0:23:respawn:/sbin/getty -L ttyS0 115200 linux
# T0:23:respawn:/sbin/getty -L ttyS0 115200 linux

Si vous êtes intéressés, il y a également possibilité en éditant ce fichier de remplacer l'action du bouton d'allumage du NSLU2. En effet, lorsque le serveur est allumé, par défaut ce bouton redémarre la machine. En modifiant la première ligne par la deuxième ligne ci-dessous, il permettra d'éteindre la machine :

ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -h now

Une fois les modifications du fichier /etc/inittab, veillez à lancer la commande suivante afin qu'elles soient prises en compte au prochain redémarrage :

# telinit q

Si vous n'avez pas l'intention d'utiliser l'IPv6, il est préférable de désactiver son support. Pour commencer, il faut blacklister sont module noyau en éditant le fichier /etc/modprobe.d/blacklist et en rajoutant la ligne suivante à la fin de ce fichier :

blacklist ipv6

De plus, votre fichier /etc/hosts devrait avoir la forme suivante :

127.0.0.1       localhost
127.0.1.1       vpn-1-073.cm.ulg.ac.be  vpn-1-073

# The following lines are desirable for IPv6 capable hosts                                                                                                                      
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Il ne vous reste plus qu'à supprimer la partie concernant l'IPv6, ce qui devrait donner :

127.0.0.1       localhost
127.0.1.1       vpn-1-073.cm.ulg.ac.be  vpn-1-073

Si vous n'avez pas l'intention d'utiliser exim4, il est conseillé de le remplacer par un autre MTA beaucoup moins gourmand en mémoire :

# apt-get --purge remove exim4 exim4-daemon-light
# apt-get --purge install esmtp-run maildrop at bsd-mailx
# update-rc.d -f exim4 remove

Pour être sûr que votre NSLU2 soit toujours à l'heure, il faut installer un serveur NTP :

# apt-get install ntp

Si vous avez un doute sur le fuseau horaire, vous pouvez le reconfigurer de la manière suivante :

# dpkg-reconfigure tzdata

Si vous voulez pouvoir démarrer une application graphique par l'intermédiaire de SSH et de votre serveur X (option -X), il faut installer un nouveau paquet :

# apt-get install xbase-clients

Enfin, si vous voulez donner un nom un peu plus sexy à votre NSLU2, remplacez sont nom d'origine dans le fichier /etc/hostname. Il faut également le faire dans le fichier /etc/hosts de la manière suivante (supposons qu'on le renomme nslu2) :

127.0.0.1       localhost
127.0.1.1       vpn-1-073.cm.ulg.ac.be  vpn-1-073

à remplacer par :

127.0.0.1       localhost
127.0.1.1       nslu2.cm.ulg.ac.be      nslu2

Source(s)
Share/Save

Commentaires

KDE User

On a qtparted à la place de gparted et on en est fier !

Sinon, bon tuto, je suis entrain de m'en servir :)

Portrait de benlaug

Merci bien !

Merci bien :D. Si jamais tu vois des erreurs, n'hésites pas à me le dire ! Et gparted vaincra :P.

SYNTAX_ERROR

Acces Impossible a mon Nslu2

Bonjour,
Je n'arrive pas a communique avec mon Nslu2 ?
Impossible de faire reset et d'installer Debian.
merci de votre aide.

Cordialement

Xavier

Portrait de benlaug

Re: Acces Impossible a mon Nslu2

Bonjour, vous n'arrivez pas à communiquer avec le NSLU2 avant ou après le flash de Debian ? Qu'avez-vous déjà fait jusqu'à présent ?

SYNTAX_ERROR