Recentemente conheci o BrazilFW, uma solução perfeita para minha necessidade de ter controle sobre o acesso à Internet da rede local. O ponto alto dele é a simplicidade. Se alguma coisa der errado, qualquer outro computador velho que estiver encostado pode substituir o servidor e tudo pode ser instalado em minutos.
Estou usando a versão 2.32.2 e a única coisa que não gosto é de reiniciar a cada addon que preciso instalar. Para mim, falar no diabo e falar em reiniciar o computador é a mesma coisa. O Windows tem uma péssima reputação no mundo dos servidores por precisar reiniciar com certa frequência. No meu ponto de vista, nenhum software deve exigir reinicialização. Se mesmo alterações no kernel podem ser feitas sem reiniciar, porque um simples addon precisa reiniciar?
Eu não costumo aceitar as coisas do jeito que são, sempre procuro pela melhor forma de resolver um problema. Revirei os arquivos e códigos do BrazilFW e encontrei. Instalar um addon sem reiniciar é possível e bem fácil.
Para os apressadinhos, vamos logo aos comandos. Comece pelo procedimento padrão para baixar o addon, mas depois temos alguns truques extras:
Feito isso, seu addon está instalado e funcionando. Dependendo do addon que você instalou ainda será necessário configurar ele pela interface Webadmin. Pronto? Não, eu nunca fico satisfeito em fazer funcionar até entender como funciona.
O BrazilFW é um pouco diferente da maioria das distribuições. Quando instalamos, ele cria uma partição vfat
e opcionalmente uma partição adicional ext3
. A primeira partição, é onde está o syslinux
, os arquivos de inicialização e todos os seus addons. O syslinux
carrega o kernel
com o parâmetro initrd=root.tgz
. Então o sistema de arquivos em /
que você vê fica todo armazenado na memória RAM (é um tmpfs
), e qualquer alteração que você fizer será perdida ao reiniciar. Por isso a necessidade de sempre efetuar um backup
ao modificar alguma configuração.
syslinux
passa o controle para o kernel
, ele monta o root.tgz
e procura pelo inittab
. O inittab
por sua vez chama o shell script /etc/rc.d/rc.sysinit
que, entre outros procedimentos, extrai os seus addons (o mesmo que eu faço em tar rxzf /mnt/bmt.tgz -C /
) e registra ele numa lista de addons (o mesmo que eu faço em echo bmt >> /var/lib/lrpkg/packages
). Em seguida, o /etc/rc.d/rc.sysinit
passa a bola para o /etc/rc.d/rc.S
que, entre outras funções, repassa ao /etc/rc.d/rc.M
. Por sua vez o /etc/rc.d/rc.M
faz uma série de procedimentos, entre eles executa todos os arquivos encontrados em /etc/rc.d/pkgs/rc.*
(o mesmo que eu faço em /etc/rc.d/pkgs/rc.bmt
) e por fim chama o /etc/rc.d/rc.local
que encerra a história.
Ou seja, os comandos ali em cima, além de baixarem o addon para a pasta correta, fazem o mesmo que os scripts de inicialização fazem. Se você ficou interessado em saber em mais detalhes sobre tudo o que acontece durante a inicialização recomendo que leia o HOWTO De Quando é Ligado até o Bash, só tenha em mente que lá mostra o que acontece em uma distribuição padrão, o init
do BrazilFW não possui run-levels
.
Então, gostou? E agora, também quer desinstalar addons sem precisar reiniciar? Aguarde que no próximo artigo mostro isso.
br_lemes, o Elfo insano (Piromaníaco)
Theme by Breno Ramalho Lemes under Creative Commons Attribution, based on Jekyll Clean by Scott Emmons and icons by FatCow.