{{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