Catnoo
Notes de paramétrage de postes de travail, et autres vicissitudes ...

Accueil > Matériel divers > Raspberry PI > raspberry - probleme installation avec convertisseur USB-SDcard

raspberry - probleme installation avec convertisseur USB-SDcard

mardi 12 avril 2016, par Lucien-Henry

Symptômes

Divers et variés ... Le plus vexant étant que les messages d’erreurs ne sont pas correspondant à la réalité. De façon non exhaustive :

  • Linux/gparted : arrêt momentané du formatage de la partition, déconnexion de la clé USB de lecteur SDcard, obligé de débrancher la clé et de la rebrancher
  • Linux/emploi de commande dd : la copie de l’image d’une autre SDcard système plante systématiquement .. sans que l’on sache où ça a planté. On se retrouve avec un disque convenablement partitionné, mais la seconde partition ne se copie pas !
  • Sous Windows : pas de problème de formatage "rapide" de la SDCard ! C’est le formatage propre qui pose problème

Cause possibles

  1. Soit ça viens de la SDCard qui est foutue ... vu qu’on a pu installer finalement le Raspberry, visiblement peut-être pas.
  2. Soit l’adaptateur USB / SDCard / micro-SDCard / SIM ne supporte pas les partitions de plus de 3512 Mo (via gparted) ... cas réalisé plusieurs fois.
  3. Soit l’adaptateur ne supporte pas que la partition primaire 3 soit collée immédiatement à la partition primaire 2 ... coller une partition étendue résoud le problème (et on retombe sur le problème 2).
  4. Soit l’adaptateur chauffe trop à quasiment 3,6 Go de formatage et ... bogue ! ... cas le plus probable.

Dans les cas 2 et 4, il faudrait changer l’adaptateur ... sauf si on a autre chose à faire que de foncer chez Darty au risque d’avoir un adaptateur qui ne supporte pas les cartes SDCard de plus de 4Go (le fournisseur ne vendait alors que des cartes de 4Go préparées pour débutant).

Bien entendue, ce ne sont pas les programmes LinuxLive USB Creator 2.9.4.exe et Win32DiskImager-0.9.5-install.exe sous Windows qui vont aider ... leurs messages font juste penser que Windows a encore planté, voir que la carte est défectueuse ! Faux. Certains disent réussir avec l’un et pas l’autre (site raspbian-france.org) ... vu que nous nous fournissons tous quasiment chez Kubii, je me demande si quelqu’un a eu l’idée d’imputer le problème à l’adaptateur pourri de Kubii (j’avais déjà dû renvoyer un adaptateur dès son arrivée chez moi, ils connaissaient le problème et l’ont échangé immédiatement .... à l’époque .... puis l’adaptateur qui marchait bien, a marché beaucoup moins bien ici prononcer à la Bourvil ).

Principe de résolution

On trouve le moyen de faire marcher le Raspberry Pi, puis on installe sur la SDCard sur laquelle il bootera définitivement.
Booter sur une clé USB semble ... pratique. D’ailleurs, cela éviterait d’abimer la SDCard (et coûterait d’ailleurs moins cher vu le prix d’une SDCard). Comme le Raspberry ne sait booter que sur une SDCard, il faut lui faire comprendre qu’il doit aller chercher l’OS ... en gros, le /boot reste sur la SDCard.

Lire l’article explicatif préalable de crocodudule

Action

