ODROID-HC2 – Installation d’Openmediavault

Ça faisait longtemps que je voulais remplacer ma baie Synology par un système ouvert, à savoir openmediavault, « The open network attached storage solution« . Restait à savoir sur quel matériel faire tourner ce serveur, l’objectif étant aussi de minimiser le budget : ces baies propriétaires comme Synology, Qnas, restent tout de même assez chères, quand on y ajoute le prix des disques durs.

Il y a bien les NAS Kobol qui m’avaient tapés dans l’œil, projet open-source proposant des baies physiques (open hardware) sur lesquelles on peut faire tourner Armbian ou Syncloud, Openmediavault ou encore Nextcould. Mais là en plus du prix (300$ + le port), le produit est indisponible depuis plusieurs mois.

Après avoir d’abord pensé à utiliser le populaire Raspberry 4, j’ai finalement opté pour un Odroid-HC2. D’abord parce qu’il dispose d’un contrôleur SATA, un vrai contrôleur disque, ce qui préférable à la solution USB d’un Raspberry. Ensuite parce que le processeur est nettement plus puissant.

Enfin parce que j’aime bien la conception : le fait de pouvoir insérer un disque dur 3″½ dans le rail, permet avec une coque de n’avoir au final un seul boîtier, contrairement à un Raspberry où l’on se retrouve forcément avec un disque externe. C’est tout de même plus pratique.

À gauche le Odroid-hc2 nu, à droite avec le HD et sa coque transparente.

Évidemment, je fais le choix d’un disque unique, pas de baie RAID comme dans les NAS du marché. Mais avec un backup via le réseau sur mon PC où j’ai de la place en stockage, ce sera parfait. C’est le principe KISS ! (Keep It Simple, Stupid). 😎

Voyons voir la mise en œuvre et l’installation d’Openmediavault, la première étape de mon future NAS. Il s’agit de la version 5.5.15-1. Car j’ai ensuite l’intention d’installer OpenVPN, un serveur NextCloud, PLEX media server, et sans doute un logiciel de torrent. Ce sera l’objet d’autres articles.

Hardware

MÀJ OCT 2021 : À l’époque je n’ai pas fait attention à l’architecture (32 bits ou 64 bits). Ce NAS est en x32 (processeur armv7l) et de nos jours il est tout de même préférable d’utiliser une architecture x64 (il y a des problèmes de limitation en x32, voir cet article). Donc même si je suis content de ce NAS, si c’était à refaire, je ne le choisirais pas.

Comme j’avais un HD 3″½ en stock de 1To, c’était l’occasion de l’utiliser. Pour info, le HC2 permet d’utiliser ce type de disque, quand le HC1 n’autorise que les disques de 2″½. Il ne restait plus qu’à commander le matériel.

Pour ce faire, je suis allé sur le site odroid.fr, qui permet de payer en euros, et d’inclure la TVA dans le prix, ce qui évite les mauvaises surprises à la douane (tout est envoyé d’Angleterre je crois). Bref, alimentation, carte SD 8 Go, coque et port compris, j’en ai eu pour un peu moins de 100 € (97,95 €).

L’assemblage est on ne peut plus simple (voir photo), il ne reste plus qu’à installer openmediavault.

Installation d’OMV

Le premier problème est de trouver la bonne image OS à récupérer. Le lien des images OMV toutes prêtes vous renvoient vers un document expliquant qu’il faut utiliser maintenant une autre méthode, le nombre de SBD (Single Board Computer) ne cessant de croître, et qu’il est impossible de fournir une image toute prête pour chaque modèle de SBC.

On arrive donc sur cette page du forum OMV, où il faut choisir Installing OMV5 on Armbian Buster. Buster est la version recommandée pour OMV sur ce genre de carte. Ce dernier lien affiche la documentation intitulée « Getting Started with OMV Addendum A: Installing OMV5 On Armbian SBC’s ». Commencer par la télécharger localement comme il est demandé, afin de l’ouvrir avec votre lecteur de PDF préféré (d’ailleurs les hyperliens de la doc ne fonctionnaient pas avec l’affichage du PDF dans Firefox !).

Dans « Supported Devices », il faut cliquer sur le lien Armbian Download Page. Sur la page qui s’affiche, on trouve finalement notre modèle :

Supported ! 🙂

On clique sur l’image, et on arrive enfin sur la page recherchée. Ici, il faut choisir Buster qui offre une meilleure compatibilité avec OMV :

Il ne reste qu’à suivre les instructions, à savoir dézipper le fichier avec 7-Zip (extension .xz). Sur Ubuntu, il suffit de passer la commande suivante pour installer 7-Zip :

sudo apt install p7zip-full

Puis pour extraire l’archive :

7z e Armbian_20.08.1_Odroidxu4_buster_legacy_4.14.195.img.xz

On récupère alors un fichier .img qu’il va falloir flasher sur la carte microSD avec Balena Etcher, dont l’utilisation est vraiment simplissime :

