OK, então eu tenho um sistema somente leitura em funcionamento em um cartão SD que permite que o interruptor de leitura / gravação seja configurado para o modo somente leitura. Eu vou responder a minha própria pergunta, já que tenho a sensação de que vou estar olhando aqui novamente para os passos, e espero que isso ajude alguém a sair.
Enquanto definia vários diretórios em /etc/fstab como somente leitura em um sistema Red Hat Enterprise Linux 6.6, eu encontrei o arquivo /etc/sysconfig/readonly-root . Isso despertou meu interesse no que esse arquivo foi usado, assim como qualquer informação auxiliar referente a ele. Em resumo, este arquivo contém uma linha que diz " READONLY=no ". A alteração dessa linha carrega automaticamente a maior parte do sistema de arquivos raiz como somente leitura, preservando as operações de gravação necessárias em vários diretórios (diretórios e arquivos são carregados como tmpfs). As únicas alterações que tive que fazer foram definir /home , /root e alguns outros diretórios como graváveis através do diretório /etc/rwtab.d e modificar o / etc / fstab para carregar o sistema de arquivos raiz como somente leitura (alterado) defaults "para" ro "para raiz). Depois de definir " READONLY=yes " no arquivo /etc/sysconfig/readonly-root e definir meus diretórios graváveis necessários por meio de /etc/rwtab.d , bem como a fstab change, consegui fazer com que o sistema fosse carregado somente leitura, mas diretórios graváveis carregados na RAM.
Para mais informações, estes são os recursos que usei:
-
link (especifica como criar arquivos no diretório
/etc/rwtab.d/para carregar arquivos e diretórios como graváveis) - link (mais informações sobre o arquivo readonly-root e o Linux stateless)
- link
- E, claro, navegar por
/etc/rc.d/rc.sysinitmostra como arquivos e pastas são montados como somente leitura. O arquivoreadonly-rooté analisado dentro dorc.sysinit, para aqueles que estão procurando comoreadonly-rooté usado no processo init.
Além disso, fiz uma verificação rápida no Red Hat Enterprise Linux 7.0, e este arquivo ainda está lá e funciona. Meu ambiente de teste era o CentOS 6.6 e 7.0 em uma máquina virtual, assim como o RHEL 6.6 e 7.0 em um computador de placa única VME.
NOTA: Uma vez que a raiz é somente leitura, nenhuma alteração pode ser feita no sistema raiz. Por exemplo, você não pode usar o yum para instalar pacotes e fazê-los persistir na reinicialização. Portanto, para quebrar a raiz somente leitura, adicionei uma linha grub que remove o rhgb e o quiet (isso é apenas para depurar problemas de inicialização, você pode deixá-los se quiser) e adicionou " init=/bin/bash ". Isso me permitiu entrar em um terminal. Uma vez no terminal, eu digitei " mount - / -oremount,rw " para ter o sistema gravável. Uma vez gravável, modifiquei (usando vim ) /etc/sysconfig/readonly-root para dizer " READONLY=no " e reiniciei o sistema. Isso me permite executar a manutenção no sistema desativando o modo somente leitura. Se você estiver usando um cartão SD como eu sou, então a chave de leitura / gravação no cartão SD precisa ser configurada para gravável.