Copier l’image iso comme cela aurait dû être (on considère que sdc est la clé/carte USB sous Linux) :
dd if=2016-03-18-raspbian-jessie.img of=/dev/sdc

  1. Quand ça plante ... juste retirer / remettre la carte et s’assurer via fdisk que l’on a bien les partitions écrites. Supprimer la partition /dev/sdc2 qui est de toute façon détériorée.
  2. Monter la partition boot de la clé, sauver le fichier cmdline.txt (ça évitera de refaire la manipulation inverse malproprement, et de dealer avec un vi antédiluvien).
  3. Modifier le fichier cmdline.txt : dwc_otg.lpm_enable=0 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
  4. Il faut que ce soit la ligne : dwc_otg.lpm_enable=0 root=/dev/sda1 rootfstype=ext4 elevator=deadline rootwait
  5. On prend une vraie clé USB (de 4 Go + 4 Go minimum .... voir carrément supérieure à 10 Go pour avoir la paix). Pourquoi 10 Go ? Car on va mettre l’OS, l’image complète 2016-03-18-raspbian-jessie.img, ET installer des petits outils gparted / rsync.
  6. Formater la clé USB en ext4, disons plutôt le même type de FS que la partition 2 ratée de la SDcard, retirer et remettre la clé
  7. Monter la clé : mount -t auto /dev/sda1 /media/ubuntu/cle_sda1
  8. Monter l’image !
    • fdisk -l 2016-03-18-raspbian-jessie.img
    • On regarde le cluster de début de la partition mmcblk0p2 (start > 122880)
    • Calcul de l’offset : cluster x taille du sector (512 octets) : 122880 x 512 = 62914560
    • Création d’un répertoire de montage : mkdir /media/ubuntu/image
    • Montage en loop de la partition dans l’image !
    • mount -o ro,loop,offset=62914560 2016-03-18-raspbian-jessie.img /media/ubuntu/image
    • On peut aller dans le répertoire ... génial on a monté une partition dans une image (tout le monde ne sait pas faire sans pleurs préalables)
  9. Copier de façon adéquate le contenu de la partition dans la clé
  10. On dit merci pour la commande au crocodile (rsync existe sous Ubuntu normale) : rsync -avh /media/ubuntu/image /media/ubuntu/cle_sda1
  11. Attention, ici, on copie tout sans distinction, on n’a pas besoin des alertes du croco.
  12. Modifier le /etc/fstab ... là aussi on remplace /dev/mmcblk0p2 par /dev/sda1, vu que l’OS qui marche est sur sda1.

On passe au Raspberry Pi (enfin) :

  1. Brancher la SDCard et la clé USB.
  2. Booter, constater que ça merde, débrancher l’électricité, rebrancher, constater que ça marche (ça merde encore ? démerdez-vous d’abord, chez moi ça marche au second coup)
  3. soit via Putty, soit car on a branché un clavier et un écran (brancher le clavier à chaud fait rebooter le Raspberry), avoir une ligne de commande.
  4. Installer gparted et ! apt-get install gparted rsync
  5. Repartitionner proprement son Raspberry PI, avec le FS dans la partition 2 de l’image (donc normalement ext4)
  6. Rebooter
  7. Monter l’image comme avant :
  8. mount -o ro,loop,offset=62914560 2016-03-18-raspbian-jessie.img /media/pi/image
  9. Monter la partition /dev/mmcblk0p2
  10. faire la commande inverse de rsync Image / Partition2 vers SDCard / Partition 2 (vous avez la commande plus haut, j’écris ce texte de tête depu)
  11. rsync -avh /media/pi/image /media/pi/sdcard_mmcblk0p2
  12. On s’assure que le cmdline va booter sur la SDcard
    — * cp -ifr /boot/cmdline.txt /boot/cmdline.txt_sda
    — * cp -ifr /boot/cmdline.txt_init /boot/cmdline.txt (ça valait la peine d’avoir sauvegardé hein ?)
  13. On s’assure qu’on lance bien l’OS de la SDcard : dans /etc/fstab ... modifier /dev/sda1 par /dev/mmcblk0p2
  14. Booter, constater que ça merde, débrancher l’électricité, rebrancher, constater que ça marche (ça merde encore ? démerdez-vous d’abord, chez moi ça marche au second coup)

Miracle, la carte marche très bien, c’est l’adaptateur de Kubii.fr qui était pourri !

Liens divers

Que faire (via Linux) en cas de panne de disque dur.
Monter une partition dans une image RAW
Trouver l’offset d’une partition
Rendre au croco ce qui lui appartient, et le remercier à la hauteur de sa peine et de la valeur de son partage : Comment booter le Raspberry sur clé USB ... où un disque dur d’ailleurs, si ça intéresse.

Sauvegarde

L’article expliquant comment booter est si bien ... qu’il faut le sauver salement dans le cas où le forum du site web (ou l’article lui-même) disparaisse .... car comme par hasard, le forum de nextinpact viens juste de planter !!! ...

