Préserver la carte SD ;Episode II, booter sur USB

episode2L’épisode II reprend quelque part après le premier de la serie.

Nous y avions vu comment limiter les écritures pour économiser la carte SD.

Dans ce nouvel opus, voyons comment passer une étape de plus en bootant sur une clé USB et en y déportant tout le système.

Pour être exact il y a une séquence de boot qui DOIT se dérouler sur la carte SD, c’est comme cela par construction du Raspberry, puis ensuite le raspberry monte une partition nommée root fs Linux et utilise les informations de ce root fs.

Un root fs contient applications, fichiers spéciaux d’accès aux périphériques, les fichiers de configuration, les données… C’est root fs qui fait tout le boulot sous Linux.

C’est donc lui que nous allons déplacer sur l’USB pour économiser notre μSD

Un article complet sur la séquence de boot, le root fs et comment déplacer tout cela ce situe ici http://www.framboise314.fr/booter-le-raspberry-pi-sur-un-disque-dur-usb/

Je n’en reprend à mon compte qu’une petite partie ici.

Prérequis :

  • Un disque ou une clé USB de grande taille.
  • Un peu de patience
  • De l’attention
  • Faites attention aux tailles de vos SD card et disque USB, on s’attend ici à ce que le disque USB ait une capacité plus grande que la carte SD.

Objectif :

  • Déplacer le root file system sur la clé USB et
  • j’en profiterai pour faire une zone de swap de 1Go

On connecte le disque/clé USB au raspi et c’est parti.

Rappel

Sous Linux un disque se nomme /dev/sda ou /dev/sdb, /dev/sdc

  • Les partitions à l’intérieur d’un disque sont /dev/sda1, /dev/sda2, etc … pour le premier disque.
  • Idem bien sur pour les partitions de /dev/sdb qui sont /dev/sdb1, /dev/sdb2 ..

Examinons nos disques et partitions

Un sudo fdisk -l affiche quelque chose comme cela :

config_disquele /dev/mmcblk0: 15.9 GB correspond à la carte SD (mmc de leur ancien nom)

Il y a 2 partitions qui sont

  • /dev/mmcblk0p1  en FAT16: c’est ce qu’utilise le Raspberry pour booter
  • /dev/mmcblk0p2 : en  Linux et c’est le Root FS.

le /dev/sda est ma clé USB de 8Go

je sais que je vais avoir du mal à copier 15.9 Gb dans 8 Gb, mais c’est pour l’exemple en vrai j’achèterai un disque USB.

 Configuration :

A partir de maintenant soyez prudent, vérifiez soigneusement les noms de vos disques durs, assurez vous des manips que vous faites… formatages, copies binaires vont être au menu alors encore une fois : prudence.

un sudo cfdisk affiche l’outil de partitionnement.

Si vous avez plusieurs disques USB un sudo cfdisk /dev/sdb montre les partitions de /dev/sdb.

je veux faire un swap disque de 1Go et une autre partition de 7Go

On voit ici que il y a déjà une partition on la détruit avec le « Delete »

cfisk_2Regardez en haut pour être sur que l’on est sur le bon disque (/dev/sda)

On recrée ensuite 2 partitions d’abord une swap de 1Go (type 82 : swap)  et le reste pour ce qui deviendra le root fs.

  • Donc  on crée une partition Primary de 1000Mo placée en « Beginning » puis avec « Type » on place en 82 (swap) ,
  • une new primary du reste de l’espace

N’oubliez pas de faire un « Write » pour que tout cela soit enregistré.

On obtient cfdisk_3Formatons nos partitions

Formatons les 2 partitions

  • La partition de swap sera formatée par sudo   mkswap /dev/sda1
  • Celle du root fs par un sudo   mkfs.ext4  /dev/sda2
  • Vérifiez par un sudo fdisk -l que tout correspond à vos attentes.

Montons la partition de swap

Il faut ajouter dans le etc/fstab le montage en swap de notre partition /dev/sda1 ici

/dev/sda1 none swap sw 0 0

Détendons nous quelques instants avant de reprendre.

gif chatTransférons notre root file system de la carte SD vers notre disque dur USB

Depuis quand n’avez vous pas sauvegardé vos données ? Au vu des manips qui suivent vous devriez y penser !!

http://www.lmsecurite.fr/signalisation%20%20des%20%20vehicules/animation%20%20gifs%20%20anim%C3%A9s%20%20signalisation/rampe%20%20lumineuse%20%20defilante%20%20orange.gif

La manip décrite ci dessous est dangereuse, assurez vous de bien comprendre ce que vous faites, aucun moyen de faire marche arrière n’existe.

Lisez ici http://doc.ubuntu-fr.org/dd

http://www.lmsecurite.fr/signalisation%20%20des%20%20vehicules/animation%20%20gifs%20%20anim%C3%A9s%20%20signalisation/rampe%20%20lumineuse%20%20defilante%20%20orange.gif

Après ces mises en garde
Arrêtez Domoticz pour éviter les écritures pendant que l’on fait la copie (./domoticz.sh  stop).
sudo   dd   if=/dev/mmcblk0p2   of=/dev/sda2   bs=512

