lundi 15 juin 2020

Réseau: Installer le système de fichier exfat sur un NAS QNAP TS-219 !

En fait, l'exFat n'est pas supporté en natif sur les NAS QNAP. Sur les dernières génération, on peut acheter un drivers exFat sur le site de QNAP et installer la licence pour en bénéficier... mais si votre NAS est trop ancien comme le mien (mais qu'il marche bien pour vos besoins comme pour moi), il n'y pas de solution officiel. Donc j'ai tenté de l'installer par moi même en m'inspirant de ce tuto même si ce n'est pas pour le même version de NAS et le même type de processeur: https://www.veggiespam.com/installing-exfat-on-qnap/
Dans mon cas, d'après les specs, c'est un processeur Marvell Kirkwood 6281 ARM-compatible cadencé à 1.2Ghz (c'est un ARM V5 )

Donc j'ai cherché des solutions et voici donc mon retour d'expérience sur cette version de NAS:


Et la commande SSH pour vérifier la version du Core linux :

[~] # cat /proc/version
Linux version 3.4.6 (root@U16BuildServer105) (gcc version 4.2.1) #1 Mon Oct 29 09:26:03 CST 2018

1) Sur le NAS, j'ai activé le SSH et j'ai vérifié que le compte "admin" est bien activé (regarder les screenshots pour trouver les bons menus si besoin)




2) Dans mon cas, après connexion en SSH au NAS en tant qu "admin", j'ai pu utiliser la commande opkg d'entware-ng comme expliqué dans cet article précédent pour installer l'exfat.
(je conseille aussi de faire un update à chaque fois pour avoir la mise à jour des packages dispo, j'ai eu le cas au début ou je n'avais pas trouvé certains packages et j'étais parti pour faire plus compliqué finalement :-(:

[~] # opkg update
Downloading http://pkg.entware.net/binaries/armv5/Packages.gz
Updated list of available packages in /opt/var/opkg-lists/packages
[~] # opkg install fuse-utils
Installing fuse-utils (2.9.7-1) to root...
Downloading http://pkg.entware.net/binaries/armv5/fuse-utils_2.9.7-1_armv5soft.i
Configuring fuse-utils.
[~] # opkg install extfat-fuse
Installing exfat-fuse (1.2.7-1) to root...
Downloading http://pkg.entware.net/binaries/armv5/exfat-fuse_1.2.7-1_armv5soft.i
Configuring exfat-fuse.
[~] # mount.exfat FUSE exfat 1.2.7 Usage: mount.exfat [-d] [-o options] [-V]

3) Donc pour tester, j'ai pris un clé USB en exFat 
(et j'ai créé un fichier "test.txt" avec quelques caractères à l'intérieur pour ne pas avoir un fichier vide.)
J'ai ensuite insérer celle ci en façade du NAS et dans l'interface web du QNAP on retrouve cela pour l'instant, la clé est vue mais pas monté parce que le file system est inconnu par la distribution linux du QNAP:


4)  Donc en SSH, il va falloir monter le device:
(Mais on va devoir choper son nom dans la command dmesg avant)

[~] # dmesg
......
[782848.099748] usb 1-1.1: new high-speed USB device number 6 using orion-ehci
[782848.329724] Using EHCI controller.
[782848.340173] scsi5 : usb-storage 1-1.1:1.0
[782849.873886] scsi 5:0:0:0: Direct-Access     Sony     Storage Media    0100 PQ: 0 ANSI: 0 CCS
[782849.973211] sd 5:0:0:0: [sdi] 31703040 512-byte logical blocks: (16.2 GB/15.1 GiB)
[782850.030096] sd 5:0:0:0: Attached scsi generic sg8 type 0
[782850.076618] sd 5:0:0:0: [sdi] Write Protect is off
[782850.081566] sd 5:0:0:0: [sdi] Mode Sense: 43 00 00 00
[782850.119503] sd 5:0:0:0: [sdi] No Caching mode page present
[782850.125107] sd 5:0:0:0: [sdi] Assuming drive cache: write through
[782850.248448] sd 5:0:0:0: [sdi] No Caching mode page present
[782850.254086] sd 5:0:0:0: [sdi] Assuming drive cache: write through
[782850.294746]  sdi: sdi1
[782850.352464] sd 5:0:0:0: [sdi] No Caching mode page present
[782850.358069] sd 5:0:0:0: [sdi] Assuming drive cache: write through
[782850.364312] sd 5:0:0:0: [sdi] Attached SCSI removable disk
[782850.369949] [#] set usb polling mode (sdi)

C'est donc sdi1 dans ce test.

On va donc créer le point de montage et monter la clé usb en exfat :

[~] # mkdir /mnt/ext-drive
[~] # mount.exfat /dev/sdi1 /mnt/ext-drive
FUSE exfat 1.2.7
[~] # 

Et pour tester un petit ls ;-)

