Montages-Kits/Raspberry Pi - Tutoriel / Boot sur un disque dur externe
Toutes les étapes nécessaires pour vous permettre de booter sur un disque dur externe branché sur le port USB de votre Raspberry !
Objectifs : protéger la carte SD en écriture (cycle de vie restreint), et profiter des avantages d'un disque dur externe de 500 Go…
8.1. partitionner le disque dur externe USB (en trois partitions) :
partition swap de 1 Go
partition Linux ext4 : système du R-Pi, stockage de fichiers, de vidéos…
partition NTFS (le reste du disque) pour pouvoir échanger des fichiers avec Windows.
L’outil de partitionnement est cfdisk. Il se gère avec les touches de déplacement.
La commande : sudo cfdisk /dev/sda
Commençons par supprimer la partition existante : /dev/sda1 (le disque neuf étant formaté par défaut pour Windows)
Sélectionner la partition à détruire avec les flèches Haut et Bas, aller sur [ Delete ] avec les flèches Droite et Gauche. Valider par Enter.
La partition a disparu de l’écran, mais l'opération ne sera effective qu'à la réécriture de la nouvelle table de partition par [ Write ] qui écrase la ou les partition(s) existantes…
Puis, création de la première partition primaire (Swap) : /dev/sda1
Choisir [ New ], pour créer la nouvelle partition. saisir la taille : 1000 (1 Go) Après validation, la partition est créée et apparaît comme /dev/sda1, de type Linux. Pour définir le type, choisir [ Type ], et choisir le N° approprié = 82 (pour swap) sauvegarder la partition [ Write ]. Confirmer par yes
Création de la seconde partition primaire (Linux) : /dev/sda2
Choisir [ New ], pour créer la nouvelle partition. saisir la taille : (1 Go) = 200000 Mo (200Go) Après validation, la partition est créée et apparaît comme /dev/sda2, de type Linux. Pour définir le type, choisir [ Type ] et choisir le N° approprié = 83 pour Linux sauvegarder la partition [ Write ]. Confirmer par yes
Et enfin, création de la troisième partition primaire (NTFS) : /dev/sda3
Choisir [ New ], pour créer la nouvelle partition. la taille du reste du disque s'affiche la valider Après validation, la partition est créée et apparaît comme /dev/sda3, de type NTFS. Pour définir le type, choisir [ Type ] et choisir le N° approprié = 07 pour NTFS sauvegarder la partition [ Write ]. Confirmer par yes
Vous pouvez quitter cfdisk et vérifier si votre travail a bien été exécuté :
sudo fdisk -l
8.2. formater le disque dur externe branché sur le port USB :
NB : L'installation de l'outil mkfs.ntfs, est nécessaire car il n'est pas installé d’origine, il vous permettra de formater la partition en NTFS :
Installer ntfs-3g : sudo apt-get install ntfs-3g
A présent :
formater la partition Linux (sda2) avec mkfs.ext4 :
sudo mkfs.ext4 /dev/sda2
formater la partition de SWAP (sda1) avec mkswap :
sudo mkswap /dev/sda1
formater la partition ntfs (sda3) avec mkfs.ntfs :
sudo mkfs.ntfs /dev/sda3 -L RPi-Donnees
NB : L’option “-L” permet de nommer le volume : “RPI-Données” (mais on peut aussi faire ça tout simplement sous windows dans le gestionnaire de fichier) Attention : le formatage NTFS a été très lent chez moi >4h pour 200 Go ?, donc soyez patient. Si la led de votre disque dur clignote, c'est que ça se passe plutôt bien !
8.3. Transférer le “Root file system” de la carte SD, vers le disque dur :
NB : Avant toutes manipulations sur votre carte SD, créer une sauvegarde de son contenu, (ou bien les fichiers sources) ainsi en cas de problème vous pourrez (formater) restaurer la carte SD !
donnez-vous les droits de super utilisateur : sudo su
allez voir dans le fichier “cmdline.txt” : sudo nano /boot/cmdline.txt vous trouverez sur quel disque le système se positionne pour booter ? NB : Pour moi, il se positionne sur : mmcblk0p6… donc, NOTEZ bien cette information vous en aurez besoin plus loin
Démonter le disque dur /dev/sda2 :
sudo umount /dev/sda2
Lancez la copie hard du Rfs de la carte SD vers le disque dur sda2 :
sudo dd if=/dev/mmcblk0p6 of=/dev/sda2 bs=512
rebooter
8.4. Modifier les paramètres de la carte SD :
afin de rediriger le boot vers le disque dur !
Modifier les paramètres de “cmdline.txt” :
donnez-vous les droits de super utilisateur : sudo su editez "cmdline.txt" : sudo nano /boot/cmdline.txt
Dans l'éditeur,
modifiez la commande : "root=/dev/mmcblk0p6" par la commande : "root=/dev/sda2"
pour signifier au noyau que le “Root File System” se trouve désormais sur le disque dur linux : /dev/sda2
rebooter
8.5. modifier le fichier fstab :
donnez-vous les droits de super utilisateur : sudo su
editez "fstab" : sudo nano /etc/fstab
et mettre la ligne suivante en commentaire (il suffit de rajouter un # en début de la ligne) :
#/dev/mmcblk0p6 / ext4 defaults,noatimes 0 14
et ajouter la ligne :
/dev/sda1 / ext4 defaults,noatime 0 1
sauvegarder, quittez l'éditeur, quittez l'environnement graphique et arrêtez le Raspberry Pi. Sortir la carte SD de son support, la mettre en Read Only (RO) Remettre la carte SD et redémarrer le Raspberry Pi
NB : bien sûr, le disque dur externe doit être branché sur un port USB :o)
Si votre Raspberry pi démarre, c'est qu'il a booté pour la première fois sur le disque dur (la led clignote), et donc, c'est gagné !
8.6. étendre le Root files system :
En effet, le “rootfs” (partition /dev/sda2) ne fait que 1.8Go, car c'est le produit de la copie (hard) de la carte SD, il convient donc de l'étendre avec “resize2fs” pour qu'il occupe tout l’espace disponible,
lancez à la commande : sudo resize2fs /dev/sda2
Bon amusement !