{{tag>raspberry-pi gk}}
====== Raspberry Read-Only ======
Les modifications décrites dans cette page (de 2019) ne sont plus nécessaires sur les dernières versions système des rapsberry pi, on peut activer un mode de lecture seule très simplement avec
sudo-raspi-config
Choisir «performance options» puis «Overlay File System» : activer l'OFS et valider que la partition passe en lecture seule.\\
Voir [[projets:carnabal_2026:ambiance_sonore_carnabal|]] par exemple
==== Objectif ====
Apporter des modifications à la distribution Raspbian pour une utilisation sans écritures sur la carte SD et permettre une extinction brutale de la machine sans risque de détériorer le système de fichiers
==== Limitation ====
Utilisation de la version Raspbian/Buster, version stable à ce jour (déc 2019).\\
L'image installée à la base est la version **lite** pour limiter les logiciels installés.
==== lectures ====
https://the.mad-tinkerer.me/raspberry-pi/read-only-root-filesystem-debian-buster/
https://medium.com/@andreas.schallwig/how-to-make-your-raspberry-pi-file-system-read-only-raspbian-stretch-80c0f7be7353
https://k3a.me/how-to-make-raspberrypi-truly-read-only-reliable-and-trouble-free/
http://blog.gegg.us/2014/03/a-raspbian-read-only-root-fs-howto/
https://github.com/JasperE84/root-ro
https://www.a-netz.de/blog/2013/02/read-only-root-filesystem/
https://the.mad-tinkerer.me/raspberry-pi/read-only-root-filesystem-debian-buster/
==== Buster read-only ====
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
sudo apt install python3
sudo apt install puredata
sudo apt install pd-osc pd-mrpeach pd-iemlib
sudo apt install lsof
lsof / | awk 'NR==1 || $4~/[0-9]+[uw]/'
sudo systemctl disable apt-daily.timer apt-daily-upgrade.timer man-db.timer
sudo systemctl mask systemd-tmpfiles-setup apt-daily apt-daily-upgrade systemd-tmpfiles-clean systemd-tmpfiles-clean.timer systemd-update-utmp systemd-update-utmp-runlevel systemd-rfkill systemd-rfkill.socket systemd-logind.service man-db.service
systemd-update-utmp-runlevel systemd-rfkill systemd-rfkill.socket systemd-logind.service man-db.service
sudo systemctl disable dphys-swapfile
sudo apt clean
Modifier /etc/fstab
modifier en ro /boot et /
PARTUUID=6c586e13-01 /boot vfat defaults,ro 0 2
PARTUUID=6c586e13-02 / ext4 defaults,ro,noatime 0 1
ajouter
none /tmp tmpfs size=128M,mode=01777 0 0
none /var/tmp tmpfs size=16M 0 0
none /var/log tmpfs size=16M,mode=0755 0 0
none /var/lib/logrotate tmpfs size=1M 0 0
sudo reboot et vérifier les services en erreur
systemctl list-units --state=failed
==== Changement de mode ====
=== Autoriser l'écriture ===
sudo mount / -o remount,rw
sudo mount /boot -o remount,rw
=== Retourner en mode read-only ===
sudo mount / -o remount,ro -f
sudo mount /boot -o remount,ro -f
Ajouter à /etc/bash.bashrc **source** : https://hallard.me/raspberry-pi-read-only/
# set variable identifying the filesystem you work in (used in the prompt below)
set_bash_prompt(){
fs_mode=$(mount | sed -n -e "s/^\/dev\/.* on \/ .*(\(r[w|o]\).*/\1/p")
PS1='\[\033[01;32m\]\u@\h${fs_mode:+($fs_mode)}\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
}
alias ro='sudo mount -o remount,ro / ; sudo mount -o remount,ro /boot'
alias rw='sudo mount -o remount,rw / ; sudo mount -o remount,rw /boot'
# setup fancy prompt"
PROMPT_COMMAND=set_bash_prompt
==== Compléments ====
=== Logrotate ===
modifier /etc/cron.daily/logrotate
#/usr/sbin/logrotate /etc/logrotate.conf
/usr/sbin/logrotate --state /var/log/logrotate.state /etc/logrotate.conf
===lightdm===
modifier /etc/lightdm.conf
cache-directory=/var/tmp/lightdm