134 liens privés
L'objectif : Sur un Raspberry Pi, diminuer les écritures sur la carte SD pour prolonger sa durée de vie.
1) Désactiver la SWAP:
| ========
dphys-swapfile swapoff
dphys-swapfile uninstall
update-rc.d dphys-swapfile disable
| ========
2) Pour mettre /tmp et /var en ram, il faut modifier le fichier "/etc/fstab" et ajouter :
| ========
tmpfs /tmp tmpfs defaults 0 0
tmpfs /var/log tmpfs defaults 0 0
tmpfs /var/run tmpfs defaults 0 0
| ========
Comment rendre une Raspbian "Read-Only". Tous les changements s'écrivent en RAM et on ne craint donc plus les coupures de courant qui peuvent corrompre le système. Je n'ai pas encore testé.
[Edit:
Une première étape peut être de rediriger les logs en RAM : http://hardware-libre.fr/2014/03/raspberry-pi-linux-rediriger-les-logs-en-ram-disk/
[Edit2: ramlog est facile à installer en suivant le tuto de Korben : http://korben.info/raspberry-pi-allonger-la-duree-de-vie-de-vos-cartes-sd.html /]
Et une autre solution consiste à n'utiliser la carte SD que pour booter, à stocker le système sur clé USB ou disque dur externe et à avoir de bonnes sauvegardes. :-) Quelques infos : http://coderthoughts.blogspot.be/2014/01/how-i-learned-to-stop-worrying-about.html
/]
Une autre solution pour avoir un Raspberry Pi "débranchable" sans un arrêt propre. Le système sur la SD est mis en "read-only" et tout passe une nouvelle fois par la RAM.
[Edit: J'ai copié l'image sur une carte SD :
| ========
$ sudo dd if=/home/simon/Téléchargements/ipe_r2-140122.img of=/dev/sdb
245760+0 enregistrements lus
245760+0 enregistrements écrits
125829120 octets (126 MB) copiés, 32,4759 s, 3,9 MB/s
| ========
On arrive au login en une vingtaine de seconde et on se connecte en "root" sans mot de passe. (Whaat?!! C'est dans la FAQ : http://nutcom.hu/ipe-r2-hnt-faq/ )
Première chose, mettre le clavier en azerty.
Une distribution GNU/Linux dédiée à l'embarqué pour Raspberry Pi. Je cite quelques "features" :
| ========
~ Hot swap support for SD-cards and USB devices
~ Automatic allocation of SD-card free space for application storage
~ Automatic repair of SD-card filesystems in the event of power loss during writing
| ========
Si je comprends bien, tout le système se met dans la RAM après le démarrage et on peut même retirer la carte SD à chaud sans craindre de plantage ! Par contre le système a l'air bien "nu". Ce qui est pas mal pour de l'embarqué mais pour, par exemple, utiliser un Raspberry en mode "kiosque" ça va demander pas mal de bidouillage.
(Un peu dans le même style que TinyCore [ voir http://links.simonlefort.be/?qb5zvg ].)
Tutoriel pour l'installation d'un Raspberry Pi avec TinyCore (piCore). L'OS boote sur la RAM et n'écrit plus sur la carte SD, ce qui permet d'éteindre le Raspberry Pi sans risque de corruption de données. À tester.
Une distribution qui se lance en RAM. L'intérêt, dans le cas d'une utilisation avec une Raspberry Pi, c'est qu'elle n'écrit pas (ou presque pas) sur la carte SD donc on peut prolonger la durée de vie de celle-ci.
Un article très intéressant qui éclaire vraiment bien sur le principe et les forces de Redis. J'en ai pas mal entendu parler mais il y a peu d'articles qui sont aussi simples et clairs! Juste génial !
Korben a parlé du paramètre "vm.swappiness" dans un article ( http://korben.info/disque-dur-rame-ubuntu-swappiness.html ). J'ai cherché à en savoir un peu plus et je suis tombé cet article. Ce paramètre sert à choisir à partir de quel pourcentage de RAM utilisée l'OS commence à faire du SWAP sur le disque dur.
Par défaut, le paramètre est à 60, ce qui veut dire qu'on commence à utiliser le SWAP à partir de 40% d'utilisation de la RAM.
Le SWAP étant plus lent que la mise en RAM, j'ai envie de mettre ce paramètre à 10 pour ne "SWAPper" qu'à partir de 90% d'utilisation de la RAM.
Pour voir le réglage actuel (60 par défaut) :
| ========
| simon@ordi:~$ cat /proc/sys/vm/swappiness
| 60
| ========
Pour modifier le réglage, il faut ajouter ces lignes dans le fichier sysctl.conf :
| ========
| simon@ordi:~$ sudo nano /etc/sysctl.conf
| [sudo] password for simon:
| # SIMON
| # Swappiness : Choisir à partir de quand l'ordinateur utilise
| # le swap sur le DD comme RAM
| vm.swappiness = 10
| ========
J'ai ensuite tenté un swapoff / swapon comme conseillé dans l'article mais ça n'a pas changé le paramètrage.
| ========
| simon@ordi:~$ sudo swapoff -a
| simon@ordi:~$ sudo swapon -a
| simon@ordi:~$ cat /proc/sys/vm/swappiness
| 60
| ========
Je tente un redémarrage pour voir si le réglage est pris en compte.
[Edit: Après redémarrage :
| ========
| simon@debian:~$ cat /proc/sys/vm/swappiness
| 10
| ========
Il faut donc bien redémarrer pour que le changement soit pris en compte.
Un outil pour modifier la RAM à la volée en passant par le port FireWire. L'attaque est rendue possible car le port FireWire peut accéder et modifier la plage mémoire normalement réservée au noyau. (Il n'y a pas de vérification pour aller plus vite...)
Un exemple d'utilisation : http://progdupeu.pl/tutoriels/285/jouons-avec-lauthentification-windows/