Table des matières
Raspberry Pi : Installation du système du Raspberry Pi sur un disque USB
L'utilisation d'un disque dur permet :
-
d'installer sur le disque le système du Raspberry Pi
-
d'y créer :
-
une partition de swap
-
une zone d'échange ext4 avec le monde linux
-
et une zone d'échange ntfs avec le monde Windows.
Les partitions sont repérées comme au paragraphe Première étape : partitionnement.
Seule la partition de démarrage de Raspbian et celle de BerryBoot doivent impérativement résider sur la carte SD.
Cela économise la carte SD qui ne comporte plus que le boot et peut être mise en mode lecture seule.
Pré-requis
Première étape : partitionnement
Partitionnez le disque pour obtenir une partition ext4 assez grande pour contenir la partition racine actuelle.
Le plan de partitionnement proposé ici comporte :
-
Une partition Linux ext4 de 100 Go : système du R-Pi, stockage de fichiers, de vidéos…
-
Une partition ntfs pour pouvoir échanger des fichiers avec des machines équipées en Windows.
Branchez le disque USB sur un PC.
Graphiquement, avec gparted
Ouvrez gparted.
Partitionnez le disque pour obtenir une partition ext4 assez grande pour contenir la partition racine actuelle.
Voici un exemple de préparation d'un disque externe avec gparted :
Ici, le disque USB est en /dev/sdh avec ses partitions :
-
/dev/sdh1, créée pour la racine du Raspberry Pi, formatée en ext4.
-
les autres sont modifiées pour lui faire de la place
En ligne de commande (si on n'a pas d'accès graphique)
Autres étapes
Transfert du Root file system
Nous allons déplacer sur un disque dur USB la partition racine de l'installation Raspbian existante pour améliorer les performances et préserver la carte SD.
Seul boot doit résider sur la carte SD.
Branchez le disque usb sur le Raspberry Pi.
Repérez les partitions :
pi@framboise:~ $ sudo blkid /dev/mmcblk0p1: LABEL="RECOVERY" UUID="4410-7BB7" TYPE="vfat" PARTUUID="d25b6342-01" /dev/mmcblk0p3: LABEL="SETTINGS" UUID="b089fc95-75de-464f-8700-dc9cf62be0b9" TYPE="ext4" PARTUUID="d25b6342-05" /dev/mmcblk0p5: LABEL="BOOT" UUID="5172-B45E" TYPE="vfat" PARTUUID="d25b6342-06" /dev/mmcblk0p6: LABEL="root" UUID="4051e5cf-3f44-4459-890f-de6d77c01f15" TYPE="ext4" PARTUUID="c0965f47-06" /dev/sda1: UUID="8528...|" TYPE="ext4" PARTUUID="c0965f47-01" /dev/sda2: LABEL="Rpi-data" UUID="422f3716-add7-48ed-a427-32e60109cc2e" TYPE="ext4" PARTUUID="c0965f47-07" /dev/sda3: LABEL="Reservoirs" UUID="fd152153-c344-4f58-b9cd-5dee43091f5d" TYPE="ntfs" PARTUUID="c0965f47-05"
On voit :
-
les partitions de la carte sd :
-
/dev/mmblk0p1 : “recovery” en FAT = sauvegarde du système tel que fourni au départ
-
/dev/mmblk0p3 : “settings”, en ext4 = réglages
-
/dev/mmblk0p5 : “boot”, en FAT = le boot de NOOBS
-
/dev/mmblk0p6 : “root”, en ext4 = la partition à déplacer sur le disque
les partitions de notre disque dur :-
/dev/sda1 : la partition que nous avons préparée
-
/dev/sda2 et suivantes : les autres partitions
Pour transférer le système, commençons par vérifier les montages par :
pi@framboise:~ $ sudo df -h Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur rootfs 36G 12G 23G 33% / /dev/mmcblk0p6 36G 12G 23G 33% / devtmpfs 458M 0 458M 0% /dev tmpfs 462M 13M 450M 3% /run tmpfs 5,0M 4,0K 5,0M 1% /run/lock tmpfs 462M 0 462M 0% /run/shm /dev/mmcblk0p5 66M 22M 45M 32% /boot /dev/mmcblk0p3 30M 444K 28M 2% /media/SETTINGS /dev/sda1 30M 434K 28M 2% /media/8528... /dev/sda2 99G 2,2G 92G 3% /media/Rpi-data /dev/sda3 94G 21G 69G 23% /media/Reservoirs
La partition /dev/mmblk0p6 est la racine (/dev/root = rootfs), montée en /
On retrouve :
partition montée en /dev/mmblk0p5 /boot /dev/mmblk0p6 / /dev/sda1 /media/XXXX… La partition /dev/mmblk0p6 est la racine (/dev/root = rootfs), montée en /
Affichez le fichier /boot/cmdline.txt :
pi@framboise:~ $ cat /boot/cmdline.txt dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p6 rootfstype=ext4 elevator=deadline rootwait
L'élément à repérer est root=/dev/mmblk0p6 : pour l'instant, la racine utilisée est /dev/mmblk0p6, sur la carte SD. Nous allons la remplacer par /dev/sda1
Commençons par copier cette partition sur celle du disque :
Démontez la partition du disque et faites la copie :
pi@framboise:~ $ sudo umount /dev/sda1 pi@framboise:~ $ pv /dev/mmblk0p6 | sudo dd of=/dev/sda1 bs=4M
Maintenant, il faut rediriger le boot vers le disque.
Éditez avec les droits d'administration le fichier dev/mmblk0p5/cmdline.txt pour remplacer root=/dev/mmblk0p6 par root=/dev/sda1
Cas particulier : écriture directe de Raspbian sur la carte SD sans BerryBoot
Dans /dev/mmcblk0p1, modifier les paramètres de cmdline.txt pour signifier au noyau que le Root File System se trouve sur /dev/sda2.
Éditez avec les droits d'administration le fichier /boot/cmdline.txt pour remplacer root=/dev/mmcblk0p2 par root=/dev/sda2
Sur le disque : paramétrage du fichier fstab
Éditez avec les droits d'administration le fichier /dev/sda2/etc/fstab pour :
-
dupliquer la ligne de la carte SD (ici, commençant par /dev/mmcblk0p6)
-
commenter la première (ajouter un # au début de la ligne),
-
modifier l'autre en remplaçant la carte SD par le disque
-
mettre la carte SD en Read Only (ro) puisqu’on ne fait que lire les fichiers qui s’y trouvent pour les charger en mémoire. Comme la carte est limitée en nombre d’écritures mais pas en nombre de lectures, vous voici tranquille pour un moment. De plus une cinquantaine de Mo suffisent pour /dev/mmcblk0p5, ce qui fait que vous pouvez réutiliser une vieille carte SD de 1GO sans problème.
Il s’agit ici du fichier fstab qui se trouve dans la partition /dev/sda2, pas de celui qui est sur la carte SD (/dev/mmcblkop2)
- /dev/sda2/etc/fstab
/dev/mmcblk0p5 /boot vfat defaults 0 2 #/dev/mmcblk0p6 / ext4 defaults,noatime 0 1 /dev/sda1 / ext4 defaults,noatime 0 1
Redémarrez le Raspberry PI :
pi@framboise:~ $ sudo reboot
Si tout se passe bien il démarre comme d’habitude, mais depuis le disque.
Notez que vous ne perdrez pas de données ; si les choses tournent mal, il suffit de modifier à nouveau le fichier /boot/cmdline.txt sur un ordinateur pour démarrer de nouveau à partir de la carte SD.
Étendre le Root file system
Le rootfs (partition /dev/sda1) ne fait que 1.8Go, car c'est la copie de la carte SD…
L'étendre avec resize2fs pour qu'il occupe tout l’espace disponible :
pi@framboise:~ $ sudo resize2fs /dev/sda1
Résultat : le rootfs (partition /dev/sda2) a été agrandi.
Conclusion
Problèmes connus
Voir aussi
Basé sur « Pitié pour la carte SD de votre framboise314 : Bootez sur un disque dur USB » par François Mocq.
-
-