Voilà, tout est prêt pour le premier démarrage : insérer la carte microSD dans l’Odroid, assurez-vous d’avoir bien raccordé le boîtier au réseau (c’est requis pour l’installation), puis brancher l’alimentation. Les trois LEDs doivent s’allumer (une rouge, une verte et une bleue qui doit se mettre à clignoter quand le réseau est activé).

Le temps de se faire un café, et l’on va pouvoir se connecter en SSH sur la machine. Pour trouver l’adresse IP, vous pouvez aller sur votre Box et regarder les adresses allouées (DHCP). Un nouveau client a du apparaître. Sinon, sous Linux, on peut faire un nmap tout simple (à adapter à votre réseau) :

pascal$ sudo nmap -sn 192.168.1.0/24
...
Nmap scan report for 192.168.1.30
Host is up (0.00088s latency).
MAC Address: 00:1E:06:37:0D:45 (Wibrain)
...

Pour info, Wibrain est le nom de la boîte qui est devenue ensuite Hardkernel qui fabrique les Odroid… Voilà, j’ai mon adresse, et je vais même aller dans l’interface de la Box pour lui assigner cette adresse, afin qu’elle ne change pas, c’est plus simple comme ça (Baux DHCP statiques). Puis on se connecte en SSH sur le serveur avec le compte admin (le mot de passe par défaut est 1234) :

ssh admin@192.168.1.30

La première chose demandée est de changer le mot de passe, normal. On crée ensuite un autre compte (avec la permission sudo) à utiliser de préférence à root. Ensuite, il s’agit de mettre le système à jour, suivi d’un redémarrage :

sudo apt update
sudo apt upgrade
reboot

