Estendendo à quase eternidade a vida útil do SD card na Raspberry Pi
Para quem já teve problemas de corrupção de dados em cartões SD com placas Raspberry Pi em dispositivos de campo pensei nesta solução simples, mas eficaz. A ideia é montar tudo que precisa ser escrito em ramdisk via tmpfs e, após a inicialização do sistema operacional, fazer um remount como read-only.
Inicialmente tentei, sem sucesso, incluir a opção ro (read only) no /boot/cmdline.txt, então parti para algo mais “manual”.
Primeiramente vamos editar o arquivo /etc/fstab e deixá-lo parecido com este:
proc /proc proc defaults 0 0 /dev/mmcblk0p1 /boot vfat defaults 0 2 /dev/mmcblk0p2 / ext4 defaults,noatime,nodiratime,commit=90 0 0 tmpfs / tmpfs defaults,noatime,nodiratime tmpfs /tmp tmpfs defaults,noatime,nodiratime tmpfs /var/log tmpfs defaults,noatime,nodiratime tmpfs /var/spool/ tmpfs defaults,noatime,nodiratime
Disse “parecido” pois ele pode ser diferente para cada necessidade, distribuição etc.
Após o sistema operacional ser iniciado, remonte o sistema de arquivos “/” (raiz) como ro com o seguinte comando:
mount -o remount,ro /
Para automatizar o processo você deve escrever scripts de inicialização. Não vou me adentrar nisso por fugir do escopo do artigo.
Saiba mais
Primeiros passos com Linux na Raspberry Pi 3
Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.






Isso implica que arquivos de log e journal passam a ser voláteis e registros que seriam importantes para aplicações embarcadas teriam que ser enviados para armazenamento externo, num servidor ou nuvem. É isso mesmo?
Depende do que você vai fazer. Nem sempre precisamos de logs e dados de journal. Eu por exemplo fiz um trabalho recentemente onde informações do ambiente eram armazenadas previamente em ramdisk e dalí enviadas para uma infra externa e só era gravada no SD caso de faltar internet.