:::: MENU ::::

Déporter le système de fichier sur un disque dur USB

Le Raspberry Pi fonctionne et stocke ses données grâce à une carte SD. C’est pratique, ça se monte et démonte facilement, on peut aisément changer de carte pour utiliser son Raspberry avec une autre distribution.
Le seul problème dans ce beau monde, c’est lorsqu’on souhaite faire tourner son RPi 24/24h.

Effectivement, les cartes ont des débits et temps d’accès intéressants, mais elles ne sont pas vraiment faite pour ce type d’utilisation. Un système d’exploitation, ça lit et écrit constamment sur son support. De plus, le Raspberry n’a pas énormément de RAM, donc un fichier de Swap est également présent sur la carte SD. Imaginez un peu ce que subit votre pauvre carte…

Pour remédier à ça, nous allons vous proposer de faire fonctionner votre Raspberry Pi grâce à un disque dur branché en USB.

La table de partition

Lancez votre RPi sans le disque dur que nous allons installer.
Commençons par lister les partitions disponibles :

Vous devriez voir quelque chose comme ceci :

Ces deux lignes sont respectivement :

  • le secteur de boot
  • le système de fichier à proprement parlé (celui que nous souhaitons déplacer)

Branchez maintenant votre disque dur USB.

ATTENTION : Si votre disque dur est alimenté par le port USB, il est possible de votre RPi ne fournisse pas assez d’électricité. Si lorsque vous branchez votre disque dur le RPi reboot, alors l’alimentation est trop faible et vous risqueriez d’endommager votre disque dur à force de l’utiliser sous-alimenté. L’utilisation d’un hub USB alimenté est alors obligatoire.

Re-listez les partitions disponibles.  Vous devriez voir le même genre de résultats avec quelques lignes supplémentaires :

Comme vous pouvez le voir, un disque « sda » est apparu. Les partitions (que vous pouvez voir sur les 2 dernières lignes du code ci-dessus) correspondent au partitionnement de MON disque dur. Si le votre possède 5 partitions, le schéma ne sera pas le même.

Nous allons maintenant modifier la table de partitionnement de votre disque dur :

Supprimez toutes les partitions en entrant « d« .
Vérifiez que vous ayez bien supprimé toutes les partitions en entrant « p« .

Maintenant que votre table est vide, nous allons créer les partitions pour votre RPi.
J’ai choisi d’utiliser le schéma suivant :

  • Une partition root qui contiendra le système de fichier qui remplira presque entièrement le disque
  • Une plus petite partition qui servira de zone de swap

Entrez « n » pour ajouter un partition, sélectionnez le type de partition (primaire : p ou étendue : e). Dans notre cas, nous allons faire une partition primaire, entrez donc « p« . Choisissez enfin le numéro de la partition, entrez donc « 1« .
Laissez maintenant le premier secteur par défaut, faites juste « Entrée », pour ce qui est du secteur de fin, entrez la taille que vous souhaitez (n’oubliez pas de laisser de la place sur le disque pour la partition de Swap, j’utilise personnellement 1Go) : « +62G » pour allouer environs 62Go sur un disque de 64Go.

Pour faire la partition de swap, il faut refaire les mêmes manipulations :

  • « n » pour créer la partition
  • « p » pour créer un partition primaire
  • « 2 » pour lui attribuer la 2ème partition
  • Appuyez juste sur « Entrée » pour sélectionner le secteur de début par défaut
  • Appuyez sur « Entrée » pour que la partition s’étende sur la place restante

Appuyez sur « p » pour vérifier la table de partition du disque. Si cela correspond avec ce que vous souhaitiez, appuyez sur « w » pour inscrire les changements dans la table de partition et quitter.

Formatons !

Notre disque dur a maintenant une belle table de partition. On va donc formater ces partitions pour pouvoir les utiliser.

Commençons par formater la partition principale :

Ceci peut prendre un peu de temps suivant la taille de votre partition et du type de disque dur.
Maintenant initialisons la partition de swap :

Et voilà, vos partitions sont prêtes ! Ce n’est pas l’étape la plus compliquée me diriez vous, mais ce n’est pas fini.

Finalisation

On va maintenant copier les données de la carte SD vers le disque dur, cette étape peut être un peu longue.

C’est fini ? Ah, cool, continuons alors !

Vérifiez le système de fichier pour corriger les éventuelles erreurs, Faites « o » s’il y en a :

On va maintenant agrandir le système de fichier pour qu’il remplisse la partition que nous lui avons préparé :

Maintenant, il faut modifier les configurations au démarrage pour que le RPi boot sur le disque dur.
Commencez par faire une copie du fichier que nous allons modifier (en cas de mauvaise manipulation).

Dans le fichier, remplacez la séquence « /dev/mmcblk0p2 » par « /dev/sda1« .
Sauvegardez et fermez le fichier.

Nous allons maintenant modifier le fichier de configuration de montage des systèmes de fichier sur notre nouveau disque. Commencez par monter la partition :

