Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

Sauvegarde Raspberry vers un Nas synology
#1

Bonjour,
je souhaite faire une sauvegarde de ma carte sd complète, j'ai trouvé plusieurs méthodes mais qui ne me conviennent pas pour le moment :

- clonage de la carte sd vers une autre carte sd (rpi-clone)
- sauvegarder la carte sous windows avec win32diskimager

mais forcément ce n'est pas ce que je souhaite (je n'ai pas envie d'éteindre le rasp pour faire la copie de sd) et la solution rpi-clone fait une copie d'une carte sd vers une autre carte sd.
Je pense donc faire une sauvegarde en utilisant dd, j'ai d'abord créé un utilisateur rasp sur mon nas puis monté un lien vers le répertoitre désiré (rien que cela il m'a fallu une matinée lol), ce rep est monté sur /mnt/Backup_Nas/.

je compte donc faire la commande suivante :
dd if=<support à sauvegarder> of=/mnt/Backup_Nas/Rasp_SD.save bs=4M

Le pb comme vous vous en doutez est que je n'arrive pas à définir if et comme je n'ai pas envie d'effacer ma carte sd je vous pose la question.

Je pensais voir avec df -h mais je ne trouve pas mon bonheur :

[email protected] ~ $ sudo df -h
Sys. fich. Taille Util. Dispo Uti% Montà sur
rootfs 7,2G 2,3G 4,6G 34% /
/dev/root 7,2G 2,3G 4,6G 34% /
devtmpfs 235M 0 235M 0% /dev
tmpfs 49M 236K 49M 1% /run
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 98M 0 98M 0% /run/shm
/dev/mmcblk0p1 56M 19M 38M 34% /boot
//192.168.0.253/home/Backup 913G 772G 141G 85% /mnt/Backup_Nas
Répondre
#2

if=/dev/root je dirais Smile.

Mais ça ne sauvegardera pas /boot. Quel est l'intèrêt de backuper tout ?
Répondre
#3

Jeoffrey a écrit :Mais ça ne sauvegardera pas /boot. Quel est l'intèrêt de backuper tout ?

En cas de perte de la sd (apparemment cela arrive fréquemment) je n'ai plus qu'à recopier sur une nouvelle sd l'image du système.
Pas besoin de réinstaller tout ce qui a été ajouté.
Répondre
#4

Salut,

Tu ne peux pas faire un dd lorsque la carte mémoire est déjà monter.

Cf. mon aide-mémoire : http://framboisepi.fr/sauvegarde-et-rest...-carte-sd/
Répondre
#5

Merci pour vos réponses.
Donc pas de solution pour sauvegarder complètement une sd "à chaud".
Répondre
#6

finopat a écrit :Donc pas de solution pour sauvegarder complètement une sd "à chaud".
Oui.
Répondre
#7

Nekrofage a écrit :Salut,
Tu ne peux pas faire un dd lorsque la carte mémoire est déjà monter.

Qu'est ce que tu veux dire ?
Répondre
#8

Nekrofage a écrit :
finopat a écrit :Donc pas de solution pour sauvegarder complètement une sd "à chaud".
Oui.

Mmm... Moi je dirais bien que si c'est possible..

Ma partition systeme n'est pas sur le SD (justement car moins fiable et moins rapide) et est sur une clé USB..
Et je l'ai deja fait a chaud avec la commande:
$ sudo dd if=/dev/sda2 | pv -tpreb | sudo dd of=/data/Backup/cleUsb/sda2-$DATE.img bs=1M && sudo sync
ou compressé
$ sudo dd if=/dev/sda2 bs=1M | pv -tpreb | gzip > /data/Backup/cleUsb/sda2-$DATE.img.gz && sudo sync
Puis pour l'autre partition sur la SD
$ dd if=/dev/mmcblk0p1 bs=1M | pv -tpreb | gzip > /data/Backup/carteSD/mmcblk0p1-$DATE.img.gz && sudo sync


Le pv n'est pas obligatoire bien sur
On peut aussi combiner le pipe avec ncat pour le faire sur un serveur distant sur du TCP
J'imagine aussi que quand les 2 partitions a sauvegarder sont sur le même support, on peux faire en une seule étape avec "if=/dev/mmcblk0" qui prendra donc a la fois /dev/mmcblk0p1 et /dev/mmcblk0p2


Le /data étant un autre disque dur USB.
Répondre
#9

finopat a écrit :Le pb comme vous vous en doutez est que je n'arrive pas à définir if et comme je n'ai pas envie d'effacer ma carte sd je vous pose la question

Tu effaceras ta SD surtout si tu te goures dans le of (pas le if) Wink
Adapte mes commandes d'au dessus..
Pour moi tu peux stoquer le "of" dans ton /mnt/Backup_Nas/xxxx


finopat a écrit :Je pensais voir avec df -h mais je ne trouve pas mon bonheur :

df te montre les partitions montées (et encore c'est pas vraiment exactement le but)
pour voir tes partitions et les trucs a mettre dans le "if" utilise
sudo fdisk -l
Répondre
#10

Uggy a écrit :Qu'est ce que tu veux dire ?

Si la partition est accessible en lecture/écriture.

Uggy a écrit :Mmm... Moi je dirais bien que si c'est possible..

Possible si la partition est en read-only, sinon il y a un risque de corruption du filesystem.
Répondre
#11

Merci Uggy por cette note d'espoir Big Grin
Uggy a écrit :Tu effaceras ta SD surtout si tu te goures dans le of (pas le if) wink
oui effectivement en réfléchissant un tant soit peu c'est très logique que ce soit le o comme Output qui soit le coupable des effacements Rolleyes

Uggy a écrit :pour voir tes partitions et les trucs a mettre dans le "if" utilise
sudo fdisk -l
Je note fdisk dans mon calepin Wink

Uggy a écrit :Puis pour l'autre partition sur la SD
$ dd if=/dev/mmcblk0p1 bs=1M | pv -tpreb | gzip > /data/Backup/carteSD/mmcblk0p1-$DATE.img.gz && sudo sync

Le pv n'est pas obligatoire bien sur

je mets également le pv dans mon calepin (et installé sur le pi du coup Smile ),
je pars donc sur cela :
sudo dd if=/dev/mmcblk0 bs=4M | pv-tpreb | sudo dd of=/mnt/Backup_Nas-$DATE.img bs=4M && sudo sync


Je dois avouer que le && sudo sync m'intrigue, peux tu m'en dire plus là dessus :
j'ai trouvé pour le && : cela exécute la commande sync si la commande dd a renvoyé 0 (je suppose que cela veut dire que la commande dd s'est bien déroulée).
pour sync : j'ai trouvé cette explication : sync - Synchroniser les données en mémoire et celles sur disque mais cela ne me parle pas, si tu peux m'en dire plus, juste pour mon info personnelle (ou plutôt pour savoir quand cette commande peut être utile).

Merci Uggy
Répondre
#12

Nekrofage a écrit :
Uggy a écrit :Mmm... Moi je dirais bien que si c'est possible..

Possible si la partition est en read-only, sinon il y a un risque de corruption du filesystem.

Ah.
As tu deja rencontré ce type de corruption du filesystem cible, constaté lors de sa resto, avec la source pas en read-only au moment du dd ?
(moi pas.. mais je ne le fait pas tous les jours Wink )
Répondre
#13

finopat a écrit :Je dois avouer que le && sudo sync m'intrigue, peux tu m'en dire plus là dessus :
j'ai trouvé pour le && : cela exécute la commande sync si la commande dd a renvoyé 0 (je suppose que cela veut dire que la commande dd s'est bien déroulée).
Oui. C'est ca.

