Linux: bloqueando o sistema de arquivos raiz para somente leitura

3

Eu tenho um computador industrial (leia-se: sem teclado / mouse / monitor, exceto durante a manutenção), que irá controlar algumas máquinas. O sistema operacional será o Linux (eu preferiria o OpenSuSE, mas não é um requisito estrito). O software não precisa armazenar nada entre lançamentos sucessivos.

Eu quero que o usuário final seja capaz de desligar o computador a qualquer hora que desejar, sem enviar um comando shutdown -h now ou algo parecido e esperar que o computador seja desligado. Para conseguir isso, eu quero usar union mount, provavelmente aufs , para que o SSD com sistema de arquivos raiz é acessado apenas para leitura e NUNCA é escrito para.

O artigo Live USB no wiki do OpenSuSE diz apenas dd o * .iso com o sistema operacional na unidade flash. Eu acho que isso funcionará com o SSD também. Mas eu não quero que o SSD tenha o sistema de arquivos ISO 9660. Posso apenas instalar o OpenSuSE corretamente em dizer ext2 / 3/4 ou XFS ou qualquer outra coisa e bloquear o SSD da escrita, redirecionando todos os pedidos de gravação para um disco RAM através de aufs ?

Poderia, por favor, me dar uma dica sobre como implementar isso?

    
por ScumCoder 15.10.2014 / 15:27

1 resposta

0

Você precisa fazer alterações na imagem initrd usada no momento da inicialização para que isso aconteça.

Dê uma olhada no Como : Construa um sistema Linux somente leitura , que explica como fazê-lo para os sistemas Ubuntu. Sem dúvida, a infraestrutura do initramf no Suse será um pouco diferente, mas não deve ser difícil de se adaptar.

Alternativamente, veja como a distribuição ao vivo está fazendo isso, extraia os bits relevantes e adicione-os ao seu initrd atual. O initrd é um arquivo cpio, extrai-o com cpio e olha o script de inicialização, é onde toda a mágica acontece.

Estou mais familiarizado com o modo como o knoppix faz isso, mas você provavelmente encontrará o suse fazendo algo muito semelhante:

  • montar o sistema de arquivos raiz somente leitura
  • monte o tmpfs para o ramo de leitura / gravação
  • coloque-os em cima uns dos outros com aufs
  • use o pivot_root para alterar o sistema de arquivos raiz.
por 30.10.2014 / 11:04