NAS Synology : Afficher les médias d’un disque USB externe en DLNA/UPnP

Je stocke quelques films sur un disque USB externe de 500 Gos connecté à mon NAS Synology DS210J. Malheureusement, ceux-ci ne sont pas visibles en DLNA sur ma TV car les répertoires partagés par défaut sont limités à volume1/video (Vidéo), volume1/photo (Photo) et volume1/music (Musique).

Pour remédier à cela de façon transparente, j’ai décidé de monter un sous-répertoire « Ext » dans le répertoire « vidéos ». Ce répertoire sera en fait un alias vers le répertoire vidéo du disque USB.

Pour se connecter au NAS, voyez l’article Se connecter à un NAS Synology en SSH (lighe de commande).

Voici comment j’ai procédé :

1. Créez un fichier de script qui sera lancé au démarrage.
Ce script est créé avec une priorité basse (S99) dans le répertoire rc.d qui contient les scripts de démarrage.

cd /usr/syno/etc/rc.d
vi S99MountUsbDisk.sh

Ajoutez la ligne suivante (en remplaçant les chemins selons vos propres besoins) :

mount --bind /volumeUSB1/usbshare/Loisirs/videos /volume1/video/Ext

L’éditeur de texte VI est un plaisir (sarcasme), touche « i » pour insérer, puis ECHAP et taper :wq pour sauver le fichier). Visitez cette petite fiche pour plus d’infos sur VI.
Cette commande sera appelée au démarrage et créera l’alias du répertoire Ext vers le répertoire videos du disque USB/

2. Donnez à ce script les droits d’exécution :

chmod 700 S99MountUsbDisk.sh

3. Relancez une première fois l’indexation des vidéos :

synoindex -R video

4. Doutez un peu :

Je me suis demandé deux choses :
1. si l’indexation des nouveaux fichiers sera automatique
2. si ça n’interférera pas avec la mise en veille du disque USB.

Résultats :

1. Première réponse : oui, les fichiers copiés sur le disque USB sont indexés mais ça ne semble pas être systèmatique.

Pour m’assurer que l’indexation est toujours à jour à au moins 24h prés, je vais la lancer sur toutes les vidéos chaque jour pendant le midi. C’est une tâche qui ne prend que quelques minutes car il y a généralement beaucoup moins de vidéos à indexer que de photos.

Editez le fichier /etc/crontab et ajoutez une ligne telle que ci-dessous :

Tapez : vi /etc/crontab
Pour rappel, tapez « i » pour passer en mode insertion.
L’utilitaire crontab n’existe pas, il faut éditer le fichier à la main.

#minute hour mday month wday who  command
0       0    *    *    *     root /usr/sbin/ntpdate -b pool.ntp.or
51      1    *    *    3,6   root /usr/bin/php -n -d safe_mode_exe
23      0    *    *    2,5   root /usr/syno/bin/synopkg chkupgrade
5       8    *    *    0     root /usr/syno/bin/synoavscan --all
30      0    *    *    *     root /sbin/poweroff
30     12    *    *    *     root synoindex -R video

Prenez exemple sur la ligne qui précère histoire de conserver les tabulations et espaces qui vont bien. Là, j’ai programmé la réindexation chaque jour à 12h30. Tapez « :wq » pour enregistrer vos modifications.

Pour que la nouvelle tâche soit planifiée, redémarrez le service crond :

/usr/syno/etc.defaults/rc.d/S04crond.sh stop
/usr/syno/etc.defaults/rc.d/S04crond.sh start

Il est possible de forcer l’indexation d’un fichier particulier via la commande suivante, l’indexation prend une poignée de seconde :

synoindex -a "/volume1/video/Ext/Films//Mon fichier.avi"

2. En ce qui concerne la mise en veille, je n’ai pas constaté de mise en route injustifiée du disque externe.

Edition du 10/03/2012 : Ces manipulations n’ont pas survécu à une mise à jour du DSM (vers version 4). Qu’à cela ne tienne, ça ne prend pas longtemps à faire, mais c’est bon à savoir.