Comme pour le fichier précédent, remplacez la séquence « /dev/mmcblk0p2 » par « /dev/sda1« .
Et ajoutez en dessous cette ligne qui permet d’activer la zone de swap :

Pour finir (et oui !) nous allons stopper l’utilisation du fichier de swap (étant donné que nous avons créé une partition exprès pour ça), terminer les modifications sur le disque et redémarrer.

Voilà ! Votre Raspberry devrait maintenant fonctionner sur le disque dur. S’il ne fonctionne pas, insérez votre carte SD dans un ordinateur, et copier « /boot/cmdline.bak » pour remplacer « /boot/cmdlin.txt« .
Après ça, votre Raspberry redémarrera sur la carte SD, vous pourrez alors recommencer ces manipulations. La carte SD reste cependant nécessaire pour effectuer le boot sur le disque dur, impossible de démarrer notre RPi sans aucune carte SD.

A propos de l'auteur :

Ingénieur JEE chez Enovea, diplômé Manager des Systèmes d’Information par l’Exia.Cesi. Je m’intéresse au Raspberry Pi depuis sa sortie et travaille avec depuis une expérience « Raspbienne » en entreprise.
Je développe sur ce micro-ordinateur essentiellement pour des projets personnels en utilisation standard ou embarquée.


11 Comments

  • Répondre Nicolas |

    Merci pour ton article qui m’a bien aidé !
    Je vais enfin pouvoir effectuer plus de chose sur mon raspberry.
    Il ne me reste plus que la caméra et l’écran à config

  • Répondre Romain |

    Merci pour cette article!

    Toutefois, j’ai un soucis, lors du partitionnement de la première section, celui ci ne me laisse pas prendre 1998G sur un disque de 2To. J’ai du inversé les 2 partitions…

    Une idée de l’origine du soucis?

    Merci!

  • Répondre Ghislain |

    Tres beau travail 😉
    Une question me vient (je suis en train de bosser la dessus) j’ai un dd avec 2 partitons ext4 (FileSystem et Données) quand je fait le « dd » tout ce copie bien mais apres… je me retrouve avec une Erreur Superblock…. j’ai trouver pas mal de truc mais IMPOSSIBLE de remettre la premiere partition en place (2eme partition ext4 OK)
    Aurait tu une idée a tout hasard ?

    • Répondre Vincent |

      Bonsoir Ghislain,

      Merci pour votre commentaire 🙂
      Pour votre « bad SuperBlock ». J’ai déjà eu un problème similaire il y a quelques temps lorsque je souhaitais changer de carte SD pour un RPi. Le changement de carte s’est bien passé, mais lorsque j’ai voulu agrandir une partition, c’est là que ça s’est compliqué.
      J’ai cherché à résoudre le problème sur une machine Debian, il y a des outils système qui aident à régler ce genre de soucis, mais sans succès dans mon cas malheureusement. J’ai abandonné l’idée de réparer mon image raspbian après quelques jours.
      Je ne peux que vous encourager à chercher « bad superblock repair » et à essayer différentes solutions. Les communautés Debian et Ubuntu vous seront d’une grande aide et sont de bonnes sources d’informations pour tout problèmes.
      Désolé de ne pas pouvoir vous guider plus précisément, et je vous souhaite bon courage !

      FriZBy

      • Répondre Ghislain |

        Merci de la réponse rapide.

        J’ai pour l’instant abandonné l’idée et je passe par rsync. J’avais hate de tout mettre en place sur la bestiole donc au moins comme sa sa tourne mais si je trouve la solution un jour pas de souci

  • Répondre Philippe |

    Bonjour,

    merci pour ce tuto. je n’ai pas encore essayé, mais mon disque de WD de 314Go acheté le 3/14 pour 31,42$ après une réduction de 31,4% (et non, ce n’est pas une blague) devrait bientôt arriver.

    par contre est-il possible de faire cela avec un disque ssd, car un disque mécanique sur un système embarqué ce n’est pas forcément top.

    merci d’avance et encore bravo.

    cordialement

    Philippe

    • Répondre Vincent |

      Bonjour !
      Merci pour votre retour, hâte d’avoir de vos nouvelles lorsque vous aurez fait le transfert de votre support de stockage 🙂

      Concernant le SSD, oui c’est tout à fait possible, et la manipulation reste la même, cependant, c’est un petit peu dommage de perdre les performances du disque SSD à cause des ports USB. Mais c’est vrai que si vos Raspberry et support de stockage sont amené à bouger et subir des « chocs » sous tension, le SSD craint beaucoup moins qu’un HDD classique.

      Je pense avoir répondu à votre question.
      A bientôt sur notre site je l’espère 🙂

      FriZBy

      • Répondre Philippe |

        merci pour votre réponse. le disque devrait arriver bientôt 🙂

        mon soucis vis-à-vis du ssd était le support des pilotes, et le prix bien-sûr mais cela baisse.

        bonne journée

        Philippe

Laissez un commentaire