va donc copier depuis /dev/mcblkp02 vers la partition /dev/sda2

C’est une copie binaire, octet par octet, c’est long, patientez. A titre d’info 500 Go en 3H30
Au final nous aurons la copie identique de la partition de départ dans /dev/sda2, un clone
Bon c’est bientôt fini

Modifier cmdline.txt

Nous devons modifier /boot/cmdline.txt pour indiquer au système qu’il ne va plus chercher son Root FS sur /dev/mmcblk0p2   mais sur /dev/sda2.

sudo cp /boot/cmdline.txt /boot/cmdline.txt.original
sudo nano /boot/cmdline.txt

remplacez root=/dev/mmcblk0p2  par root=/dev/sda2 ou celui qui vous correspond

Modifions le fstab et c’est presque fini

sudo cp /etc/fstab /etc/fstab.original

Ouvrez avec

 nano  /etc/fstab

fstabPlacez vous sur la ligne /dev/mmcblk0P2

  • Faites un CTRL K, la ligne disparait
  • Faites un CTRL U
  • Puis un autre CTRL U ,cela à dupliqué la ligne
  • Mettez un # devant une des lignes de mmcblk0P2
  • Mettez /dev/sda2 à la place de /dev/mmcblk0P2

fstab_2Les manips lourdes sont terminées

On reboote on surveillant les messages qui défilent à l’écran.

Si tout va bien, on retrouve un fonctionnement normal de Domoticz, sinon les messages d’erreur affichés lors du boot seront d’une aide précieuse dans notre ami google.

Dernière chose : Redimensionner la partition Root

Eh oui n’oubliez pas que lorsque nous avons fait le fameux dd, on a fait un clone exact de notre partition de départ  /dev/mmcblk0p2

Si la partition d’origine  faisait 4 Go, j’ai maintenant une partition root fs de 4 Go et la totalité de ma partition que j’avais prévue à 8Go n’est pas occupée et ne le sera jamais.

Étendons donc la partition en question avec un

sudo   resize2fs   /dev/sda2
Oui mais pourquoi il y a star wars dans ce billet  ?
C’est le deuxième épisode des articles consacrés à la carte SD (donc Épisode II)
et il y avait un clonage avec dd
Episode 2, les clones …
Tout ça,tout ça
bon je vous laisse 😳

Posted in linux, logiciel, materiel, raspberry and tagged , , , , , , , .

11 Comments

  1. La partition swap créée ne sert à rien si elle n’est pas déclarée.
    Si tu verifies tu verras qu’il n’y a pas 1Go de swap.

    De plus est-il « bon » de swapper sur une clef usb ?

  2. Bonjour, Une question simple, comment activer la partition swap ?Par avance merci Bien cordialement Lalsacien

    Lalsacien

  3. Bonjour
    Oui en effet cette partie à sauté de l’article , je viens de la rétablir et la voici
    Il faut ajouter dans le etc/fstab le montage en swap de notre partition

    /dev/sda1 none swap sw 0 0

  4. Bonjour,

    J’ai exactement fais toutes les manips a la lettre , cela fonctionne très bien ! Hormis un seul point…

    Depuis impossible de faire des updates…

    L’erreur rencontré est qu’il n’arrive plus a lire dans le fichier /var/lib/dpkg/status

    Avez vous ce soucis la vous aussi ?

     

    Cordialement Christophe.

  5. Bonjour,

     

    J’ai suivi votre tuto; pas eu de souci particulier à part un « random nonblocking pool is initialized » lors du reboot final; j’ai recoupé le pi et rallumer et là pas de souci.

     

    Concernant les mises à jour, je ne sais pas si c’est lié avec le dernier post.

    Avant dans domoticz lorsque je cliquais sur About, j’avais la version de domoticz qui s’affichait, et de mémoire on avait accès au lien dirigeant vers le site de domoticz. Désormais lorsque j’appuie sur about, il ne se passe rien, pas de fenêtre qui s’ouvre.

    Quelqu’un rencontre-t-il ce problème?

    Merci par avance

  6. Bonjour
    Non pas de problèmes comme celui ci
    Essaie de vider le cache applicatif du navigateur (pas la touche F5 hein) vider le cache et reouvir l’url

  7. Bonjour,

    Voici ce qu’il se passe quand je déclare swap:

     

    root@jeedom:~# /dev/sdb1 none swap sw 0 0
    -bash: /dev/sdb1: Permission non accordée

     

    Merci

  8. Juste pour info, le formattage de /dev/sda2 (sudo   mkfs.ext4  /dev/sda2) est inutile. En effet la commande dd recopie l’intégralité de la partition , y compris les tables de format ainsi que la taille du fichier système (FS), qui, en toute logique, doit correspondre à la taille de la partition.

    Pour ce genre de manip (clonage), on peut aussi utiliser la commande ‘tar’ beaucoup moins risquée et tout aussi propre.

    # tar –one-file-system cf – / | tar xpvf –  -C /point/de/montage/usb

     

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *