Site WWW de Laurent Bloch
Slogan du site

ISSN 2271-3905
Cliquez ici si vous voulez visiter mon autre site, orienté vers des sujets moins techniques.

Pour recevoir (au plus une fois par semaine) les nouveautés de ce site, indiquez ici votre adresse électronique :

Tutorial
Configurer le NAS DS-106e de Synology
Stocker ses fichiers en réseau
Article mis en ligne le 25 mai 2007
dernière modification le 13 juin 2016

Pourquoi un NAS ?

Comme solution pour stocker des données, j’ai toujours aimé les
serveurs de fichiers de type NAS (Network Attached Storage) : c’est indépendant de l’ordinateur, mais facile d’accès. Jusqu’à récemment, il s’agissait de gros systèmes avec des prix de centaines de milliers d’Euros, mais depuis quelques années il existe des petits modèles personnels pour quelques centaines, voire une centaine d’Euros. Alors j’ai eu envie d’en acheter un.

Le principe du NAS est le suivant : c’est un ordinateur spécialisé, connecté à un réseau local, qui ouvre un service de partage de fichiers aux autres hôtes de ce réseau. Typiquement, dès lors que l’on dispose d’un modem-routeur avec un commutateur incorporé et quatre ports Ethernet, il est possible d’y connecter un NAS qui mettra son système de fichiers à disposition des autres ordinateurs du réseau. Accessoirement il pourra aussi servir de serveur d’impression.

Quel est l’avantage par rapport au disque dur interne de chaque ordinateur ? D’abord, de servir de sauvegarde aux fichiers de celui-ci. Puis il permet le partage de fichiers entre plusieurs ordinateurs. Il évite les opérations hasardeuses de récupération lors d’un renouvellement de machine. Enfin, pour le modèle dont j’ai l’expérience, il sait se mettre en veille lorsqu’il est inactif, et se réveiller tout seul lorsqu’on lui parle, ce qui invite à le laisser sous tension plus volontiers qu’un ordinateur ordinaire ; ainsi, avec une adresse IP fixe ou en utilisant les services de DynDNS, il est possible d’accéder aux fichiers à son domicile depuis le monde entier.

Le DS-106e de Synology

Sur les conseils de Manuel Serrano je décidai d’acheter un NAS Synology, basé sur système Linux. Manuel avait l’expérience du modèle DS-101g+, mais j’acquis un Synology DS-106e [1], dernier modèle sorti à l’époque, dans lequel j’installai un disque SATA de 400 Go. Et là, l’imprévu commença à se manifester.

Installation et configuration depuis Linux : avec les versions récentes de Wine (0.9.46), de l’assistant d’installation DSAssistant et du firmware (518), vous pouvez effectuer la configuration de votre NAS depuis Linux. Ouf !

Le firmware du DS-101g+ contenait tout ce qu’il faut pour formater le disque et y installer le système d’exploitation du NAS, qui est une version de Linux pour système embarqué, avec un noyau 2.4. Il suffisait de brancher le disque interne et la prise réseau, puis de mettre la bête sous tension, toute l’initialisation se déroulait alors automatiquement. Ensuite on utilisait son navigateur Web préféré pour accéder à l’engin par le port 5000, qui offre une interface de configuration pour créer des comptes, connecter des périphériques, etc. (J’emploie l’imparfait parce que ce n’est plus vrai, voir plus bas).

Le DS-106e a moins de mémoire vive et un firmware moins puissant : le logiciel pour formater le disque et installer le système est sur un cédérom, il doit s’exécuter sur un ordinateur connecté au même réseau que le Syno, d’où il effectuera les téléchargements appropriés ; il y a une version Windows et une version MacOS X. Pour Linux ou autre Unix libre, avec les versions récentes (Wine 0.9.46, DSAssistant et firmware 518) Wine lance correctement l’assistant de configuration, qui détecte correctement le Syno. Le reset et l’installation fonctionnent correctement.

