A force de jouer avec mon Raspberry Pi, j’ai eu le désagrément de le voir refuser de démarrer… La partition /root
de ma carte SD était corrompue. J’ai donc du me résoudre à réinstaller Raspbian, et à repartir de zéro, l’occasion cependant d’apprendre à faire des sauvegardes et des restaurations !
Bien sûr, je travaille sous Linux (Xubuntu puisque vous voulez tout savoir), et si vous êtes sous Windows, je sais qu’il est possible de faire la même chose, mais je ne le couvrirai pas dans ce billet.
Ce qu’il faut comprendre, c’est que comme ma carte SD est de taille relativement faible (8Go), il est facile de faire une sauvegarde complète de son contenu (surtout en compressant le résultat).
La commande qu’il faut utiliser est la commande dd
, la même que j’ai utilisé pour ma première installation de Raspbian. Ses deux arguments principaux sont :
if
: fichier d’entrée (ou périphérique)of
: fichier de sortie (ou périphérique)
Il faut déjà savoir à quel périphérique correspond votre lecteur de carte SD, utilisez la commande fdisk
:
sudo fdisk -l
Et cherchez un disque d’environ 8Go. Si Raspbian est installé sur la carte, vous avez normalement deux partitions, voilà ce que j’obtiens par exemple :
Disk /dev/sda: 7969 MB, 7969177600 bytes 4 heads, 16 sectors/track, 243200 cylinders, total 15564800 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00017b69 Device Boot Start End Blocks Id System /dev/sda1 8192 122879 57344 c W95 FAT32 (LBA) /dev/sda2 122880 15564799 7720960 83 Linux
Sauvegarde
Je sais donc que c’est /dev/sda
qui correspond à ma carte SD que je souhaite sauvegarder. Pour faire une sauvegarde, il me suffit alors d’utiliser :
sudo dd if=/dev/sda of=/chemin/vers/ma/sauvegarde.img bs=1M
Le fichier /chemin/vers/ma/sauvegarde.img
fait alors exactement 8Go. J’ai personnellement fait plusieurs sauvegardes pendant que je re-configurais mon Raspberry Pi. Par exemple, après avoir fait une mise à jour complète du système, installer vos disques externes, sécuriser votre accès SSH (article à venir), installer votre serveur web et configurer votre DNS dynamique, une petite sauvegarde du système ne fait pas de mal !
Restauration
Il est possible de restaurer cette image en inversant les argument if
et of
:
sudo dd if=/chemin/vers/ma/sauvegarde.img of=/dev/sda bs=1M
Attention : en utilisant of=/dev/sda
vous écrasez complètement le disque sda, donc vérifiez bien avec la commande fdisk
.
Compression
Si vous faites régulièrement l’opération, pensez qu’il est possible de compresser les images pour qu’elles occupent moins de 8Go sur votre disque en utilisant la commande gzip
par exemple :
gzip /chemin/vers/ma/sauvegarde.img
qui créera un fichier /chemin/vers/ma/sauvegarde.img.gz
, bien plus petit que 8Go. Il est également possible de faire la sauvegarde et la compression en une seule opération, et pour cela, je vous recommande la lecture des pages 12 et 13 du dernier numéro du magazine MagPi (dans les sources).
Effacer la table de partition
Lorsque j’ai eu mon problème de partition /root
corrompue, même en re-copiant une image toute fraîche de Raspbian sur ma carte SD, mon Raspberry Pi refuser toujours de démarrer. Il a fallu que j’efface complètement la table de partition de la carte avec la commande :
sudo dd if=/dev/zero of=/dev/sda bs=1M count=2
Attention : vérifiez bien que /dev/sda
est la carte SD, et pas un autre disque dur !
Sources
- Le blog qui m’a sauvé : http://www.chrisnewland.com/solved-raspberry-pi-panic-vfs-unable-to-mount-root-fs-on-unknown-block1792-278
- Le numéro du magazine MagPi avec un article très complet sur la gestion de sa carte SD en pages 12 et 13 : http://issuu.com/themagpi/docs/issue_9_final
Attention à Raspbian, perso j’ai du la virer pour une Debian car elle ne supportait pas la machine virtuelle java, fort utile pour un serveur !
C’est gênant en effet… Personnellement, je n’ai pas encore eu besoin de la JVM, mais j’ai rapidement regardé sur internet (http://raspberrypi.stackexchange.com/questions/48/how-can-i-run-java-software et http://ac31004.blogspot.fr/2012/07/java-performance-on-raspbian-vs-debian.html entre autres), et j’ai l’impression qu’il est tout à fait possible de faire tourner des programmes Java sur Raspbian (avec OpenJDK) mais qu’il y a cependant un problème de performance. A ce moment là, tu as raison, il vaut mieux privilégier Debian !
La commande pour effacer ma table de partition m’intéresse bien car je rencontre aussi une impossibilité de démarrage. La commande marche nickel mais je voulais savoir comment tu procèdes après. Tu recrée une table par Gparted, tu formates, tu reflash une image direct ?
This is a really inlenligett way to answer the question.
It’s really great that people are sharing this information.
Disaster films survival guide point: Practice throwing your arms over your face/head while falling, because there will at some point during the story be a huge explosion or other mass movement of (hopefully) inanimate material.
18ll1Sjä2vk:art inser de flesta att just dem exempel som du tar upp här inte var seriöst menade. Tror snarare att vi uppfattade det som att han seriöst menade att vi var på väg åt firmahållet men att han kryddade artikeln med lite humor.