On attend le redémarrage, puis on se reconnecte (avec le nouveau mot de passe. J’en profite pour fignoler et changer le nom de la machine puisque par défaut c’est « odroidxu4 » :

sudo hostnamectl set-hostname odroidhc2

Puis on lance l’installation d’openmediavault proprement dit, à l’aide d’un script qui va tout configurer :

wget -O - https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash

J’ai du taper la touche « Entrée » pour que l’on me demande mon mot de passe, sinon il ne se passait rien ! L’installation peut prendre jusqu’à 30 minutes selon la doc… Avec le HC2, ça a pris à peine une dizaine de minutes. Le système va redémarrer tout seul à la fin de l’installation.

Toujours bon à savoir, la doc précise que Network Manager a été retiré des machines SBC qui tournent OVM pour la raison suivante : incompatibilité avec Portainer et Docker (Portainer facilite l’utilisation de Docker).

Et on passe enfin en mode graphique : dans votre navigateur préféré, taper l’adresse de la machine, et identifiez vous avec le compte « admin » et le mot de passe « openmediavault » :

L’interface GUI d’Openmediavault

Configuration

Il va maintenant falloir suivre la doc d’installation d’OVM 5 (Getting started with Openmediavault 5) que l’on va également télécharger en local. Puis on l’ouvre en allant directement au chapitre « Initial Configuration ».

On va suivre la documentation pour régler certains paramètres : entre autres changer le mot de passe, et plus globalement passer en revue les sections qui nous intéressent dans le menu de gauche. Si l’anglais de la doc vous rebute, il y a des vidéos qui expliquent tout ça dont certaines en français, comme celle-ci par exemple.

On va en fait régler la config de base, monter le disque, etc… À noter dans « Paramètres généraux », la Déconnexion automatique est réglée à 5mn, c’est pas mal de la passer à 1 jour, sinon c’est plutôt gênant (enfin, c’est selon vos préoccupations de sécurité !). En profiter pour changer le mot de passe par défaut dans l’onglet d’à côté.

Côté Plugins, j’installe openmediavault-resetperms 5.0, qui est bien pratique pour visualiser quels plugins utilisent quels dossiers partagés (vu dans une vidéo).

Dans « Disques », on sélectionne notre HD et on l’efface. Puis dans « Système de fichiers » on crée et on formate le disque avec un label DATA (par exemple). Puis on le monte. Enfin, on va dans « Dossiers partagés » et on partage ce disque en donnant les droits de Lecture/Écriture à tout le monde (avec le nom OMV-DATA par exemple). Etc… À la fin, j’ai ceci :

J’ai pour ma part opté pour un partage NFS sur tout le disque DATA (soit tout le HD SATA, la carte microSD étant réservée au système), plus adapté à mon PC Ubuntu que SMB. Dans la partie NFS, je l’active, puis crée un partage en indiquant l’adresse IP de mon PC, et en accordant les droits Lecture/Écriture :

Voilà, je peux monter ce partage à partir de mon PC Ubuntu. Le mount via /etc/fstab fonctionne parfaitement, et c’est doute la façon la plus simple de procéder :

La commande showmount affiche les partages disponibles sur le serveur OMV. Puis j’affiche la ligne ajoutée dans le fichier /etc/fstab.

Problème NFS avec Nautilus

À noter qu’à partir de Nautilus, le partage était bien vu dans « Autres emplacements », mais l’accès refusé :

Erreur de Nautilus, c’était trop beau pour être vrai ! 😉

En fait, il s’agit d’un problème de port utilisé. Si je regarde les journaux systèmes côté OMV, je vois ceci :

refused mount … illegal port xxx

Il s’agit d’un problème de sécurité, par défaut un serveur NFS n’accepte que les ports inférieurs à 1024. Il faut donc ajouter une option appelée « insecure » pour qu’il accepte des ports plus élevés. On la voit dans les options du partage :

Mais alors, ça devrait fonctionner ? En fait, non, parce que Nautilus utilise les « pseudos filesystem » de NFSv4, ce qui n’est pas le cas du mount dans /etc/fstab.

Pour résoudre lce problème, il faut se connecter en ssh sur le serveur OMV, éditer le fichier /etc/exports, et ajouter l’option « insecure » aux lignes sous la partie # NFSv4 - pseudo filesystem root :

$ cat /etc/exports
# This file is auto-generated by openmediavault (https://www.openmediavault.org)
# WARNING: Do not edit this file, your changes will get lost.

# /etc/exports: the access control list for filesystems which may be exported
#               to NFS clients.  See exports(5).
/export/OMV-DATA 192.168.1.20(fsid=d725df26-36b0-4925-b9ca-3c65fa1b7572,rw,subtree_check,insecure)

# NFSv4 - pseudo filesystem root
/export 192.168.1.20(ro,fsid=0,root_squash,no_subtree_check,hide,insecure)

Si l’option était bien indiquée pour le premier lien (correspondant à l’interface graphique d’OMV), j’ai du rajouter l’option pour la partie sous NVFv4. Il ne reste plus qu’à redémarrer le service NFS :

$ sudo systemctl restart nfs-kernel-server

Et voilà, je peux accéder directement au partage via Nautilus si je le souhaite :

Ce premier partage me servira à copier les fichiers facilement à partir de mon desktop Ubuntu sur le NAS OMV.

Conclusion

À ce stade, je remarque que l’interface d’OMV est une interface d’admin pure et dure, à aucun endroit je ne peux créer un fichier de test, histoire de tester mon partage NFS. Il me faut soit le faire à partir du client Ubuntu, soit connecté en SSH sur l’Odroid-hc2, en allant dans le répertoire /exports/OMV-DATA.

J’apprends aussi (à mes dépends) que OMV fonctionne avec une base de données et qu’il vaut mieux éviter de faire des changements en se connectant directement sur la machine hôte, par exemple pour effacer un répertoire partagé. C’est ce que j’ai fait, et là, le répertoire était toujours affiché dans OMV, impossible de l’effacer. J’ai fini par tout réinstaller !

Ce n’est pas interdit pour certaines commandes (comme le redémarrage d’un service ci-dessus), mais il faut savoir ce que l’on fait. En fait, tout ce qui touche la configuration d’OMV doit être dans la database, et des modifs directes sur le système casseront ce mécanisme.

Voilà, ce sera tout pour cette première étape. La suivante, ce sera d’installer PLEX server, et pour cela utiliser Docker. C’est bien, j’ai déjà entendu parlé de Docker sans jamais l’utiliser. Ce sera l’occasion de rentrer dans ce monde de « containers » (conteneurs logiciels en français) qui permettent entre autres de simplifier l’installation.

Ce sera pour le prochain épisode.

Au sujet de Docker, si vous l’installez, il peut être utile de le déplacer hors du disque système, si ce dernier est sur une carte microSD comme c’est mon cas.
Voir cet article : Openmediavault : déplacement de Docker

3 réflexions sur « ODROID-HC2 – Installation d’Openmediavault »

  1. Bonjour, une idée de comment mettre a jour Plex et open mediavault sans tout recommencer? Je veux dire le moyen le plus simple?

    1. Oui, j’ai un article en préparation sur le sujet, mais il n’est pas encore prêt. Il parlera de Nextcloud aussi…
      En bref, pour Plex, après plusieurs essais infructueux via Portainer, le plus simple est de récréer un nouveau container avec une commande docker run que tu mets dans un script.
      Voilà mon script par exemple :

      $ cat docker-plex2023.sh 
      docker run -d --name=plex2023 --net=host -e PUID=997 -e PGID=100 -e VERSION=docker -v /srv/dev-disk-by-label-DATA/AppData/Plex:/config -v /srv/dev-disk-by-label-DATA/OMV-DATA/Series:/Series -v /srv/dev-disk-by-label-DATA/OMV-DATA/Films:/Films -v /srv/dev-disk-by-label-DATA/OMV-DATA/Docus:/Docus lscr.io/linuxserver/plex:latest

      Tu arrêtes ton précédent container Plex, et tu lances le nouveau ! Et voilà… À adapter en fonction de tes dossiers bien sûr !!

      Concernant OMV lui-même, tu as deux commandes à exécuter :
      Mise à jour version courante :
      $ sudo omv-upgrade
      Mise à jour version suivante :
      $ sudo omv-release-upgrade

      Pour l’instant, je me suis contenté de la première, puisque tout fonctionne parfaitement, je me pencherai sur la mise à jour vers la version 6 quand j’aurai plus de temps !

Répondre à pascal Annuler la réponse

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