Le but de ce petit tutorial est d'installer la distribution linux la plus courante pour raspberry, raspbian, en utilisant une clef USB pour stocker le système de fichier et ainsi gagner en performance mais aussi en fiabilité, la carte SD n'étant plus sollicitée qu'à l'occasion de l'allumage (le boot) de la machine.

INTRODUCTION
I - PRE-REQUIS
 1.1    – Pré-requis matériel
 1.2    – Pré-requis logiciel
II – PREPARATION DU MATERIEL ET INSTALLATION DE RASPBIAN
 2.1 - Préparation de la carte SD et de la clef USB
 2.2 – Installation de la distribution Raspbian
III – PREMIER LANCEMENT ET CONNEXION EN SSH
 3.1 – Premier lancement
 3.2 – Se connecter en SSH
IV – PREPARER LA COPIE DES PARTITIONS
 4.1 – Voir l’arborescence de la raspbian
 4.2 – Principe des droits de l’utilisateur
 4.3 – Installer RSYNC
V – COPIER LES PARTITIONS SUR LA CLEF USB
 5.1 – Créer le répertoire temporaire et le lier avec la Clef USB
 5.2 – « Re »-Monter la partition principale
 5.3 Copier la partition sur la Clef USB
VI – MODIFIER LES FICHIERS DE BOOT
 6.1 – Modifier le fstab
 6.2 – Modifier cmdline.txt
VII – RELANCER RASPBIAN
VIII – FINALISER L’INSTALLATION



47px-Raspberry_Pi_Logo.png



INTRODUCTION :

Le principal problème du raspberry est le fait d’utiliser une carte SD pour booter la distribution linux, bref pour faire fonctionner le système d’exploitation.

Comme invariablement les données sur la carte SD vont être corrompues, le système va planter avec la nécessiter de reformater la carte SD, de tout réinstaller et de tout re-paramétrer.

Autant le dire, il y a de quoi perdre rapidement patience…

Pour faire suite à « mon » précédent tutorial (qui a un énorme succès puisqu’il est sans commentaire ^^), j’ai fait un petit tutorial afin de contourner le point faible que représente la carte SD.

La solution est de déporter le système le système d’exploitation et les données sur une clef USB, cette dernière étant nettement plus fiable à l’usage que la carte SD et tout en étant plus rapide, améliorant au passage les performances.

Il faut donc procéder ainsi :
- laisser les fichiers nécessaires au boot sur la carte SD et indiquer dans ces fichiers qu’il faut par la suite travailler avec la clef USB,
- déplacer sur la clef USB l’ensemble du système de fichier.

En somme, la carte SD ne travaille qu’au boot du raspberry limitant les risques de corruption des données au minimum.

Si malgré tout des données sont corrompues sur la carte SD, il sera rapide de la reformater tandis que l’ensemble des fichiers et de paramètres seront toujours sauvegardés sur la clef USB.

Les explications du tutorial sont applicables aussi bien pour une installation depuis windows que sous linux (avec les petits rappels qui vont biens dont j’avais moi-même besoin au passage).

Le but est aussi de familiariser l’utilisateur de windows avec les commandes « basiques » de linux pour manipuler correctement un raspberry.

Bien que beaucoup de tutoriaux existent sur le WEB afin d’expliquer comment installer raspbian sur clef USB, aucun n’a donné le résultat voulu dans mon cas. Certains sont d’une absolue complexité et ajoutent des étapes dont je ne comprends pas l’intérêt, d’autres sont tout simplement faux (je pense que certains travaillent sous qemu et non pas sur leur raspberry).

Pour valider ce tutorial j’ai procédé à deux installations sur deux raspberrys type B. Cependant si vous avez un problème n’hésitez pas à poser vos questions (un petit merci aussi ne fait pas de mal ^^).





I - PRE-REQUIS :

1.1    – Pré-requis matériel :

- un raspberry type B,
- un chargeur micro-USB 5V 1A,
- un cable RJ45 pour relier la machine au réseau
- une carte SD de 4 gigas au moins,
- une clef USB de 4 gigas au moins,
- un ordinateur pouvant accueillir une carte SD,

