Document : Déplacer les données Nextcloud sur un support externe

Déplacer les données Nextcloud sur un support externe

  • admin
  • Debian, Nextcloud, Raspberry Pi

Pour augmenter la capacité de stockage de votre instance Nextcloud, l'utilisation d'un disque dur ou SSD externe USB est recommandée. Ce guide vous accompagne pas à pas pour la préparation du support et le déplacement du répertoire de données en toute sécurité.

Préparation et formatage du support externe

Avant de pouvoir accueillir les données de Nextcloud, votre support USB doit être préparé avec une table de partition et formaté avec un système de fichiers Linux (ext4).

Branchez votre support (clé USB ou disque) sur l'un des ports de votre Raspberry Pi, puis listez les disques connectés pour repérer le vôtre :

# Affiche l'arborescence des disques et partitions connectés
lsblk

Vous devriez voir apparaître votre carte microSD (généralement mmcblk0) et votre nouveau support USB (souvent identifié comme sda ou sdb).

Vérification du lecteur

Prenez le temps de bien identifier le nom de votre périphérique USB (ex: sda). Formater le mauvais disque entraînera une perte de données irréversible. Dans les commandes suivantes, remplacez si besoin sda par l'identifiant réel de votre support.

Création de la partition avec fdisk

Nous allons utiliser l'outil fdisk pour créer une nouvelle partition sur le disque complet (/dev/sda) :

# Lance l'utilitaire de partitionnement sur le disque sda
sudo fdisk /dev/sda

Avertissement sur la signature

Si votre support était précédemment formaté sous Windows, fdisk affichera un message du type : "The device contains 'vfat' signature". C'est parfaitement normal. Les manipulations suivantes vont écraser cet ancien format pour préparer le disque pour Linux.

Une fois dans l'invite de commande de fdisk, tapez séquentiellement les touches suivantes, en validant avec la touche Entrée à chaque fois :

  1. Tapez g pour créer une nouvelle table de partition GPT (le standard moderne, recommandé pour les disques de grande capacité).
  2. Tapez n pour ajouter une nouvelle partition.
  3. Appuyez sur Entrée trois fois de suite pour accepter les valeurs par défaut (numéro de partition, premier secteur, dernier secteur).
  4. Tapez w pour écrire les modifications sur le disque et quitter fdisk.

Formatage de la partition

Maintenant que la partition /dev/sda1 a été créée proprement, nous pouvons la formater avec un système de fichiers Linux. L'utilisation du format ext4 est indispensable car il gère correctement les permissions utilisateurs requises par Nextcloud, contrairement aux formats FAT32 ou exFAT.

# Formate la nouvelle partition en ext4
sudo mkfs.ext4 /dev/sda1

Le formatage d'une clé USB est très rapide, mais l'opération peut durer quelques minutes sur un disque dur mécanique de grande capacité.

Création du point de montage et configuration du fstab

Pour que le système Linux puisse accéder au contenu de votre support externe, il doit être "monté" dans l'arborescence. Nous allons créer un dossier dédié dans /mnt, un répertoire traditionnellement réservé aux disques externes.

# Crée le répertoire servant de point de montage
sudo mkdir -p /mnt/storage

Nous allons ensuite configurer le montage automatique au démarrage. Pour cela, nous avons besoin de l'identifiant unique de la partition, qui reste stable contrairement au nom /dev/sda1 (qui peut changer si vous branchez d'autres périphériques).

# Affiche l'identifiant unique (UUID) de la nouvelle partition
sudo blkid /dev/sda1

Sélectionnez et copiez la chaîne de caractères située après UUID= (sans les guillemets).

Maintenant, modifiez le fichier de configuration des points de montage (fstab) :

# Ouvre le fichier fstab avec nano
sudo nano /etc/fstab

Naviguez jusqu'à la fin du fichier et ajoutez la ligne suivante. Prenez soin de remplacer le UUID d'exemple par le vôtre :

# Montage automatique du support externe
UUID=1234abcd-12ab-34cd-56ef-1234567890ab /mnt/storage ext4 defaults,noatime,nofail,x-systemd.device-timeout=5 0 2

Comprendre les options de montage

  • ext4 : Le système de fichiers défini lors du formatage.
  • defaults : Applique les options standards (lecture/écriture, exécution de scripts...).
  • noatime : Désactive l'écriture de l'heure d'accès lors de la lecture d'un fichier, allongeant la durée de vie des clés USB et SSD.
  • nofail et timeout=5 : Permettent au Raspberry Pi de démarrer normalement sans rester bloqué si le disque dur tombe en panne ou est débranché.

Enregistrez les modifications (Ctrl+O, Entrée, puis Ctrl+X).

