Como faço para que o Ubuntu seja “à prova de perda de energia”?

17

Eu gosto de executar um sistema sem supervisão para uso diário de 'quiosque'.

No entanto, o sistema pode ser desligado a qualquer momento sem que alguém faça um desligamento adequado antes. Por padrão, o Ubuntu não deve ser 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 que o sistema seja reinicializado após a conclusão. Portanto, mesmo que nenhum dado de configuração seja corrompido, a máquina pode não inicializar bem após a perda de energia. Então testei algumas soluções alternativas:

  1. altere a prioridade fsck da montagem raiz para 0 (último campo na entrada de raiz fstab ) que impede a execução de fsck após cada perda de energia. No entanto, o sistema pode inicializar com somente leitura montado na raiz, 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-ro por errors=continue . Isso dá uma sensação ruim de que mais perda de dados pode ocorrer por um sistema de arquivos incensável. No entanto, com fsck habilitado novamente, ele deve aumentar a capacidade de inicialização do sistema após a perda de energia. Então eu caí 1).

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

No entanto, é difícil saber se esses hacks fazem a prova de perda de energia do sistema. Alguma ideia? Mais alguma pode fazer?

    
por dronus 04.11.2012 / 15:54

3 respostas

16

Para o aplicativo de quiosque, o problema é resolvido usando uma partição raiz somente leitura. Além disso, quaisquer alterações que os usuários façam ou salvem serão desfeitas na próxima reinicialização.

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

Existe um script que ajuda a criar essa configuração na parte inferior do link . 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

Sugiro adicionar GRUB_RECORDFAIL_TIMEOUT=0 a /etc/default/grub e executar sudo update-grub também, caso contrário, o menu de inicialização pode aparecer sem tempo limite.

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

    
por dronus 16.02.2013 / 17:44
8

Algumas vezes após uma reinicialização impura (digamos, perda de energia ou botão reset pressionado ou até mesmo um kernel panic), o sistema não inicializará pedindo que você pressione "y" para um fsck para reparar a partição.

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

FSCKFIX=no

Para:

FSCKFIX=yes

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

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

Por exemplo, se o seu controlador de disco rígido tiver uma falha e o fsck identificar falsamente a partição como corrompida e tentar repará-la, isso pode levar à perda de dados que pode ser evitada. Eu nunca experimentei isso e já lidei com cerca de mil servidores nos últimos 7 anos ou mais - mas ainda assim isso é algo para se ter em mente.

    
por Roman Gaufman 28.01.2013 / 23:37
4

A partir de hoje, para uma solução somente leitura de quiosque, também é possível instalar o pacote overlayroot por

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á o login em um shell com o antigo disco base somente leitura montado em / . É então possível fazer qualquer alteração no sistema protegido como um e, por exemplo, usar apt-get para instalar pacotes no antigo disco somente leitura. No entanto, após sair do shell, uma reinicialização é altamente recomendada, pois arquivos temporariamente sobrescritos na RAM podem obscurecer os recém-instalados.

    
por dronus 20.12.2015 / 22:44

Tags