Naturellement, on peut connecter le raspberry à un écran si besoin via notamment un câble HDMI. Mais ici, je suis dans l’optique de monter un petit serveur WEB (le tutorial est là) et donc l’ensemble des manipulations seront faites depuis l’ordinateur sans connecter le raspberry à un écran.

1.2    – Pré-requis logiciel :

Dans tous les cas, il faut disposer d’une distribution à installer. La plus courante pour un usage « serveur » / « bureautique » est raspbian qu’il convient de télécharger ici :
*date*-wheezy-raspbian.zip

Il s’agit d’une distribution debian spécialement adaptée au raspberry. Elle est plutôt robuste et dispose d’un bureau accessible avec la commande classique « startx ».

En fonction de votre système d’exploitation les pré-requis logiciels changent. Sous linux, on n’a besoin de rien d’autre, sous windows il nous faut quelques logiciels :

-> Sous windows :
- Win32DiskImager : pour copier l’image de la distribution raspbian sur la carte SD,
- MiniTool Partition Wizard (édition home, gratuite) : pour pouvoir formater en ext4 que windows ne prend pas en charge (sauf bidouille),
- Putty : pour accéder en à la console de notre raspbian depuis notre ordinateur via le réseau (en SSH) et ainsi exécuter les manipulations nécessaires.

Naturellement, installez le tout avant de commencer.

-> Sous linux :
Rien de particulier n’est nécessaire fdisk (ou chdisk) nous permettant de formater puisque l’ext4 est par définition géré sous linux.

La commande dd nous permettra de copier l’image de la distribution sur la carte SD.


II – PREPARATION DU MATERIEL ET INSTALLATION DE RASPBIAN :

2.1 - Préparation de la carte SD et de la clef USB:

Le but est de disposer d’une carte SD formatée en FAT32 mais aussi de préparer la clef USB afin d’y copier le système de fichier.

Concernant la clef USB, nous allons avoir besoin d’une partition en ext4 pour copier le système de fichier.

Enfin, il convient que l’ensemble des partitions (carte SD et clef USB) soit bootable, il faut donc activer « primary » et pas « logical ».

2.1.1 - Sous windows :

Lancez MiniTool Partition Wizard et cliquez sur la gestion des partitions (option de gauche).

Faire un clic droit sur votre carte SD et sélectionner « create » et reprendre ses options :
Nom : SDCARD
Type : FAT32
Taille : toute la carte
Sélectionnez : « Primary » et non logical.
Et validez.

Faire un clic droit sur la clef USB et sélectionner « create » et reprendre ses options :
Nom : USB_BOOT
Type : EXT4
Taille : toute la carte
Sélectionnez : « Primary » et non logical.
Et validez.


Enfin, cliquez sur appliquer, les partitions vont être créées et formatées. (C’est un peu long s’agissant de la partition en ext4 sur la clef USB).

2.1.2 - Sous linux :

Même combat avec gparted si souhaitez une interface graphique (semblable à celle de  MiniTool Partition Wizard sous windows).

Sinon utilisez fdisk (voire chdisk)

Rappel rapide des commandes en ligne de commande : (*)
. Pour repérer la carte SD et la clef usb : « dmesg ». En principe, la carte SD correspond à mmcblk0p et la clef USB à sda ou sdb
. Pour créer la partition sur la carte SD : fdisk /dev/mmcblk0p (ou mmcblk0p1)
. Pour créer les partitions sur la clef USB : fdisk /dev/sda
. Pour formater la partition sur la carte SD : mkfs.fat32 /dev/ mmcblk0p (ou mmcblk0 mmcblk0p1 j’ai un doute)
. Pour formater les partitions sur la clef USB :
mkfs.ext4 /dev/sda1

(* pensez à entrer sudo avant la commande ou à passer root et ne pas oublier que si une partition est déjà montée on ne peut pas la reformater,  pour démonter une partition c’est la commande unmount qu’il faut utiliser, par exemple « sudo umount /dev/ mmcblk0p1).

2.2 – Installation de la distribution Raspbian :

2.2.1 – Sous windows :

Décompressez l’archive raspbian téléchargée.

Lancez Win32DiskImager et sélectionnez l’image de la distribution raspbian décompressée.
De même, sélectionnez le lecteur où est votre carte SD.
Et cliquez sur « WRITE », l’image de la distribution est « copiée » sur la carte SD…