Pour que le système prenne en compte cette nouvelle configuration et l'applique immédiatement sans nécessiter de redémarrage, exécutez ces deux commandes à la suite :

# Force le gestionnaire de services à relire le fichier fstab
sudo systemctl daemon-reload

# Monte tous les systèmes de fichiers définis dans le fstab
sudo mount -a

Vérifiez ensuite que votre disque est bien monté et associé au bon répertoire avec la commande :

# Affiche l'espace disque disponible et les points de montage
df -h

Votre support /dev/sda1 devrait apparaître dans la liste, monté sur /mnt/storage. Si c'est le cas, votre disque est prêt à accueillir les données de Nextcloud.

Déplacement des données vers le nouveau support

Avant de déplacer le moindre fichier, il est impératif de figer l'état de votre cloud. Toute modification de fichier ou synchronisation en cours pendant le transfert risquerait de corrompre votre base de données.

Mise en maintenance de Nextcloud

Nous allons utiliser l'outil en ligne de commande de Nextcloud (occ) pour activer le mode maintenance.

Placez-vous dans le répertoire d'installation de votre instance, puis lancez la commande :

# Se place dans le répertoire racine de l'installation
cd /var/www/nextcloud

# Active le mode maintenance avec les droits de l'utilisateur web
sudo -u www-data php occ maintenance:mode --on

Une fois validée, Nextcloud bloquera tout accès (web et applications) en affichant une page de maintenance.

Copie du répertoire de données avec rsync

Si vous avez suivi le précédent guide d'installation, votre répertoire de données a été placé par sécurité en dehors de la racine du serveur web. Son chemin est /var/nextcloud_data. C'est ce dossier que nous allons transférer vers notre nouveau disque /mnt/storage.

Nous utiliserons rsync, l'outil le plus fiable sous Linux pour ce type d'opération. Il préserve rigoureusement les permissions des fichiers et garantit l'intégrité de la copie.

# Copie le dossier des données vers le support externe avec préservation des droits (-a) et affichage de la progression (-v)
# Attention à ne pas mettre de barre oblique (slash) à la fin de nextcloud_data
sudo rsync -av /var/nextcloud_data /mnt/storage/

Durée du transfert

Le temps de copie dépendra du volume de fichiers présents sur votre carte microSD et de la vitesse de votre support USB. Patientez jusqu'à ce que le terminal vous rende la main.

Le répertoire a maintenant été copié sous le nom /mnt/storage/nextcloud_data. Une fois l'opération terminée, assurez-vous que l'utilisateur du serveur web (www-data) est toujours bien le propriétaire de ces fichiers sur le nouveau disque :

# Applique récursivement les droits de propriété à l'utilisateur www-data sur le nouveau dossier
sudo chown -R www-data:www-data /mnt/storage/nextcloud_data

Mise à jour de la configuration de Nextcloud

Maintenant que vos données sont copiées en toute sécurité sur le nouveau support, il faut indiquer à Nextcloud leur nouvel emplacement.

Ouvrez le fichier de configuration principal de votre instance :

# Édite le fichier de configuration de Nextcloud
sudo nano /var/www/nextcloud/config/config.php

Recherchez la ligne qui définit l'option datadirectory et remplacez l'ancien chemin par le nouveau :

# Modifiez cette ligne :
'datadirectory' => '/var/nextcloud_data',

# Pour qu'elle corresponde à votre nouveau disque :
'datadirectory' => '/mnt/storage/nextcloud_data',

Enregistrez les modifications (Ctrl+O, Entrée, puis Ctrl+X).

Désactivation du mode maintenance

Tout est désormais en place. Vous pouvez réactiver l'accès à votre cloud en désactivant le mode maintenance :

# Retourne dans le répertoire de Nextcloud si vous n'y êtes plus
cd /var/www/nextcloud

# Désactive le mode maintenance
sudo -u www-data php occ maintenance:mode --off

Connectez-vous à l'interface web de votre Nextcloud pour vérifier que tout fonctionne correctement. Rendez-vous dans les paramètres d'administration, à la rubrique Système : l'espace disque disponible doit maintenant correspondre à la capacité de votre nouveau support USB. N'hésitez pas à téléverser un nouveau fichier pour confirmer que les droits d'écriture sont corrects.

Dès que vous avez validé le bon fonctionnement de votre instance, vous pouvez supprimer l'ancien répertoire de données pour libérer l'espace sur la carte microSD de votre Raspberry Pi :

# Supprime définitivement l'ancien répertoire de données
sudo rm -rf /var/nextcloud_data

Votre instance Nextcloud exploite désormais pleinement votre nouveau disque. Vous disposez non seulement d'un espace de stockage considérablement élargi, mais vous préservez également la durée de vie de la carte microSD de votre Raspberry Pi en y limitant les cycles d'écriture.