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

Project Vault