2.2.2 – Sous linux:

Démontée la partition de la carte SD si elle est déjà montée ( commande « df » pour voir les partitions montées, commande sudo unmount /dev/mmcblk0p1 si c’est p1 est montée…).

Là copiez l’image de la raspbian décompresssée via la commande dd :

sudo dd if=*repertoire*/*date*-wheezy-raspbian.img of=/dev/mmcblk0

Naturellement, adaptez le répertoire et le nom du fichier img tout comme l’identification de votre carte SD.





III – PREMIER LANCEMENT ET CONNEXION EN SSH :

3.1 – Premier lancement :

Insérez la carte SD et la clef UBS dans le raspberry, connectez le câble RJ45 et le chargeur micro-USB…

Le raspberry clignote et se lance… Votre raspberry fonctionne !

3.2 – Se connecter en SSH :

C’est une étape importante puisque elle permet d’accéder à la console du raspberry et donc d’exécuter toutes les commandes nécessaires depuis son ordinateur.

Il faut pour cela connaître l’adresse IP sur le réseau que le raspberry a obtenu auprès de la box internet (DHCP activé naturellement… sinon le faire ou connecter un écran et un clavier au raspberry pour connaître l’ip par la commande « ifconfig » et aller à la section concernant la définition d’une IP fixe de ce tutorial).

Pour récupérer l’adresse IP vous pouvez vous connecter à votre box internet qui le plus souvent permet de voir l’ensemble des appareils connectés au réseau, ou encore utiliser Angry IP Scanner (sous windows ou linux) pour scanner toutes les IP de votre réseau…

On partira du principe ici que notre raspberry a l’adresse IP : 192.168.0.50

3.2.1 – Sous windows :

Lancez putty. Dans « host » entrez l’adresse IP du raspberry (192.168.0.50). Dans « port » entrez 22 (c’est le cas par défaut) et validez.

Passez le message d’alerte, une fenêtre s’affiche et nous demande un login (pi) puis un mot de passe (raspberry).

Nous voila connecté à notre raspberry et capable d’exécuter toutes les commandes nécessaires !

Un petit message nous informe même qu’il faut finaliser l’installation. Ne lancez pas encore la commande proposée.

3.2.1 – Sous linux :

En principe, vous connaissez déjà, sinon c’est :

ssh pi:raspberry@192.168.0.50

Et vous validez…





IV – PREPARER LA COPIE DES PARTITIONS :

Il est préférable de comprendre ce que l’on va faire par la suite, notamment si la distribution raspbian a évolué entre ce tutorial et le moment où vous vous lancez.

Ainsi, il vous sera possible d’adapter les manipulations si besoin mais aussi d’acquérir quelques commandes de base sous linux…

4.1 – Voir l’arborescence de la raspbian :

Dans votre terminal connecté en SSH, entrez la commande suivante et validez :

ls -l /dev/disk/by-label/

S’affichent 4 lignes de ce type:

lrwxrwxrwx 1 root root 15 Jan  1  1970 993B-8922 -> ../../mmcblk0p1
lrwxrwxrwx 1 root root 10 Jan  1  1970 bdbd9b84-7c0f-cf01-303c-99847c0fcf01->../../sda1
lrwxrwxrwx 1 root root 15 Jan  7 23:31 fc254b57-8fff-4f96-9609-ea202d871acf->../../mmcblk0p2

Normalement, si vous avez un peu fait attention aux explications précédentes, vous pouvez comprendre ce charabia…
… Ceci nous indique qu’il y a 3 partitions détectées : mmcblk0p1 et mmcblk0p2 sont deux partitions sur la carte SD. Naturellement, sda1 est la partition sur la clef USB, vous pouvez relancez la commande cette fois par ID pour vous en convaincre :

ls -l /dev/disk/by-id/

Donne

lrwxrwxrwx 1 root root 13 Jan  1  1970 memstick-SD04G_0x01d7e265 -> ../../mmcblk0
lrwxrwxrwx 1 root root 15 Jan  1  1970 memstick-SD04G_0x01d7e265-part1 -> ../../mmcblk0p1
lrwxrwxrwx 1 root root 15 Jan  7 23:31 memstick-SD04G_0x01d7e265-part2 -> ../../mmcblk0p2
lrwxrwxrwx 1 root root  9 Jan  1  1970 usb-_USB_DISK_2.0_C0003A85A73DDA62-0:0 -> ../../sda
lrwxrwxrwx 1 root root 10 Jan  1  1970 usb-_USB_DISK_2.0_C0003A85A73DDA62-0:0-part1 -> ../../sda1

Maintenant, on va regarder comment est le répertoire racine de la raspbian.

Entrez et validez (y a un espace entre les deux points):

cd ..

On entre dans le répertoire « home ».

On re-rentre et valide :

cd ..

On est à la racine « / ».

Pour afficher l’arborescence on entre la commande

ls -Al

Voilà la liste des répertoires:

pi@raspberrypi / $ ls -Al
drwxr-xr-x  2 root root  4096 Jan  7 21:45 bin
drwxr-xr-x  2 root root 16384 Jan  1  1970 boot
drwxr-xr-x 13 root root  3140 Jan  7 23:32 dev
drwxr-xr-x 99 root root  4096 Jan  7 23:32 etc
drwxr-xr-x  3 root root  4096 Jan  7 21:10 home
drwxr-xr-x 12 root root  4096 Jan  7 21:35 lib
drwx------  2 root root 16384 Jan  7 20:54 lost+found
drwxr-xr-x  2 root root  4096 Jan  7 21:01 media
drwxr-xr-x  2 root root  4096 Oct 17 17:39 mnt
drwxr-xr-x  5 root root  4096 Jan  7 22:07 opt
dr-xr-xr-x 75 root root     0 Jan  1  1970 proc
drwx------  2 root root  4096 Jan  7 21:01 root
drwxr-xr-x 10 root root   460 Jan 12 10:20 run
drwxr-xr-x  2 root root  4096 Jan  7 21:45 sbin
drwxr-xr-x  2 root root  4096 Jun 20  2012 selinux
drwxr-xr-x  2 root root  4096 Jan  7 21:01 srv
dr-xr-xr-x 12 root root     0 Jan  1  1970 sys
drwxrwxrwt  4 root root  4096 Jan 12 15:17 tmp
drwxr-xr-x 10 root root  4096 Jan  7 21:01 usr
drwxr-xr-x 11 root root  4096 Jan  7 23:32 var

Si vous voulez connaître le rôle de chaque répertoire vous pouvez consulter ceci sur ubuntu-fr.org

Pour faire simple, on va copier l’intégralité dans la partition USB_BOOT.

4.2 – Principe des droits de l’utilisateur :

Je m’adresse ici principalement aux utilisateurs de windows.

Bien que la notion de compte administrateur avec des droits supérieurs aux simples comptes utilisateurs soit une réalité depuis windows vista, une petite mise au point s’impose.

Sous linux et à ma connaissance depuis toujours, on distingue deux catégories principales de comptes : le « root » (comparable à l’administrateur) et les comptes utilisateurs (y aussi des digressions du type super-utilisateur mais qui est « inférieur » au root, ou encore compte invité très limité).

Sous linux, il n’est pas habituel d’utiliser le compte root mais de rester utilisateur « de base ».

En terme de sécurité c’est évidement un plus.

En revanche, si on veut paramétrer certaines choses « importantes » ou on utilise le compte root (ce qui revient à se balader en administrateur) ou on exécute uniquement la tache voulue avec les droits attribués à root, mais sans utiliser ce compte.

Aussi et afin d’exécuter une commande qui nécessite les droits du compte root on fait précéder la commande voulue par « sudo ».

Si vous voulez approfondir la « fonction » sudo, voir ici par exemple :
http://doc.ubuntu-fr.org/sudo

4.3 – Installer RSYNC :

Le logiciel rsync va nous permettre de copier nos partitions avec suffisamment de retours d’informations en cas de problème.

Ici je m’adresse à nouveau à ceux qui ne connaissent rien à linux, car sous linux il n’est pas « habituel » d’aller télécharger un programme, de lancer la procédure d’installation… pour pouvoir l’utiliser.

En effet, bien qu’il soit possible d’installer « à la main » un logiciel sous linux, le plus souvent on utilise un gestionnaire de paquets.

- L’avantage premier est que le plus souvent il suffit de dire au gestionnaire de paquets que l’on veut installer tel ou tel logiciel, il se charge de le récupérer et de l’installer.
- Autre avantage, on limite le risque d’aller récupérer des fichiers vérolés en passant par des sites inconnus.
- Dernier avantage non négligeable ; le gestionnaire gère comme un grand les dépendances. S’il manque une librairie ou un logiciel tiers, ou qu’il faut les mettre à jour avant de procéder à l’installation du logiciel voulu, le gestionnaire de paquet s’en occupe tout seul.

Par conséquent, pour installer rsync on entre et valide :

sudo apt-get install rsync

Si une nouvelle version existe, il vous propose de la télécharger et de l’installer, sinon il vous indique que l’on dispose de la dernière version.

On peut donc passer aux choses sérieuses, la copie de la partition.





V – COPIER LES PARTITIONS SUR LA CLEF USB :

On s’accroche car ça va se compliquer un peu.

On va créer un répertoire temporaire afin d’y copier la partition voulue de la carte SD et on va lier ce répertoire avec la partition créée sur la clef USB au tout début de ce tutorial.

Puis on lance la copie de la partition de la carte SD vers le répertoire créé à l’instant en excluant certains répertoires.

5.1 – Créer le répertoire temporaire et le lier avec la Clef USB :

Pour créer notre répertoire on utilise la commande mkdir.

Ceci nous donne :

sudo mkdir /tmp/usbboot

On va monter le répertoire avec la partition de la Clef USB :

sudo mount /dev/sda1 /tmp/usbboot

Maintenant vous savez pourquoi nommer la partition ainsi sur ma clef USB ; pour facilement la reconnaître et l’associer par la suite avec la copies de la partition de la carte SD :
Le répertoire usb_boot va sur la partition sda1 nommée UBS_BOOT de la clef USB.

5.2 – « Re »-Monter la partition principale :

Le titre n’est pas très clair, mais pour faire simple on veut copier notre partition principale de la carte SD alors même que celle-ci est exécutée et peut changer tandis que l’on y travaille…

Ca risque de poser quelques problèmes…

Pour contourner la difficulté, on va copier et monter cette partition principale avec une option un peu spécifique « bind », puis lancer la copie à proprement parler depuis cette « nouvelle » partition principale.

On commence en créant le répertoire qui accueillera la partition principale ainsi montée :

sudo mkdir /tmp/sd_boot

Puis on va « lier/monter/synchroniser » (utilisez le vocable de votre choix), ce répertoire et la véritable partition principale :

sudo mount --bind / /tmp/sd_boot/

Cela semble rien, mais sans cette petite astuce, on ne pouvait pas faire cette manipulation tout en laissant la raspbian s’exécuter (donc arrêt du raspberry, insertion de la SD et de la clef USB sur un ordinateur équipé de linux, puis copie, puis retranchement du tout pour voir si cela fonctionne…).

Pour approfondir la commande mount bind voir ici  (4° point).

5.3 Copier la partition sur la Clef USB :

Maintenant on peut copier nos partitions.

Tout d’abord on s’assure d’être à la racine :

cd /

Puis on lance la copie :

sudo rsync -avh --exclude 'tmp/' --exclude 'boot/' /tmp/sd_boot/ /tmp/usbboot/

Cette fonction va nous copier l’intégralité du répertoire sd_boot (qui est en fait une « copie » de la partition principale) vers le répertoire usb_boot qui est lui-même lié à la partition sda1 de la clef USB.

A cette occasion, on fait en sorte d’exclure les répertoires boot et tmp:
. le répertoire boot n’a aucune utilité sur la clef USB, puisqu’il ne peut être exécuté que depuis la carte SD.
. le répertoire « tmp » doit être lui aussi exclu puisqu’il est le répertoire de destination de la copie…

L’opération de copie n’est pas instantané donc on patiente jusqu’au retour de l’invité de commande…

Il faut encore recréer la partition « tmp » sur la partition principale copiée sur sda1 puisqu’il a été nécessaire de l’exclure, de même s’agissant de boot:

sudo mkdir /tmp/usbboot/tmp /tmp/usbboot/boot

Voila, le plus « dur » est fait, il ne reste plus qu’à indiquer au boot où chercher les partitions.





VI – MODIFIER LES FICHIERS DE BOOT :

Pour modifier un fichier, il faut l’éditer, modifier son contenu et sauvegarder, pour cela on utilise le logiciel nano.

6.1 – Modifier le fstab :

Le fichier qu’il convient de modifier le premier est le fichier fstab tel que copier dans usb_boot :

sudo nano /tmp/usbboot/etc/fstab

Il s’affiche ceci :

proc              /proc           proc    defaults                0       0
/dev/mmcblk0p1    /boot           vfat    defaults                0       2
/dev/mmcblk0p2    /               ext4    defaults,noatime        0       1

Naturellement on donne le nom de nos partitions en remplaçant le fichier ainsi:

proc              /proc           proc    defaults                0       0
/dev/mmcblk0p1    /boot           vfat    defaults                0       2
/dev/sda1         /               ext4    defaults,noatime        0       1

Pour sauvegarder on fait  contrôle o  et pour sortir on fait  contrôle x

6.2 – Modifier cmdline.txt :

Ce fichier cmdline.txt est celui toujours présent sur la carte SD.

Il se présente normalement ainsi :

dwc_otg.lpm_enable=0 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

Le but est évidemment de remplacer mmcblk0p2 par sda1.

Pour ouvrir et modifier le fichier cmdline.txt, on entre :

sudo nano /boot/cmdline.txt

Et on remplace la partie root=/dev/mmcblk0p2 par root=/dev/sda1, cela donne :

dwc_otg.lpm_enable=0 root=/dev/sda1 rootfstype=ext4 elevator=deadline rootwait

Pour sauvegarder on fait  contrôle o  et pour sortir on fait  contrôle x

(Ceux qui veulent utiliser l’UUID, en soit c’est une bonne idée, sauf que pour des raisons que j’ignore, cela ne fonctionne pas. Donc on reste avec les identifiants sda1, sda2…)





VII – RELANCER RASPBIAN :

Voilà, sauf mauvaise manipulation ou plantage tout est réglé pour fonctionner sur la Clef USB.

Il reste donc à relancer la machine pour voir le résultat.

On entre :

sudo reboot

Sous windows on peut fermer la fenêtre putty et sous linux la connexion SSH est naturellement perdue.

La machine reboot, il faut patienter quelques instants et croiser les doigts…

On relance sa connexion SSH et on se logue… Dans tous les cas on reste non-violent ^^ !





VIII – FINALISER L’INSTALLATION :

Il convient encore de finaliser notre petite installation : paramètres régionaux, changer le mot de passe (fortement recommandé si par la suite on veut rendre la machine accessible sur le net)….

Tout d’abord et pour une raison que je n’ai pas encore déterminé notre dossier temporaire n’est pas accessible à certains programmes, donc pour régler le problème :

sudo chown root:root /tmp
sudo chmod 1777 /tmp

Petites explications rapides pour les utilisateurs de windows. La commande chown permet de changer le propriétaire d’un dossier. Ainsi on s’assure que le compte root est propriétaire de répertoire temporaire.

La commande chmod permet de changer les permissions d’accès à un répertoire ou un fichier. Les 4 chiffres qui suivent permettent de préciser ces permissions d’accès. 0 = aucun droit et 7 = tous les droits de lecture, écriture et exécution. 1777 donne les droits, le 1 devant interdit de supprimer ce répertoire et de changer les droits.


Il s’agit maintenant de changer le mot de passe du compte « pi » (de préférence par un mot complexe et long), voire d’affiner les paramètres régionaux, entrez ceci et suivez les instructions :

sudo raspi-config

Ceci fait, on termine en faisant les éventuelles mises à jour nécessaires :

sudo apt-get update

Puis:

sudo apt-get upgrade

On en a terminé, l'installation est à jour et (normalement) parfaitement fonctionnelle

Voir en ligne : installation Raspberry sur clé USB

SPIP | | Plan du site | Suivre la vie du site RSS 2.0
Habillage visuel © digitalnature sous Licence GPL