Edition du 04/08/2012 : Mon petit mémo à moi des actions à mener après une montée de version du DSM :

$ cd /usr/syno/etc/rc.d
$ vi S99MountUsbDisk.sh
Ajouter la ligne "mount --bind /volumeUSB1/usbshare/Loisirs/videos /volume1/video/Ext"
$ chmod 700 S99MountUsbDisk.sh
$ ./S99MountUsbDisk.sh
$ synoindex -R video

38 réflexions sur « NAS Synology : Afficher les médias d’un disque USB externe en DLNA/UPnP »

    1. Et bien en fait, c’est expliqué dans les grandes lignes dans l’article mais je vais être plus précis.
      Je me base sur une interface DSM 4 en anglais :

      – Il faut d’abord ouvrir l’accès SSH : Pour ça, il faut aller dans le « Panneau de configuration » et cliquer sur l’icône « Terminal ».
      – Là, clique sur « Enable SSH Service ». Le SSH est un accès distant et sécurisé à la console Linux du NAS. Il est cependant limité au réseau local par défaut.
      – Télécharge un outil comme Putty (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html : cliquer sur putty.exe) ou MobaXterm (http://mobaxterm.mobatek.net/) qui sont des clients SSH.
      – Lance « Putty.exe » et renseigne l’adresse IP du NAS. Tu peux la retrouver dans « Informations Systèmes » / Onglet « Réseau », »Adresse IP ».
      – Les étapes indiquées dans l’article permettent de créer un script au démarrage qui « monte » un disque externe dans un chemin existant. En l’occurence « /volumeUSB1/usbshare/Loisirs/videos » est monté sur « /volume1/video/Ext ».

      En espérant que ça t’aide 🙂

  1. Salut,
    Déjà merci pour ton super tuto. Par contre j’aurais voulu savoir pourquoi tu as préféré faire un script plutôt que mettre les mount dans le fstab ??

    1. You’re welcome 🙂

      Alors la raison est assez compliquée et peu accessible aux simples mortels. 🙂
      Non, en fait, c’est parce que je suis un noob en Linux et quand j’ai fait le script, je ne connaissais même pas fstab. Du coup, je me suis pris la tête à faire un script de démarrage.

    1. Si tu mets à jour le fstab, je suis client de la syntaxe. Je suis un peu feignant et comme ça je mettrai à jour l’article.
      Je me demande si le fstab résiste aux mises à jour du DSM. Ca ne peut pas être pire de toute façon. 🙂

      1. Bonne question, je n’en ai aucune idée ^^ Dans le fstab j’utiliserai le uuid, comme sa même si on change de ports usb, il montera le hdd dans le même dossier.

  2. Bon après plusieurs heures de test et 3 plantages du synology. Ton système de script est la meilleur solution pour le montage de HDD USB.
    Pour les tests que j’ai fait : le fstab est réécrit à chaque redémarrage, donc c’est mort. Et pour le rc et rc.local, le montage de l’usb est trop long, donc ne fonctionne pas (sauf pour les dossiers déjà sur le syno).
    Petite info en plus : Si vous voulez monter plusieurs HDD USB, il faut penser à mettre la commande « sleep 1 » (pause de 1sec), car 2 mount d’affilé m’a posé problème, seul 1 disque était monté, au lieu des 2.

    1. Merci pour ce précieux retour. Je prends note pour le sleep, c’est très bon à savoir.
      « le fstab est réécrit à chaque redémarrage » -> Maintenant que tu me le dis, ça me rappelle quelque chose.

  3. Je reviens au news, j’ai trouvé encore mieux ^^ Il faut rajouter la source http://update.10trum.de/packageupdate/getpackages.php.
    L’application autorun va apparaitre, il faut donc l’installer xD
    Cette application permet de lancement d’un script, se trouvant sur le HDD, à son branchement sur le NAS.
    Donc vraiment pratique pour si vous avez plusieurs HDD avec des mount –bind différent ^^

    1. Mais l’idée n’est pas bête dis donc. Si je comprends bien c’est vraiment comme un autorun de CD. Et ça devrait éviter de perdre la config au premier changement de version. J’essayerai tiens (le lien ne marche pas de mon taff).

      Merci pour l’info ! 🙂

      1. Normal, il faut rajouter la source sur le NAS dans « centre des paquets » puis paramètres.
        Le script fonctionne très bien sur un hdd avec 1 partition, par contre j’ai des soucis avec le multipartition.

        Et oui c’est comme un autorun des cd, dès que tu branches le HDD, l’appli le détecte, cherche un script autorun a la racine puis l’exécute.

  4. Salut, merci pour le tuto, juste je rajoute qu’il faut créer la dossier Ext, ce n’est pas le script qui le fait.

    1. Ah, merci.
      Et normalement on peut faire mieux. Il faut que je prenne le temps de tester l’autorun de Manios (qui a commenté juste au dessus).

      1. Du coup j’ai cumulé les 2 méthodes, ta façon pour quand je démarre le nas et qu’un HDD est déjà démarré. Et la méthode avec l’autorun pour le montage à chaud.
        Et là plus aucun soucis ^^

  5. Bonjour

    J’ai rajouté les lignes suivantes dans le script mais sans resulat après un reboot

    Avez vous une idée

    Merci

    mount –bind /volume1/homes/admin/CloudStation/musique /volume1/music
    mount –bind /volume1/admin/CloudStation/video /volume1/video
    mount –bind /volume1/admin/CloudStation/photo /volume1/photo

  6. Il y a 2 tirés : –bind et non -bind
    Si tu veux tester tes lignes, tu fait un « mount » pour voir les points de montage.
    Ensuite tu fait tes commandes pour les tester et si tout réussi, tu refait un « mount » pour bien vérifier tes montages.

    Si tu as des messages d’erreurs, hésite pas à les poster ici.

  7. Alors mes mount –bind manuels remonte bien ils sont bien affiché en faisant un simple mount

    mais après un reboot je n ai plus rien donc pb avec mon scirpt cependant quand je l édite j ai mes lignes

    une idée ? ^^

  8. As tu bien mis le script ici : /usr/syno/etc/rc.d ?
    L’a tu bien nommé S99**********.sh ?Le S99 est obligatoire
    Lui as tu bien donné les droits 700 ?

  9. Faut en être certain, pour les droits du fichier, dit moi ce que tu as.
    Tu peux le voir avec ls -l, il faut que tu soit en user root (ou root user je sais plus l’ordre)

    1. Les autres scripts on les mêmes droits ?
      Essaye de le lancer à la main et regarde l’erreur : ./S99******.sh (point slash nom_fichier.sh)

  10. Bon j’ai avancé ^^ j’ai toutttttt refait ^^

    Après un reboot les mount sont ok mais je n’ai pas de synchro maintnenant 🙁

    1. La synchro faut le faire soit à la main avec l’interface, soit avec le planificateur de tâche cron, si tu rajoutes souvent des fichiers. J’ai le meme problème et en plus c’est hyper long.

  11. alors en fait si la synchro est ok mais ça doit etre l’indexation … quand je navigue avec windows media player il voit bien le dlna mais dans video, music ,etc il trouve rien

  12. Oui c’est l’indexation, donc soit a la main ou avec le cron (mais effacé à chaque mise à jour). Le soucis que je rencontre est le temps de l’indexation, avec 2 HDD soit 2 To sa me prend plus de 3 heures.

  13. oui c’est le planificateur de tâche Linux. Mais comme je t’ai dit, à chaque mise à jour du système, il sera réinitialisé.

    1. Merci pour le lien. C’est un sujet légèrement différent (forcer l’indexation immédiate des médias), mais c’est intéressant et utile. 🙂

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *