Table of Contents
Nous insérons la carte SD dans l'emplacement prévu à cet effet dans le Raspberry PI, nous branchons le disque dur à un des ports USB. Nous relions le Raspberry Pi à notre réseau local par un câble ethernet. Enfin nous branchons l'alimentation pour qu'il démarre.
Accéder à Nextcloud sur le réseau local
Il va falloir trouver le serveur Nextcloud sur le réseau local. C'est l'interface d'administration de notre box ou de notre routeur qui va nous l'indiquer. Notre box doit pouvoir vous afficher les équipements connectés. Voir ce tutoriel éventuellement. Le serveur s'appelle nextcloudpi. Notons son adresse IP. Avec Windows il faut un petit utilitaire pour ouvrir un terminal sur le Raspberry. Téléchargeons donc putty ici : https://www.putty.org/. Le plus simple est de l’enregistrer sur le bureau. Ouvrons putty.
Dans Host name (or IP Address) saisissons l'adresse IP du Raspberry. Cochons SSH puis bouton Open. Les boutons Save et Load permettent de sauvegarder les paramètres de la session pour ne pas ressaisir l'adresse à chaque connexion. Un terminal s'ouvre sur le Raspberry :
login as:
Le nom d'utilisateur est pi, le password : raspberry. Mais tous les acheteurs aurons ce même nom et mdp. Pour la sécurité, la première chose à faire est de créer un nouvel utilisateur.
Création d’un nouvel utilisateur
Pour cela il faut se mettre en administrateur avec la commande sudo. sudo adduser clouduser pour créer un nouvel utilisateur nommé clouduser et lui attribuer un mot de passe. Les autres renseignements sont sans importance.
pi@nextcloudpi:~ $ sudo adduser clouduser
Attention clouduser n'est pas un administrateur et ne pourra pas utiliser la fameuse commande sudo. Faisons en un administrateur :
pi@nextcloudpi: $ sudo nano /etc/sudoers.d/020_clouduser-nopasswd
Cette commande nous amène dans l'éditeur nano où nous saisirons la ligne :
clouduser ALL=(ALL) NOPASSWD: ALL
Pour enregistrer ce que nous venons de faire [Ctrl] + [O] et pour quitter l'éditeur [Ctrl] + [X].
Nous allons redémarrer notre serveur nextcloud avec
pi@nextcloudpi: $ sudo shutdown -r now
Une fois qu'il aura redémarré nous nous connectons avec putty, mais cette fois-ci en tant que clouduser.
Vous pouvez bien entendu choisir un autre nom que clouduser mais attention de le remplacer dans toutes ses occurrences.
Préparation du disque dur
Pour commencer nous allons trouver le périphérique :
clouduser@nextcloudpi:~ $ sudo fdisk -l
fdisk nous liste tous les périphériques de stockage présents sur le système.
Nous trouvons notamment un périphérique (device) /dev/mmcblk0 de 14,9 Gigaoctets. C'est la carte SD sur laquelle a démarré notre nexcloudpi. Il y a aussi un disque dur /dev/sda avec une partition /dev/sda1 mais formatée en NTFS (Windows). Il va donc falloir le formater. Premièrement nous allons supprimer la partition Windows.
clouduser@nextcloudpi:~ $ sudo fdisk /dev/sda
Nous entrons de manière interactive dans la commande fdisk. Il suffira de taper chaque fois une lettre et valider pour saisir une commande.
- d pour supprimer la partition Windows. Si votre disque contient plusieurs partitions il faudra recommencer autant de fois que nécessaire. fdisk vous le proposera.
- n pour créer une nouvelle partition ensuite il y a une série de paramètres à valider. Les options par défaut seront toujours valables.
- w pour écrire ces modifications sur le disque.
Ensuite il faudra formater cette partition en ext4 pour Linux :
clouduser@nextcloudpi:~ $ sudo mkfs -t ext4 /dev/sda1
Transfert du système sur le disque dur
Pour l'instant seule la carte SD est reconnue par le système. Nous allons maintenant transférer celui-ci sur le disque dur en laissant la partition /boot sur la carte SD pour permettre le démarrage du système.
Vérifions d'abord la carte SD avec la commande sudo fdisk -l.
La partition /dev/mmcblk0p1 est formatée en FAT32. C'est elle qui permet le démarrage. La partition /dev/mmcblk0p2 contient le système. Nous allons la copier sur le disque dur.
clouduser@nextcloudpi:~ $ sudo dd bs=4M conv=noerror if=/dev/mmcblk0p2 of=/dev/sda1
Vérifions l'état de cette partition.
clouduser@nextcloudpi:~ $ sudo e2fsck -pv /dev/sda1
Mais comme nous avons copié une partition de carte SD de 15 Go sur un disque dur, le système n'utilisera que ces 15 Go. Il faut donc redimensionner la partition pour utiliser l'ensemble du disque dur.
clouduser@nextcloudpi:~ $ sudo resize2fs /dev/sda1
Et pourquoi ne pas refaire une vérification avec e2fsck (voir plus haut).
Si le système nous répond clean tout va bien. Nous allons maintenant modifier le démarrage pour que le système soit configuré sur le disque dur. D'abord récupérer les paramètres de la partition /dev/sda1 avec la commande sudo blkid.
Notons le PARTUUID de la partition disque dur, dans l'exemple 319d3443-01. Nous allons maintenant modifier le ficher fstab qui indique à Linux où trouver les différents systèmes de fichier.
clouduser@nextcloudpi:~ $ sudo nano /etc/fstab
La première ligne indique la partition de démarrage (/boot). Pour la deuxième remplaçons le PARTUUID par celui de la partition disque dur. [Ctrl] + [O] pour sauvegarder puis [Ctrl] + [X] pour quitter.
Il va falloir modifier également le fichier /boot/cmdline.txt :
clouduser@nextcloudpi:~ $ sudo nano /boot/cmdline.txt
Modifions là aussi le PARTUUID root=PARTUUID=...........
ddwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=319d3443-01 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
Si nous sommes arrivés à faire tout cela en tant que clouduser, il est temps de supprimer l'utilisateur pi présent sur tous les raspberry.
clouduser@nextcloudpi:~ $ sudo deluser pi
Il n'y a plus qu'à redémarrer le serveur nextcloud par sudo reboot.
Pour continuer
bonjour j’essaye de transformer mon raspberry en cloud, je suis novice mais l’explication est bien claire, merci à vous. Je bloque à l’étape « sudo dd bs=4M conv=noerror if=/dev/mmcblk0p2 of=/dev/sda1 » où je n’ai aucune réaction et j’ai que la possibilité de faire entrer et continuer à taper un texte sans conséquences.
Faut il attendre un certain temps, la copie du root ?
cordialement
enrique
Copie de la partition mmcblk0p2 de la carte SD vers le disque dur. C’est effectivement long. Attendre au moins quelques dizaines de minutes.
Ok, merci à vous, en effet entre temps j’ai attendu et ca a marché
Bonjour, J’ai suivi en parti votre procédure rudement bien faite. Cependant je souhaiterai savoir comment faire pour…
Je possède 2 DD en usb, j’ai établi un raid 1 en suivant une autre procédure. mais je ne vois pas comment et ou dire a nextcloud que sa nouvelle localisation de fichier est situé sur l’un des 2 DD
que dois je changer ? le datadir ou database ?( et quoi y mettre) /dev/sda1 ? /dev/sdb1 ? /dev/md0 ?
je souhaite que ma carte SD garde le systeme d’exploitation et que mes disque dur soient la pour les données.
Votre aide serait très précieuse.
par avance merci
cdlt
En principe il faut éditer le fichier config.php de Nextcloud. Modifier la variable datadirectory.
sudo nano /var/www/nextcloud/config/config.php
Mais on ne peut pas donner /dev/sda1 ou /dev/sdb1. Ce sont des noms de périphériques. Il faut monter les périphériques dans le système de fichier et modifier le fichier fstab pour qu’ils soient montés à chaque démarrage du système.
J’ai remplacé mon PARTUUID dans sudo nano /etc/fstab et dans /boot/cmdline.txt
mais au reboot j’ai un défaut de type : end kernel panic – not syncing VFS unable to mount root fs on unknow block….
Pourriez vous me détailler ce passage svp ?
« Il faut monter les périphériques dans le système de fichier et modifier le fichier fstab pour qu’ils soient montés à chaque démarrage du système. » ?
Merci pour ce tuto !
Ne faudrait-il pas mettre à jour avec
sudo apt update
puis
sudo apt upgrade
avant d’aller plus loin ?
Je suis en train de construire mon nextcloud, je bute sur la changement d’adresse ip, impossible de retrouver mon pi dans le réseau…
Ce serait effectivement une bonne initiative.
Bonjour,
Créer un utilisateur clouduser n’est pas suffisant, effectivement le compte administrateur pi existe toujours, il faut utiliser la commande « passwd » (si connecter en pi) pour changer le mot de passe de pi .
Bonjour,
Merci pour ce tuto fort utile. Je me demandais s’il n’y avait pas une petite erreur à l’étape de l’édition du fichier fstab. Ne devrait-on pas éditer le fstab qui se trouve sur le disque externe destiné à remplacer la carte uSD? En suivant votre tutoriel, à cette étape, /etc/ se trouve sur la carte uSD et non sur le disque. Modifier le fichier sur la uSD n’est pas problématique car au « reboot » suivant, s’est sur le disque externe que le système sera exécuté, mais par contre vu que le fichier fstab du disque externe n’a pas été changé, c’est la partition de la uSD qui sera « mounter » en /.
Effectivement.
Apparemment c’est le fichier /boot/cmdline.txt particularité du raspberry qui fait le boulot.
as tu trouvé la solution j’ai exactement le même soucis après remplacement du PARTUUID
Bonjour,
Quel est l’intérêt de transférer le système sur le disque dur ?
Pourquoi ne pas le laisser sur la carte SD ?
Bonjour et merci pour ces super tutos! Lors de la copie du système sur le SSD (>10h) rien ne se passe sur le prompt putty et je me sens obligé de reboot pour réexaminer le disque. Une idée sur la cause de cette inactivité apparente et comment s’assurer que la copie a bien eu lieu? Merci ++
Si rien ne se passe sur le prompt putty, il faut vérifier si le raspberry s’est lancé.
Sur Windows lancer cmd (bouton droit sur le menu Windows puis Exécuter. Exécuter la commande ping avec l’adresse IP du Raspberry. S’il ne répond pas c’est qu’il n’a pas démarré.
Merci, je réessaie. Par ailleurs, j’attends un pi 5, je vais pouvoir tester avec un nvme