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.









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.