Ceci est une ancienne révision du document !
Table des matières
Configuration d'un Raspberry Pi en read-only
Pour configurer un système en read-only, je vais suivre ce tutoriel (hallard.me), basé sur cet autre tutoriel (k3a.me).
Prérequis
Rajouter une partition "data"
On commence par formater la carte (µ)SD, on crée une partition (ext4) et puis on écrit l'image dessus avec ddrescue.
$ sudo ddrescue -D --force 2016-05-27-raspbian-jessie-lite.img /dev/sdb
Ensuite, on ouvre gparted et on rajoute une partition en fat32
, tout en laissant de la place pour étendre la partition racine.
Après avoir créé la partition data
en fat32
, on met la carte (µ)SD et on démarre sur le Raspberry Pi. Il va afficher un message d'erreur au démarrage en disant que la partition racine doit être la dernière sur la carte (µ)SD pour qu'il puisse l'étendre automatiquement.
On fois que le système a bien démarré, on éteint le Raspberry Pi. On remet la carte (µ)SD sur un ordinateur et on ouvre un terminal. On vérifie avec lsblk quel est l'emplacement de la (µ)SD.
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTP (...) sdb 8:16 1 29,8G 0 disk ├─sdb1 8:17 1 63M 0 part ├─sdb2 8:18 1 1,23G 0 part └─sdb3 8:19 1 24,5G 0 part
On va ensuite utiliser parted pour recréer la partition racine (sdb2
dans ce cas-ci). On va supprimer la partition n°2 et la recréer pour que la fin de celle-ci arrive juste avant le début de la troisième partition. (168,167,62
devient 691,20,32
)
$ sudo parted /dev/sdb <parted> unit chs <parted> print (...) Number Start End Type File System Flags 1 0,130,2 8,138,1 primary fat16 lba 2 8,138,2 168,167,62 primary ext4 3 691,20,33 3893,174,56 primary fat32 <parted> rm 2 <parted> mkpart primary 8,138,2 691,20,32 <parted> quit
On nettoie la partition avec e2fsck puis on agrandit le système de fichier pour qu'il prenne toute la place dans la partition sdb2
.
$ sudo e2fsck -f /dev/sdb2 $ sudo resize2fs /dev/sdb2
On peut vérifier avec lsblk, par exemple, la nouvelle taille de la partition racine.
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTP (...) sdb 8:30 1 29,8G 0 disk ├─sdb1 8:30 1 63M 0 part ├─sdb2 8:30 1 5,2G 0 part └─sdb3 8:30 1 24,5G 0 part
On peut à présent remettre la (µ)SD sur le Raspberry Pi et modifier le fichier /etc/fstab/
pour monter automatiquement la troisième partition (sdb3
) dans le dossier voulu (/media/data
).
$ cat /etc/fstab ...