[[http://jc.mascarelli.pagesperso-orange.fr/montageskits/raspberry-pi/boot_d_dur.htm|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 !