3. O Subsistema rc e os Sistemas de Arquivos Read-Only

A inicialização pós-boot de um sistema FreeBSD embarcado é controlada por /etc/rc.initdiskless.

O /etc/rc.d/var monta o /var como um sistema de arquivos em memória, cria uma lista configurável de diretórios em /var com o comando mkdir(1) e altera os modos em alguns desses diretórios. Na execução do /etc/rc.d/var, uma outra variável rc.conf entra em jogo – varsize. Uma partição /var é criada por /etc/rc.d/var baseado no valor desta variável em rc.conf:

varsize=8192

Lembre-se de que esse valor é informado em setores, por padrão.

O fato do /var ser um sistema de arquivos read-write é uma distinção importante, pois a partição / (e quaisquer outras partições que você possa ter em sua mídia flash) deve ser montada como read-only. Lembre-se que em Seção 1, “Dispositivos de Disco de Estado Sólido” detalhamos as limitações da memória flash - especificamente a capacidade de gravação limitada. A importância de não montar sistemas de arquivos em mídia flash em modo read-write, e a importância de não usar um arquivo de swap, não pode ser exagerado. Um arquivo de swap em um sistema ocupado pode inutilizar uma mídia flash em menos de um ano. Criação de log pesado ou criação e destruição de arquivos temporários podem fazer o mesmo. Portanto, além de remover a entrada swap do seu /etc/fstab, você também deve alterar o campo Options para cada sistema de arquivos para ro como segue:

# Device                Mountpoint      FStype  Options         Dump    Pass#
/dev/ad0s1a             /               ufs     ro              1       1

Alguns aplicativos no sistema começarão a falhar imediatamente como resultado desta alteração. Por exemplo, o cron não será executado corretamente como resultado da falta de crontabs no /var criado pelo /etc/rc.d/var, o syslog e o dhcp também irão encontrar problemas como resultado do sistema de arquivos estar em modo read-only e dos itens ausentes no /var que o /etc/rc.d/var criou. Estes são apenas problemas temporários, embora sejam abordados, juntamente com soluções para a execução de outros pacotes de software comuns em Seção 5, “Estratégias do Sistema para Ambientes Pequenos e Somente Leitura”.

Uma coisa importante para lembrar é que um sistema de arquivos que foi montado como read-only com o /etc/fstab pode ser colocado em modo read-write a qualquer momento, executando o comando:

# /sbin/mount -uw partition

e pode ser alternado de volta para somente leitura com o comando:

# /sbin/mount -ur partition

All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.