La Freebox HD est équipée d'un disque dur généralement utilisé pour stocker vidéos, musiques et images puis les consulter directement depuis son téléviseur.
L'accès à ce disque dur depuis un autre ordinateur se fait via FTP (avec la récente Freebox Server, le SMB/CIFS peut également être utilisé).
L'utilisation du FTP pour transférer des fichiers sur le disque dur de ma Freebox HD est relativement très aisé mais j'avais envie de quelque chose de plus "direct".
Il est possible de "monter" un dossier originellement accessible via FTP, directement dans le FS de son système d'exploitation.
Sous Linux, cela peut se faire avec curlftpfs (qui utilise FUSE et cURL) et la commande suivante :
curlftpfs ftp://fqdn_ou_IP_serveur_FTP/dossier /dossier/où/monter/le/dossier/FTP
Avec une Freebox HD ayant le serveur FTP activé et configuré pour autoriser les connexions anonymes, la commande permettant de monter le disque dur dans le dossier "/mnt/Freebox" serait :
curlftpfs ftp://hd1.freebox.fr/Disque dur/ /mnt/Freebox
Ensuite, la copie d'un fichier sur le disque dur de la Freebox se fait exactement comme si le disque était directement branché à notre ordinateur (comme n'importe quel disque IDE, SATA, USB ou FireWire).
Tout accès au dossier "/mnt/Freebox" et à ses sous-dossiers sera répercuté sur le dossier "Disque dur" du serveur FTP.
Chez moi, ma Freebox HD n'est pas constamment allumée ni même en veille car je la débranche dès que je n'en ai plus besoin : consommation électrique inutile évitée.
L'ennui est qu'une fois celle-ci allumée, si je veux y copier un fichier, il faut que je remonte son HDD via la commande donnée plus haut.
Afin de simplifier ma tâche, j'ai fait un script qui exécute la commande dès que la Freebox HD est allumée.
#!/bin/bash # Monte/démonte le serveur FTP de la Freebox dans un dossier ($MOUNT_PATH) # @author DUVERGIER Claude # @date 2011-03-23 # # Références : # - Utiliser la FreeboxHD comme un disque dur local sous linux : http://wiki.freeplayer.org/index.php?title=Utiliser_la_FreeboxHD_comme_un_disque_dur_local_sous_linux # - determine if tcp port is open : http://www.commandlinefu.com/commands/view/8075/determine-if-tcp-port-is-open # - Bash-Check If FS is Already Mounted On Directory : http://www.linuxquestions.org/questions/programming-9/bash-check-if-fs-is-already-mounted-on-directory-137282/ # - Capturing program return codes in a bash script? : http://www.technologyquestions.com/technology/linux/218765-capturing-program-return-codes-bash-script.html FTP_HOST="hd1.freebox.fr" FTP_LOGIN="" #TODO: FTP_PWD="" #TODO: MOUNT_PATH="/mnt/FreeboxHD/" if (nc -zw2 $FTP_HOST 21); then # Serveur disponible mountpoint -q "$MOUNT_PATH" if [ $? -ne 0 ]; then # Si mountpoint n'a pas retourné 0, c'est donc que "$MOUNT_PATH" n'est pas un point de montage echo "Mounting..." curlftpfs ftp://$FTP_HOST "$MOUNT_PATH"; # On monte fi else # Serveur non disponible #BUG: Si monté mais serveur FTP indisponible, mountpoint se bloque #BUGFIX: Ne pas appeler mountpoint, fusermount se plaindra que $MOUNT_PATH n'est pas monté ("fusermount: /some/folder/ not mounted") #mountpoint -q "$MOUNT_PATH" #if [ $? -eq 0 ]; then # Si mountpoint a retourné 0, c'est donc que "$MOUNT_PATH" est un point de montage echo "Unmounting..." fusermount -u -z "$MOUNT_PATH"; # On démonte #fi fi
Le principe est simple :
- La disponibilité du serveur FTP est testé via
netcat
(le délai de réponse alloué au serveur est de 2 secondes ce qui devrait suffire sur un réseau local non surchargé). - Si le serveur FTP est prêt, le point de montage est vérifié via
mountpoint
, afin de ne pas remonter le serveur FTP s'il l'est déjà. - Si le point de montage n'est pas déjà utilisé, le disque dur de la Freebox HD est monté via
curlftpfs
. - Si le serveur FTP n'est pas prêt (
nc -z
a retourné autre chose que0
), alors le dossier FTP est démonté viafusermount
.
Dans mon installation, ce script est appelé par cron toutes les 3 minutes (choix personnel : rien n'empêche d'appeler le script toutes les minutes si on veut).
J'espère qu'il vous aidera pour une tâche ou une autre sachant qu'il fonctionne avec n'importe quel serveur FTP et non pas seulement une Freebox HD ou Freebox Server.
Si vous avez besoin de monter un espace disque FTP nécessitant une identification, vous n'avez qu'à rajouter le couple identifiant - mot de passe dans la ligne de curlftpfs
.
27 août 2011 15:39
Bonjour,
J'ai tenté la manip avec ma freebox revolution en remplacant "hd1.freebox.fr" par http://mafreebox.freebox.fr/ mais rien n'y fait, je n'ai pas de mot de passe ftp. Une solution à m'apporter ?
Merci
16 septembre 2011 01:47
L'adresse http://mafreebox.freebox.fr n'est pas une adresse de serveur FTP mais l'URL pour l'accès à l'interface de configuration/administration de la Freebox Server : ce qui va permettre d'activer le serveur FTP.
Une fois dans l'interface, aller à l'onglet "NAS" puis "FTP".
Là, vérifier que le mode FTP est bien activé et que les connexion anonymes/invité sont bien autorisées.
Je n'ai pas de Freebox Server sous la main pour donner plus de détails, mais l'idée y est.
Au besoin, va voir sur les pages d'assistance de free.fr : http://www.free.fr/assistance/2517-comment-acceder-a-l-espace-de-stockage.html
Note que la Freebox Server intègre un serveur SaMBa (activé par défaut il me semble) et qu'il est encore plus simple de monter ce partage sur ta machine GNU/Linux (SMB étant plus propre que le FTP pour ce genre d'utilisation) :
$ mount -t smbfs "//mafreebox.freebox.fr/Disque Dur" /mnt/FreeboxHD/
(Je me note de modifier le script pour intégrer ce genre de connexion)
13 mars 2012 03:58
En voulant partager ce point de montage via Samba je me suis rendu compte qu'il n'était pas lisible par un autre utilisateur que celui l'ayant monté (souvent root dans mon cas).
Après un peu de recherche voici la solution :
user_allow_other
" de FUSE en modifiant le fichier "/etc/fuse.conf
"allow_other
", "uid
" et "gid
" à la ligne de "curlftpfs
". Elle devient donc :curlftpfs -o allow_other,uid=$USER_ID,gid=$GROUP_ID ftp://$FTP_HOST "$MOUNT_PATH";
(où
$USER_ID
et$GROUP_ID
contiennent les ID de, respectivement, l'utilisateur et le groupe auquel appartiendra le point de montage FTP)(Merci à seb_7 du site ubuntu-fr.org qui a posté sa solution.)
23 février 2015 22:05
Merci pour cette astuce fort utile!