L’OS du Raspberry Pi fonctionnant sur une carte SD (ou micro SD), voici une solution simple qui permet de limiter les écritures afin de prolonger la durée de vie de votre carte SD.
Pour cela, nous allons utiliser l’outil Ramlog qui crée un disque temporaire en mémoire vive, où sont stockés et mis à jour les logs. Les logs originels sont conservés dans le répertoire /var/log.hdd jusqu’à l’arrêt de ramlog où à ce moment elles prennent le chemin inverse. Donc pas de perte de logs systèmes sauf bien sûr si votre ordinateur plante. Cela limite ainsi grandement le nombre d’accès en écriture sur la carte.
Pour installer Ramlog sur le Raspberry Pi :
sudo apt-get install rsync
sudo apt-get install lsof
wget http://www.tremende.com/ramlog/download/ramlog_2.0.0_all.deb
sudo dpkg -i ramlog_2.0.0_all.deb
Ensuite, editez le fichier suivant :
sudo vi /etc/init.d/ramlog
Et ajoutez ces 2 lignes suivantes dans la section #BEGIN INIT INFO (oui, avec les #):
# X-Start-Before: rsyslog
# X-Stop-After: rsyslog
Puis, éditez le fichier suivant :
sudo vi /etc/init.d/rsyslog
Ajoutez y ramlog aux 2 lignes suivantes pour qu’il ce lance au démarrage et qu’il arrête lors du démontage:
# Required-Start: $remote_fs $time ramlog
# Required-Stop: umountnfs $time ramlog
Pour activer le script au démarrage :
sudo insserv
Redemarrez le Rapsberry 2 fois:
sudo reboot
Une fois redémarré, regardez le fichier /var/log/ramlog pour vérifier que tout se passe bien :
sudo cat /var/log/ramlog
Le plus souvent, les messages d’erreur ont besoin que vous arrêtiez d’autres démons (Cups, Samba etc…) avant de lancer Ramlog.
Pour régler ce problème, on peut indiquer dans les fichiers de configuration des programmes concernés, que Ramlog doit être lancé avant qu’ils ne commencent à écrire dans les logs.
Pour Samba:
sudo vi /etc/init.d/samba
Ajoutez ramlog à la fin des 2 lignes suivantes :
# Required-Start: $network $local_fs $remote_fs ramlog
# Required-Stop: $network $local_fs $remote_fs ramlog
Pour Cups :
sudo vi /etc/init.d/cups
Ajoutez ramlog à la fin de ces 2 lignes :
# Required-Start: $syslog $remote_fs ramlog
# Required-Stop: $syslog $remote_fs ramlog
Refaites un insserv puis redémarrez :
sudo insserv
sudo reboot
Vous avez maintenant un Ramlog opérationnel.