
Utiliser un RasberryPi 3b+ comme NAS avec 2 SSD branché en USB, le SSD1 sera la sauvegarde principale, le SSD2 sera la copie du 1 réalisé grâce à une crontab.
Option en fin d’article : surveiller les performances du RasberryPi avec Home Assistant (possibilité d’envoie de message d’alarme en cas de panne).
Disques formatés en EXT4.
Merci à « Mon Linux : Linux en plus simple » pour sa vidéo YouTube : https://www.youtube.com/watch?v=KuvJRRr3MdI
Ainsi qu’a claude.ai
Procédure :
Installer un RPI OS sans desktop en 64bits grâce à Rapberry Pi Imager.
Brancher les SSD sur un hub usb alimenté (en effet, le RPi n’est pas assez puissant pour alimenter 2 SSD).
Accéder au RPi en ssh.
Commande : lsblk pour connaitre les disques branchés sur le rpi.
Étape 1 : trouver l’UUID de chaque SSD
sudo blkid
Repèrer les lignes correspondant aux deux SSD (souvent /dev/sda1 et /dev/sdb1), et note leur UUID=”….”.
Exemple :
rpinas2@rpinas2:\~ $ sudo blkid
/dev/mmcblk0p1: LABEL\_FATBOOT=”bootfs” LABEL=”bootfs” UUID=”8353-AFC3″ BLOCK\_SIZE=”512″ TYPE=”vfat” PARTUUID=”59fbf974-01″
/dev/mmcblk0p2: LABEL=”rootfs” UUID=”742cc985-e7e0-4f2f-a149-e118c8888b6f” BLOCK\_SIZE=”4096″ TYPE=”ext4″ PARTUUID=”59fbf974-02″
/dev/sdb1: UUID=”dfe16997-d673-431f-8535-fca346bc4d55″ BLOCK\_SIZE=”4096″ TYPE=”ext4″ PARTUUID=”b1b50fea-84bb-4d68-8fd8-fe8f8250096c”
/dev/sda1: UUID=”30293d96-e360-468c-a538-6b466b467525″ BLOCK\_SIZE=”4096″ TYPE=”ext4″ PARTUUID=”638c4b55-4922-488b-b4b5-a0b473a15db1″
Étape 2 : créer les points de montage
sudo mkdir -p /mnt/ssd1 /mnt/ssd2
(Renommer ssd1/ssd2 comme vous le souhaitez — par exemple /mnt/Data et /mnt/Backup si vous souhaitez des noms plus parlants pour le partage Samba plus tard.)
Étape 3 : ajouter les lignes dans fstab
nano /etc/fstab
# proc filesystem
proc /proc proc defaults 0 0
# boot partition
PARTUUID=59fbf974-01 /boot/firmware vfat defaults 0 2
# root filesystem
PARTUUID=59fbf974-02 / ext4 defaults,noatime 0 1
# ssd1
UUID=dfe16997-d673-431f-8535-fca346bc4d55 /mnt/ssd1 ext4 defaults,noatime,nofail 0 2
# ssd2
UUID=30293d96-e360-468c-a538-6b466b467525 /mnt/ssd2 ext4 defaults,noatime,nofail 0 2
Explication des options :
defaults : options standard de montage
noatime : n’écrit pas la date de dernier accès à chaque lecture de fichier — moins d’usure sur le SSD, meilleure perf (comme sur ta ligne racine /)
nofail : important — si le disque USB n’est pas détecté au démarrage (débranché, panne), le Pi démarre quand même au lieu de bloquer sur l’attente du montage.
Étape 4 : appliquer sans redémarrer
sudo mount -a
Ça montera les deux disques immédiatement. Vérifie avec df -h que /mnt/ssd1 et /mnt/ssd2 apparaissent bien.
Étape 5 : Installer samba
sudo apt update
sudo apt install samba samba-common-bin
Paramétrage : smb.conf
sudo nano /etc/samba/smb.conf
rpinas2@rpinas2:\~ $ nano /etc/samba/smb.conf
[global]
workgroup = WORKGROUP
map to guest = never
server string = rpinas2
netbios name = rpinas2
security = user
dns proxy = no
client min protocol = SMB2
client max protocol = SMB3
#===================== Share Definitions =======================
[ssd1]
path = /mnt/ssd1
browseable = yes
read only = no
valid users = rpinas2
create mask = 0660
directory mask = 0770
force user = rpinas2
[ssd2]
path = /mnt/ssd2
browseable = yes
read only = no
valid users = rpinas2
create mask = 0660
directory mask = 0770
force user = rpinas2
Étape 6 : Définir un mot de passe Samba pour l’utilisateur
sudo smbpasswd -a nomdutilisateur
Redémarrer samba :
sudo systemctl restart smbd
Étape 7 : Sauvegarde périodique grâce à crontable
nano /home/rpinas2/backup_nas.sh
Coller :
#!/bin/bash
# Script de sauvegarde : /mnt/ssd1 -> /mnt/ssd2
SOURCE=”/mnt/ssd1/”
DEST=”/mnt/ssd2/”
LOGFILE=”/var/log/backup_nas.log”
echo “=== Sauvegarde démarrée : $(date) ===” >> “$LOGFILE”
rsync -a –delete “$SOURCE” “$DEST” >> “$LOGFILE” 2>&1
if [ $? -eq 0 ]; then
echo “Sauvegarde terminée avec succès : $(date)” >> “$LOGFILE”
else
echo “ERREUR pendant la sauvegarde : $(date)” >> “$LOGFILE”
fi
echo “” >> “$LOGFILE”
Le rendre exécutable : chmod +x /home/rpinas2/backup_nas.sh
Lancer manuellement pour vérifier que ça fonctionne sans erreur :
sudo /home/rpinas2/backup_nas.sh
Regarder le résultat : cat /var/log/backup_nas.log
Ajouter une tache cron :
sudo crontab -e (choisir nano si demandé)
Ajouter cette ligne à la fin du fichier : 0 \*/3 \* \* \* /home/rpinas2/backup_nas.sh
Cela lance le script toutes les 3 heures.
Donner les droits en écriture sur les disques. Par défaut ils sont uniquement pour root.
Pour ssd1
sudo chown rpinas2:rpinas2 /mnt/ssd1
sudo chmod 770 /mnt/ssd1
Faire la même chose pour ssd2
sudo chown rpinas2:rpinas2 /mnt/ssd2
sudo chmod 770 /mnt/ssd2
Etape 8 : Accéder au nas depuis l’explorateur de fichier Windows.
Dans la barre de lien de l’explorateur de fichier, taper : \\ip-du-rpi-nas
Donner l’identifiant et le mot de passe choisi à l’étape 6.
Les deux disques s’affichent dans le volets de droite.
Clic droit sur le premier ssd, « connecter un lecteur réseau » lui donner une lettre.
Même opération pour le deuxième ssd.
Optionnel :
Étape 9 : Suivre le fonctionnement du RPinas grâce à Glances avec Home Assistant
Le fait surveiller le Rpinas sur HA, permettra ultérieurement grâce à une automatisation, d’envoyer une alerte si un ssd ou le Rpinas tombent.
Installer pip install :
sudo apt install -y python3-pip
Installer glances :
sudo pip install glances[web] –break-system-packages
Lancer glances :
glances -w
Vérifier fonctionnement en ouvrant `http://ip-du-rpi-nas:61208` sur un navigateur.
Arrêter avec Ctrl+C, on va le transformer en service permanent.
Créer un fichier :
sudo nano /etc/systemd/system/glances.service
Coller :
[Unit]
Description=Glances monitoring
After=network.target
[Service]
ExecStart=/usr/local/bin/glances -w
Restart=always
User=root
[Install]
WantedBy=multi-user.target
Vérifier le chemin de glances avec `which glances` si besoin corriger ExecStart
Activer et démarrer le service :
sudo systemctl daemon-reload
sudo systemctl enable glances
sudo systemctl start glances
Vérifier que ça tourne : sudo systemctl status glances
Ou http://ip-du-rpi-nas:61208
Ainsi, Glances démarre automatiquement à chaque redémarrage du Pi.
Intégration dans Home Assistant (HA)
Dans HA : **Paramètres > Appareils et services > Ajouter une intégration** > cherche **Glances**. Renseigne l’IP du RPi (192.168.1.xxx) et le port 61208. HA détectera automatiquement les capteurs disponibles : espace disque par partition (/mnt/ssd1, /mnt/ssd2), utilisation CPU/RAM, uptime, etc.
Fred S.