finopat a écrit :pour sync : j'ai trouvé cette explication : sync - Synchroniser les données en mémoire et celles sur disque mais cela ne me parle pas, si tu peux m'en dire plus, juste pour mon info personnelle (ou plutôt pour savoir quand cette commande peut être utile).

A priori ca force a vraiment ecrire sur le disque, sinon il semble que (et c'est pas sa faute a dd) que des trucs pouraient rester qu'en memoire pour gagner en perf

The kernel keeps data in memory to avoid doing (relatively slow) disk reads and writes. This improves performance, but if the computer crashes, data may be lost or the filesystem corrupted as a result. sync ensures that everything in memory is written to disk.


sync is a standard system call in the Unix operating system, which commits to disk all data in the kernel filesystem buffers, i.e., data which has been scheduled for writing via low-level I/O system calls. http://en.wikipedia.org/wiki/Sync_%28Unix%29

Je l'utilisais surtout que je faisait des tests de performances (sur différents supports). Sinon dd s’arrête quand il a tout balancé au noyau.. et quand bien même ce n'est pas fini d'écrire sur le disque... ce qui peut fausser les résultats des tests de vitesses.

Je ne suis pas sûr à 100% que le "sync" soit forcément nécessaire dans ton cas de figure.... mais ca ne peut pas faire de mal ... Wink

Enfin je ne suis pas un grand spécialiste non plus des kernel filesystem buffers et des low-level I/O system calls donc bon.. Wink
Répondre
#14

Merci pour les précisions Uggy, l'explication "sinon dd s’arrête quand il a tout balancé au noyau.. et quand bien même ce n'est pas fini d'écrire sur le disque... " me satisfait car pour ce qui est des low level I/O system calls je passe mon tour (faut pas oublier que mes connaissances linux approfondies concernent le grep Smile)

J'ai fait qq essais et après qq erreurs je suis arrivé à effectuer cette commande :

sudo dd if=/dev/mmcblk0 bs=4M | pv | sudo dd of=/mnt/Backup_Nas/Backup-$(date +"%m-%d-%Y").img && sudo sync

Je ne suis pas arrivé à mettre $DATE comme dans ton exemple, normal ?

prochain test en compressant, ça ne devrait pas poser de pb, puis je tenterai une restauration.
Répondre
#15

finopat a écrit :sudo dd if=/dev/mmcblk0 bs=4M | pv | sudo dd of=/mnt/Backup_Nas/Backup-$(date +"%m-%d-%Y").img && sudo sync

Ca me semble bien.


finopat a écrit :Je ne suis pas arrivé à mettre $DATE comme dans ton exemple, normal ?

Oui, c'était pour dire de remplacer par la date.. donc parfait avec ta commande au dessus.


finopat a écrit :prochain test en compressant, ça ne devrait pas poser de pb, puis je tenterai une restauration.
L'approche me semble parfaite...
Tiens nous au courant des resultats.
Répondre
#16

Bonjour

J'aimerais faire exactement la même chose et je suis donc ce sujet de très prêt .
Alors voic i ma contribution , je rajoute un petit lien

Citation : j'ai d'abord créé un utilisateur rasp sur mon nas puis monté un lien vers le répertoitre désiré (rien que cela il m'a fallu une matinée lol), ce rep est monté sur /mnt/Backup_Nas/.
http://jmbernard.com/?p=1
Répondre
#17

J'ai donc testé en compressant, impossible de le faire depuis l'utilisateur pat malgré l'emploi de sudo :

[email protected] ~ $ sudo dd if=/dev/mmcblk0 bs=4M | pv -treb | sudo gzip > /mnt/Backup_Nas/Backup-$(date +"%m-%d-%Y").img.gz && sudo sync
-bash: /mnt/Backup_Nas/Backup-04-25-2014.img.gz: Permission non accordée
0O 0:00:00 [ 0B/s]
[email protected] ~ $


Ce qui est bizarre c'est que si je fais la même commande vers un rep de la carte sd cela fonctionne.
Est ce que j'aurai fait une boulette dans les droits des repertoires ?

[email protected] ~ $ cd /mnt/
[email protected] /mnt $ ls -l
total 0
drwxrwxrwx 2 1031 users 0 avril 25 08:28 Backup_Nas

[email protected] /mnt $ cd Backup_Nas
[email protected] /mnt/Backup_Nas $ ls -l
total 10396417
-rw-r--r-- 1 1031 users 7948206080 avril 24 22:49 Backup-04-24-2014.img
-rw-r--r-- 1 1031 users 0 avril 25 2014 Test_Backup-04-25-2014.img.gz
[email protected] /mnt/Backup_Nas $

On peut voir que le fichier a été créé mais est vide ....
j'ai monté le rep Backup_Nas avec la commande suivante insérée dans le fichier /etc/rc.local :
sudo mount -t cifs -o user=Raspberry,password=Password,rw,file_mode=0777,dir_mode=0777 //192.168.0.253/home/Backup /mnt/Backup_Nas//

Le fichier non compressé semble OK et est au même endroit, j'avoue que là je ne comprends pas ce qui bloque !!!

J'ai essayé en passant en root et là ça fonctionne niquel (2h43 à la place de 23mn pour la sauvegarde non compressée !!! ) comment cela se fait il ? je pensais que sudo permettait de passer en super utilisateur ????

Je ferai la restauration dimanche ou lundi week end à l'extérieur oblige Wink
Répondre
#18

mickeys a écrit :Bonjour

J'aimerais faire exactement la même chose et je suis donc ce sujet de très prêt .
Alors voic i ma contribution , je rajoute un petit lien

Citation : j'ai d'abord créé un utilisateur rasp sur mon nas puis monté un lien vers le répertoitre désiré (rien que cela il m'a fallu une matinée lol), ce rep est monté sur /mnt/Backup_Nas/.
http://jmbernard.com/?p=1


Bonjour mickey,
merci pour le lien je vais regarder.
c'est vrai que j'ai mis synology dans le titre mais cela n'a que peu d'importance en vrai (c'était juste pour frimer Tongue ... nan c'est juste que je ne savais pas trop ce qui était important ou pas).
Les pb que j'ai rencontré pour monter le rep lié au nas étaient des pb de droits (c'est vraiment une chose nouvelle pour moi).

voilà comment j'ai fait :

#créer l'utilisateur Raspberry sur le nas (il a donc un /home dédié).
#pour des raisons de sécurité je ne lui ai donné aucun droit sur les autres répertoires du NAS (son mot de passe est en clair sur le rasp) et une limite de #100 Go


#sur le Rasp :

sudo mkdir /mnt/Backup_Nas
sudo mount -t cifs -o user=Raspberry,password=Password,rw,file_mode=0777,dir_mode=0777 //192.168.0.253/home/Backup /mnt/Backup_Nas//

#Le faire automatiquement au reboot :
sudo nano /etc/rc.local
Coller la commande mount avant exit 0

voilà ce qui a l'air de fonctionner chez moi.
Répondre
#19

finopat a écrit :J'ai donc testé en compressant, impossible de le faire depuis l'utilisateur pat malgré l'emploi de sudo :

[email protected] ~ $ sudo dd if=/dev/mmcblk0 bs=4M | pv -treb | sudo gzip > /mnt/Backup_Nas/Backup-$(date +"%m-%d-%Y").img.gz && sudo sync
-bash: /mnt/Backup_Nas/Backup-04-25-2014.img.gz: Permission non accordée
0O 0:00:00 [ 0B/s]
[email protected] ~ $

essaye avec juste ...... | gzip > ..........
(sans faire .... | sudo gzip > ....)

ou sinon essaye avec:
sudo bash -c ' dd if=/dev/mmcblk0 bs=4M | pv -treb | gzip > /mnt/Backup_Nas/Backup-$(date +"%m-%d-%Y").img.gz ' && sudo sync

Je ne pense pas que tu ai un problème de droits sur la destination (si tu es avec les droits root).. mais juste une particularité de sudo quand il est pipé

finopat a écrit :j'ai monté le rep Backup_Nas avec la commande suivante insérée dans le fichier /etc/rc.local :
sudo mount -t cifs -o user=Raspberry,password=Password,rw,file_mode=0777,dir_mode=0777 //192.168.0.253/home/Backup /mnt/Backup_Nas//

Je pense qu'ilserait plus propre de faire cela par le fichier /etc/fstab (et plus propre de ne pas utiliser cifs Wink )
Répondre
#20

Hello Uggy,
Uggy a écrit :essaye avec juste ...... | gzip > ..........
(sans faire .... | sudo gzip > ....)
cela a donné le même résultat.


Citation :sudo bash -c ' dd if=/dev/mmcblk0 bs=4M | pv -treb | gzip > /mnt/Backup_Nas/Backup-$(date +"%m-%d-%Y").img.gz ' && sudo sync
Cette solution fonctionne même si je ne comprends pas trop le pourquoi.

Citation :Je pense qu'il serait plus propre de faire cela par le fichier /etc/fstab (et plus propre de ne pas utiliser cifs )

si je n'utilise pas cifs, est ce que je pourrais restaurer le fichier depuis un PC sous windows ?
J'allais écrire que le rasp était ma seule machine sous linux, mais ...... OBJECTION !!!! votre honneur ]Big Grin , le Nas tourne sous linux lui aussi
je devrais donc pouvoir restaurer depuis le Nas.

Merci Uggy
Répondre
#21

finopat a écrit :Cette solution fonctionne même si je ne comprends pas trop le pourquoi.

En gros ca dit d'appliquer le sudo sur toute la commande.. au lieu de juste la première (dd).
Mais si tu configures correctement les droits sur le point de montage, il se pourrait qu'il n'y ai pas besoin de faire un sudo...

finopat a écrit :si je n'utilise pas cifs, est ce que je pourrais restaurer le fichier depuis un PC sous windows ?
J'allais écrire que le rasp était ma seule machine sous linux, mais ...... OBJECTION !!!! votre honneur ]Big Grin , le Nas tourne sous linux lui aussi
je devrais donc pouvoir restaurer depuis le Nas.

Mon NAS a moi, c'est le Rasp, je ne suis donc pas spécialiste de synology.. mais j'imagine qu'il est aussi possible de faire un montage NFS ou SSHFS par exemple.
(entre le Rasp et le synology). Apres tu peux garder le CIFS sur le Synology pour ton windows si tu veux.
Répondre
#22

A ma connaissance, tu peux faire du NFS avec des nas Synology.
Répondre
#23

Jeoffrey a écrit :A ma connaissance, tu peux faire du NFS avec des nas Synology.
Tout à fait, je confirme.
Répondre
#24

Re,
Citation :A ma connaissance, tu peux faire du NFS avec des nas Synology.

d ou mon lien !!
http://jmbernard.com/?p=1

Citation :Activer le service NFS sur le NAS Synology

Le protocole Network File System (NFS) permet d’accéder à des fichiers via un réseau. Sur un NAS Synology, le service NFS n’est pas activé par défaut.
Répondre
#25

Bonjour,
j'étais sur la route, pas pu répondre plus tôt,
pas de soucis pour le nfs sur le synology (c'est un serveur sous linux aussi). Le lien donné par Mickey donne la manip à faire.
J'avais peur que le fait d'activer le partage nfs sur un dossier ne le rende illisible depuis mon pc windows, mais ce n'est pas le cas, je peux donc faire
la restauration depuis mon pc avec Win32DiskImager.

Avec Cifs, j'aimais bien le fait de pouvoir mettre un quota sur l'utilisateur, mais cela ne me semble pas vital.

Je viens de faire un essai avec une image non compressée et cela a fonctionné : j'ai effacé un répertoire avant la restauration et il est bien réapparu après le reboot avec la carte fraîchement écrite sous windows.
Prochaine étape : automatiser la sauvegarde pour le faire disons une fois par semaine et ne garder que les X dernières sauvegardes (pas encore d'idées pour le X, on verra plus tard).
J'utiliserai en parallèle rsync pour des répertoires identifiés (là où il y aura le/les serveurs, bdd et les différents /home) mais cela est une autre affaire.
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)