Como faço para o Ubuntu "à prova de perda de energia"?


18

Eu gosto de executar um sistema autônomo para uso diário do 'quiosque'.

No entanto, o sistema pode ser desligado a qualquer momento sem que alguém faça um desligamento adequado antes. Por padrão, não se espera que o Ubuntu seja desligado por perda de energia. Após a reinicialização após uma perda de energia, o fsck pode ser executado para verificar o sistema de arquivos, e o fsck pode solicitar ao sistema que reinicie após a conclusão. Portanto, mesmo que nenhum dado de configuração seja corrompido, a máquina poderá não inicializar bem após a perda de energia. Então, testei algumas soluções alternativas:

  1. altere a prioridade do fsck de montagem raiz para 0(último campo na fstabentrada raiz) que impede a execução fsckapós cada perda de energia. No entanto, o sistema pode inicializar com raiz, somente leitura, o que não é esperado por muitos serviços e resulta em um prompt de login do console, em vez do login gráfico.

  2. Substitua errrors=remount-ropor errors=continue. Isso dá uma sensação ruim de que mais perda de dados pode ocorrer por um sistema de arquivos incosistente. No entanto, com fsckativado novamente, ele deve aumentar a propabilidade de inicialização do sistema após a perda de energia. Então eu larguei 1).

  3. Reconfigure o grub2 para usar um tempo limite normal da opção padrão após uma falha na inicialização. Para isso, eu adicionei GRUB_RECORDFAIL_TIMEOUT=0a /etc/default/grub.

No entanto, é difícil saber se esses hacks tornam o sistema à prova de perda de energia. Alguma ideia? Mais alguém pode fazer?


11
Eu realmente não entendo o que você está tentando alcançar. O que você quer dizer com "prova de perda de energia"? Você pode esclarecer um pouco?
— André Stannek

Adicionada uma introdução esclarecedora. Gosto de um sistema que se levanta rapidamente novamente, normalmente, sem interação de manutenção após a perda de energia.
— Dronus #

Respostas:


16

Para aplicativos de quiosque, o problema é resolvido usando uma partição raiz somente leitura. Além disso, quaisquer alterações feitas ou salvas pelos usuários são desfeitas na próxima reinicialização.

Para fornecer uma raiz gravável para a maioria das necessidades de aplicativos, overlayfs pode ser usado para sobrepor a partição somente leitura com um tempfs ram gravável.

Há um script que ajuda a criar essa configuração na parte inferior de https://help.ubuntu.com/community/aufsRootFileSystemOnUsbFlash . O script contém as instruções para configurar isso:

  • coloque o arquivo em / etc / initramfs-tools / scripts / init-bottom / root-ro
  • sudo chmod 0755 root-ro
  • sudo update-initramfs -u

Eu sugiro para adicionar GRUB_RECORDFAIL_TIMEOUT=0ao /etc/default/grube correr sudo update-grubmuito, caso contrário, o menu de inicialização pode aparecer sem tempo limite.

Depois disso, reinicie. A máquina inicia no modo somente leitura, que pode ser verificado por mount. Qualquer alteração aplicada desaparecerá na próxima reinicialização. Para fazer alterações, instalar software e atualizações, etc., basta acessar o menu GRUB, pressionar epara alterar as linhas de comando de inicialização e anexar disable-root-ro=trueà linha que começa com o kernel. Pressione F10 para continuar a inicialização. Você pode então usar mountpara confirmar que o root está montado como gravável, como de costume. Faça as alterações e reinicie, o sistema é novamente somente leitura.


+1 porque um sistema de arquivos raiz somente leitura foi a primeira coisa que me veio à mente.
— Nathan Osman

Isso realmente funciona muito bem. No entanto, após qualquer montagem de leitura / gravação, o sistema deve ser reiniciado corretamente novamente para verificar se tudo está limpo. Coisas como o GRUB à prova de falhas, um navegador que mostra que não estava bem fechado ou fsck, caso contrário, seria conservado para sempre. Se isso acontecer, é preciso reiniciar a leitura / gravação outra vez e desligar novamente.
— Dronus

9

Algumas vezes após uma reinicialização impura (por exemplo, perda de energia ou botão de redefinição pressionado ou até mesmo um pânico no kernel), o sistema não inicializa solicitando que você pressione "y" para que um fsck conserte a partição.

Se você deseja evitar isso, edite / etc / default / rcS e altere:

FSCKFIX=no

Para:

FSCKFIX=yes

Isso garantirá que esse reparo seja executado automaticamente sem avisar.

A desvantagem pode ser que você pode perder dados e retirar o disco rígido e cloná-lo primeiro, se houver algo crítico nele que não seja feito backup.

Por exemplo, se o seu controlador de disco rígido tiver uma falha e o fsck identificou falsamente a partição como quebrada e tenta repará-la, isso pode levar à perda de dados que, de outra forma, poderiam ser evitados. Eu nunca experimentei isso sozinho e lidei com quase mil servidores nos últimos sete anos, mais ou menos - mas ainda assim, isso é algo a ser lembrado.


7

A partir de hoje, para um quiosque solução também se pode instalar o pacote só de leitura overlayrootpor

sudo apt-get install overlayroot

que fornecerá facilmente uma solução completa como a da resposta aprovada. Também permite o comando benéfico

sudo overlay-chroot

que fará logon em um shell com o antigo disco base somente leitura montado /. É então possível fazer alterações no sistema protegido, como por exemplo, usar apt-getpara instalar pacotes no antigo disco somente leitura. No entanto, após sair do shell, é altamente recomendável reiniciar, pois os arquivos sobrescritos temporariamente na RAM podem obscurecer os recém-instalados.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.