[~] # ls -l /mnt/ext-drive
drwxrwxrwx    1 admin    administ     32768 Jan 27  2019 System Volume Information/
-rwxrwxrwx    1 admin    administ        95 Jun 15 11:13 test.txt*
[~] #

5) Maintenant c'est que visible en SSH, mais on peut déjà s'amuser à faire une copy pour tester :

[~] # cp -a /mnt/ext-drive/test.txt /share/Qrecordings
[~] #

Et on peut vérifier dans l'interface du NAS via FileStation et même l'ouvrir si on veut:


6) Donc c'est sympa mais on reste en ligne de commande pour l'instant et pas visible dans FileStation ou sur le réseau :
(pensez à faire un unmount si pas déjà fait avec la commande "umount /dev/sdi1" pour la suite)

Donc on va créer un répertoire partagé dans notre Volume existant :
(pour ma part, j'ai viré la corbeille réseau pour bien avoir un répertoire partagé vide par défaut et éviter des effets de bord ;-)



7) Donc maintenant, pour voir le contenu de ma clé USB en exfat,  il suffit de faire un point de montage au bon endroit sur "exFatUSBDrive" dans mon cas :

Mais pour cela, on va déjà vérifier où point le symlink en fesant :

[~] # ls -l /share/exFatUSBDrive
lrwxrwxrwx 1 admin administ 22 Jun 15 17:49 exFatUSBDrive -> MD0_DATA/exFatUSBDrive/

Et donc dans ce cas, nous allons monter sur "MD0_DATA/exFatUSBDrive/" mais en rajoutant /share/ devant ainsi :

[~] # mount.exfat /dev/sdi1 /share/MD0_DATA/exFatUSBDrive/
FUSE exfat 1.2.7

8) Et si on veut voir le contenu en SSH il faudra faire ainsi:

[~] # cd /share/exFatUSBDrive
[/share/exFatUSBDrive] # ls
System Volume Information/ test.txt*
[/share/exFatUSBDrive] #

On voit donc le résultat aussi dans file station ou sur le réseau directement (après un petit refresh si besoin ;-):



9) Donc maintenant, j'ai fait des tests de copie local entre le NAS et le support USB, et de différentes manières:
(avec une ROM de Dreamcast et pas n'importe laquelle, retrogaming oblige ;-)

Depuis File Station de "ROMS" à "exFatUSBDrive" : 11,25 Mo/s (967,68 Mo en 86s)


Depuis File Station de "exFatUSBDrive" à "BACKUPS" : 7,44 Mo (967,68 Mo en 130s)


Depuis un PC de "BACKUPS" à "exFatUSBDrive" : Planté !!!! cela passe pour un petit fichier mais pas un gros comme celui ci .... parce que l'on passe par le PC et le réseau surement ?!



Depuis un PC de "exFatUSBDrive" à "BACKUPS" :  cela a marché dans ce cas, mais c'est super lent !!! entre 1 & 5 Mo/s


Depuis le PC mais avec la clé USB dans le PC pour une copie sur le NAS dans "BACKUPS". 
c'est lent aussi  !!! entre 3 & 6 Mo/s




10) Conclusion:

Cela vaut bien le coût de brancher son disque en exFat sur le port USB d'un NAS QNAP TS-219 et d'y passer un certains temps pour que cela marche... on va donc 2 fois plus vite même si c'est que de l'USB 2.0 !
 
Attention, si on redémarre le NAS.... et bien cela ne perd pas tout ce que l'on a installé, il faut juste monter le drive usb en exFat à la demande ;-)

Maintenant, je vais voir si je peux automatiser (à terme) le montage du disque ou du moins avec un script lançable à partir de ma domotique pour aller plus vite !

Enjoy !