Incidemment, le nouveau firmware du DS-101g+ est redescendu au niveau de celui du DS-106e, il ne permet plus l’initialisation du système sans passer par le processus ci-dessus :-( Les raisons de
Synology sont incompréhensibles...

Installer de nouveaux services

Le système de base du Syno offre des fonctions limitées : configuration par interface Web, serveur de fichiers, d’impression, FTP, de sauvegarde, MySQL. Ce n’est déjà pas mal, mais ce serait mieux si on pouvait accéder au système avec les commandes habituelles de l’administration des choses, en ligne de commande pour tout dire : ssh, scp etc.

Pour atteindre cet objectif et les suivants, j’ai surtout suivi les conseils de Manuel Serrano, qui avait largement défriché le terrain.
La première chose à faire est de placer sur le Syno un logiciel grâce auquel nous pourrons installer tout le reste : telnet.
Cette installation pourra se faire en utilisant le dispositif que Synology a placé dans son logiciel pour permettre la mise à jour du firmware.

Le site où se trouvent les instructions fondamentales pour ce travail est intitulé NSLU2-Linux. On y trouve le lien vers la page qui explique l’installation de telnet sur le Syno. La manœuvre est plutôt acrobatique, il suffit que cela marche une fois, mais mieux vaut faire attention aux fautes de frappe !

Une fois telnet installé, tout devient possible avec le logiciel de gestion de paquetages ipkg, un cousin de apt-get ou de rpm. La première chose sera bien sûr installer ssh !

La communauté des utilisateurs a développé pas mal de paquetages intéressants, mais bientôt, à l’incitation toujours de Manuel Serrano, l’idée s’est imposée que ce serait mieux d’avoir, sur cette plate-forme, une vraie distribution Linux complète, en l’occurrence Debian.

La technique de choix pour faire cela s’appelle chroot, un programme qui permet, comme son nom l’indique, de modifier la position de la racine du système pour la placer dans un répertoire arbitraire. L’utilisateur qui aura été placé dans dans un
environnement modifié par chroot « croira » que la racine du système est celle déterminée par chroot. Il suffira d’avoir placé dans ce répertoire l’arborescence de fichiers nécessaire au fonctionnement de ce que veut faire l’utilisateur. Cet outil est fréquemment utilisé pour limiter les fonctions accessibles à l’utilisateur, pour le placer dans une « prison » logicielle dont il ne peut sortir : ce n’est pas le but ici. Si j’installe à la racine de l’environnement chrooté une distribution Debian, au hasard, je pourrai faire tout ce que fait un utilisateur normal de Debian : n’est-ce pas le but poursuivi ?

Installer un système complet : Debian chrootée

Il faut lire et appliquer le guide d’installation de Debian. Là aussi on a un peu peur, mais en appliquant les instructions à la lettre ça marche ! Le DS-106e, comme le DS-101g+, est équipé d’un processeur PowerPC, dont l’architecture est supportée par la distribution Debian.

L’opération ne nécessite ni modification du firmware, ni modification du système de fichiers sous-jacent.

Debian fournit un script spécialement conçu pour créer un système... Debian, éventuellement dans un environnement chrooté (parfois appelé prison, jail) : debootsrap. La méthode consiste en la construction du futur système chrooté sur votre ordinateur (tout est expliqué pas à pas dans le tutoriel), puis son transfert sur le Syno ; cela prend un temps certain, mais au bout du compte j’ai eu ma Debian fonctionnelle !

Si l’on a placé l’arborescence Debian dans le répertoire /volume1/public/debian/chroottarget, comme suggéré par le manuel, la commande pour passer sous Debian sera, après avoir affecté quelques variables d’environnement (cf. scripts ci-dessous) :

sudo chroot /volume1/public/debian/chroottarget /bin/bash -c "su $USER"

En effet, seul le super-utilisateur a le droit de faire chroot.

Afin de passer automatiquement sous Debian lorsque je me connecte au Syno, j’ai installé dans /etc le fichier profile suivant, inspiré de celui de Manuel :

Si l’on souhaite revenir au système sous-jacent du Syno (appelé « côté système » dans la suite de cet texte, par opposition au « côté Debian », ou « environnement chrooté »), la commande magique est :

Au passage je ne puis que m’émerveiller une fois de plus de la conception judicieuse du noyau Linux, qui procure une grande indépendance des applications par rapport au noyau, parce que le système chrooté tourne sur le noyau du système sous-jacent, qui n’est pas vraiment celui pour lequel il a été conçu.

Accéder aux services chrootés

Le guide d’installation comporte quelques non-dits qui ont soulevé des difficultés, aplanies par les conseils suivants de Manuel :

 Dans le système sous-jacent, éviter d’utiliser bash comme shell par défaut, en rester à ash, fourni par défaut.

 Pour la configuration des répertoires des utilisateurs, utiliser le même HOME dans le système sous-jacent et dans l’environnement chrooté ; ce n’est pas très intuitif, mais ainsi tout marche bien mieux. Chez moi, comme indiqué par le fichier rc.local ci-dessous, c’est dans /volume1/users/.

 ssh et ses dérivés arrivent directement dans l’environnement chrooté avec les configurations ci-dessus. Si on veut accéder à d’autres services, il faut d’abord configurer ainsi l’environnement système, par le fichier /etc/rc.local, ceci afin de trouver ce que l’on cherche au bon endroit :

 Pour que cela fonctionne il faudra créer les répertoires adéquats pour les montages du script ci-dessus :

 Pour la suite : supposons que je souhaite utiliser rsync pour synchroniser des fichiers entre, par exemple, mon ordinateur Ellenore et le Syno : pour que tout se passe dans l’environnement Debian, il faut que que le rsync d’Ellenore « parle » à celui de la Debian, pas à celui de l’environnement sous-jacent. Cela suppose l’installation dans l’environnement sous-jacent d’un script nommé rsync, placé dans le PATH avant le rsync du système sous-jacent s’il y en a un, et dont l’unique fonction sera de faire un chroot en passant la main au rsync de Debian, ce qui s’écrit ainsi :

Voilà, quand on le voit il a l’évidence de la simplicité, il suffit de faire la même chose pour Mercurial, Subversion, Unison et tout les autres logiciels si pratiques.

N’oubliez pas de donner à vos scripts les droits d’accès en exécution, sinon rien ne marchera :

L’essentiel du contenu de cet article est dû à Manuel Serrano, je l’ai surtout écrit comme aide-mémoire à mon usage personnel, et parce qu’il ne l’avait pas écrit lui-même.

À l’usage, avoir une vraie Debian (Manuel l’a fait avec Gentoo, cela marche exactement de la même façon) est quand même beaucoup plus pratique que d’être limité au système du Syno, méritant mais fruste.

L’article suivant explique comment installer un serveur Subversion sur le NAS DS-106e de Synology.

Un problème qui peut survenir

Lors d’installations de paquetages dans mon système Debian chrooté, j’ai eu le message d’erreur suivant :

dpkg : syntax error : unknown group `Debian-exim’ in statusoverride file

J’ai trouvé la solution sur le site de The Dumb Terminal. En bref, la commande magique est :

dpkg-statoverride —remove /etc/exim4/passwd.client

Accéder aux périphériques du système natif

Une fois dans l’environnement chrooté, en principe on n’a plus accès aux périphériques de l’environnement sous-jacent, ce qui est gênant, par exemple pour graver des CD ou pour contrôler la température de son disque dur avec l’excellent paquet smartmontools.

La commande magique, donnée par Cyberlullaby à exécuter en tant que root dans l’environnement natif, est :

bien commode pour pouvoir faire par exemple ceci, qui donne la température du disque :

Un environnement facile à sauvegarder et à restaurer

La construction de l’environnement chrooté procure par effet de bord un avantage non négligeable : il est facile de faire de cette arborescence une copie sur une clé USB ou sur un CD (chez moi cela tient en moins de 500 Mo) que l’on pourra réinstaller en quelques secondes en cas de changement de firmware, par exemple.

La suite : un serveur Subversion, et de boot en réseau

Pour l’étape suivante, voir l’article Installer un serveur Subversion.

J’ai aussi configuré DHCP et TFTP sur ce NAS pour en faire un serveur de boot en réseau, qui me permet (entre autres) d’installer Linux sur des ordinateurs connectés à mon réseau local.

Liens utiles

NSLU2-Linux

Le Wiki des Syno

Slimserver on Diskstation (SSODS)

chroot

Quelques liens pour bidouiller sur le DS-106e

NAS Forum