Linux avançado: Controle de inicialização em Sabayon Linux

Publicado por Alberto Federman Neto. em 24/03/2015

[ Hits: 5.614 ]

Blog: https://ciencialivre.blog/

 


Linux avançado: Controle de inicialização em Sabayon Linux



A presente dica é um complemento, atualização, desta outra dica mais antiga:
Usuários de Sabayon já sabem que essa distribuição usa para sua inicialização, o moderno systemd.

Entretanto, em um micro relativamente antigo, meu Atlhon X2, o systemd não funciona bem e necessitei manter o clássico OpenRC SysVinit. Esse foi o objetivo tratado na dica citada acima.

Após mais de um ano usando OpenRC, eis que, após as atualizações "Rolling Release" do dia 16-03-2015... Pronto, sem boot... Inicialização não executada e sistema montado somente leitura...

Mais um "pepino" do excelente, mas um tanto complicado Sabayon Linux!

Mexi e fucei até resolver o problema. Por isso, resolvi ajudar a Comunidade Sabayonera, através de mais esta dica. Se você usa Sabayon e também teve este problema, veja como solucionar.

Resumo dos comandos para resolver

Os seguintes comandos, executados diretamente, como root e em ambiente chroot, resolvem os problemas:

# equo update
# equo unmask openrc udev systemd
# equo i -av --nodeps openrc udev systemd xf86-input-evdev
# equo mask systemd udev sysvinit openrc

Resolvido

Para mostrar que os problemas foram resolvidos e que o boot voltou, veja meu screenshot. É Sabayon Linux 15.03 (de março de 2015), aberto em KDE com Kwin e "rolado" por vários anos, desde uma versão original instalada do 5.2. Nunca precisou ser reformatado:
Linux: Linux avançado: Controle de inicialização em Sabayon Linux
Inclusive, essa mesma instalação tem GNOME 2 mantido e vários outros ambientes gráficos:

Detalhamento

Se quiser ver como descobri e equacionei os problemas, e os resolvi, veja os passos abaixo. Advirto que é necessário ter certa prática com o uso de Sabayon Linux, bem como saber como ele funciona.

1. Porque o problema ocorre?

Inicialmente, verifiquei o que causava o problema. Chequei se os pacotes OpenRC e SysVinit (veja dica anterior, citada acima) estavam instalados.

Mesmo tendo o pacote systemd mascarado (para não entrar), durante as atualizações, o sistema havia perdido o pacote OpenRC e não achava mais o executável "rc", então não inicializava.

2. Primeiro passo: reinstalar OpenRC.

Como não há inicialização, então é necessário "fazer chroot". Se você não sabe como fazê-lo, consulte estas dicas:
Através de um live-CD de Sabayon ou qualquer outra distro, "faça chroot". Assim estará trabalhando "dentro" da instalação de Sabayon que não está inicializando.

Sob o ambiente chroot, atualizei os repositórios do Sabayon, procurei pelo pacote do OpenRC, simulei a instalação e o reinstalei. Faça-o sem as dependências, ou poderá quebrar sua instalação (por causa dessas dependências, que são todas de systemd).

O processo todo pode ser feito com os seguintes comandos:

# equo update
equo s openrc
# equo i -p --nodeps openrc
# equo i -av --nodeps openrc

3. Segundo passo: reinstalar o udev

Após fazer a reinstalação do OpenRC (passo 2), verifiquei que ainda não havia boot, faltava o executável "udev". Procurei por ele, e vi que em Sabayon, só havia um "udev virtual", que não funcionava, mas já estava instalado:

equo s udev
Pacote: virtual/udev-215 branch: 5, [sabayonlinux.org]
Disponível:   versão: 215 ~ tag: NoTag ~ revisão: 0
Instalado:    versão: 215 ~ tag: NoTag ~ revisão: 0
Slot:         0
  Descrição:    Virtual to select between different
                     udev daemon providers


Procurei se havia udev para Gentoo e havia, mas estava já "embutido" dentro do pacote systemd. Vejam:

emerge -s udev
sys-fs/udev
      Latest version available: 218
      Latest version installed: [ Not Installed ]
      Size of files: 3.695 KiB
      Homepage:      http://www.freedesktop.org/wiki/Software/systemd
      Description:   Linux dynamic and persistent device naming support (aka userspace devfs)
      License:       LGPL-2.1 MIT GPL-2


# emerge -av --nodeps sys-fs/udev
>>> Verifying ebuild manifests
>>> Emerging (1 of 1) sys-fs/udev-218::gentoo
>>> Resuming download...
>>> Downloading 'ftp://ftp.las.ic.unicamp.br/pub/gentoo/distfiles/systemd-218.tar.xz'
--2015-03-20 14:10:38--  ftp://ftp.las.ic.unicamp.br/pub/gentoo/distfiles/systemd-218.tar.xz
           => "/usr/portage/distfiles/systemd-218.tar.xz"
Resolvendo ftp.las.ic.unicamp.br... 143.106.60.118
Conectando-se a ftp.las.ic.unicamp.br|143.106.60.118|:21... conectado.
Acessando como anonymous ... Acesso autorizado!
==> SYST ... feito.   ==> PWD ... feito.
==> TYPE I ... feito. ==> CWD (1) /pub/gentoo/distfiles ... feito.
==> SIZE systemd-218.tar.xz ... 3782276
==> PASV ... feito.   ==> REST 1522796 ... feito.
==> RETR systemd-218.tar.xz ... feito.
Tamanho: 3782276 (3,6M), 2259480 (2,2M) restantes (sem autoridade)
systemd-218.tar.xz   50%[++++++++==>           ]   1,82M   232KB/s             ^C


Abortei então a instalação em "modo Gentoo" (para não conflitar versões) e optei por usar o próprio pacote systemd do Sabayon (pois já contém o udev). Desmascarei-o e instalei sem as dependências:

# equo unmask systemd
# equo i -av --nodeps systemd

4. Terceiro passo: reinstalar o driver evdev

Após ter executado os passos acima, verifiquei que havia boot, inclusive do sistema gráfico, porém, ainda sem controle de teclado e nem de mouse.

Essa ocorrência de erro foi solucionada pela reinstalação do driver evdev adequado (procedimento reportado por Sabayonino, Itália):
# equo i -av xf86-input-evdev

5. Quarto passo: verificar a presença dos pacotes

Verifiquei então se eu tinha todos os pacotes para poder usar OpenRC, junto com systemd (apenas para rodar o udev). Necessário ter openrc, sysvinit, udev virtual, systemd e xf86-input-evdev:

equo s openrc sysvinit systemd xf86-input-evdev udev
Pacote: sys-apps/openrc-0.13.11 branch: 5, [sabayonlinux.org]
        Disponível:   versão: 0.13.11 ~ tag: NoTag ~ revisão: 0
       Instalado:    versão: 0.13.11 ~ tag: NoTag ~ revisão: 0
     Slot:         0
     Homepage:     http://www.gentoo.org/proj/en/base/openrc/
      Descrição:    OpenRC manages the services, startup
                   and shutdown of a host
Licença:      BSD-2
Pacote: sys-apps/sysvinit-2.88-r10 branch: 5,
Instalado:   versão: 2.88-r10 ~ tag: NoTag ~ revisão: 0
Slot:        0
Homepage:    http://savannah.nongnu.org/projects/sysvinit
Descrição:   /sbin/init - parent of all processes
   Licença:     GPL-2
Pacote: sys-apps/gentoo-systemd-integration-4 branch: 5, [sabayonlinux.org]
       Disponível:   versão: 4 ~ tag: NoTag ~ revisão: 1
    Instalado:    versão: 4 ~ tag: NoTag ~ revisão: 1
       Slot:         0
     Homepage:     https://bitbucket.org/mgorny/gentoo-systemd-integration
         Descrição:    systemd integration files for
                   Gentoo
Licença:      BSD
Pacote: sys-apps/systemd-215-r3 branch: 5, [sabayonlinux.org]
Disponível:   versão: 215-r3 ~ tag: NoTag ~ revisão: 2
  Instalado:    versão: 215-r3 ~ tag: NoTag ~ revisão: 2
Slot:         0
Homepage:     http://www.freedesktop.org/wiki/Software/systemd
Descrição:    System and service manager for
         Linux
   Licença:      GPL-2 LGPL-2.1 MIT public-domain
Pacote: x11-drivers/xf86-input-evdev-2.9.1 branch: 5, [sabayonlinux.org]
Disponível:   versão: 2.9.1 ~ tag: NoTag ~ revisão: 2
Instalado:    versão: 2.9.1 ~ tag: NoTag ~ revisão: 2
Slot:         0
Homepage:     http://xorg.freedesktop.org/
Descrição:    Generic Linux input driver
Licença:      MIT
Pacote: virtual/udev-215 branch: 5, [sabayonlinux.org]
Disponível:   versão: 215 ~ tag: NoTag ~ revisão: 0
Instalado:    versão: 215 ~ tag: NoTag ~ revisão: 0
Slot:         0
Descrição:    Virtual to select between different udev daemon providers
  Licença:


6. Sexto passo

Mascarei todos os pacotes novamente, para que as atualizações (ao "forçar" o systemd a ser atualizado) não destruam a infraestrutura OpenRC-SysVinit:

# equo mask systemd udev sysvinit openrc

Mascarados, nem OpenRC, nem systemd serão mais atualizados automaticamente.

Nesta dica, foram aplicados conceitos de atualização controlada de Sabayon:
Outras dicas deste autor

Seu compilador GCC não funciona mais, como solucionar?

Multifuncional HP Deskjet 2050 - scanner não funciona no Sabayon Linux [Resolvido]

Sabayon Linux - Nova sintaxe e modos de uso dos repositórios

Diminuindo tamanho de imagens (truques simples)

ZSWAP controlável. ligável e desligável - pacote completo

Leitura recomendada

APP Notify - Como fazer seu servidor Linux enviar notificação para o celular

Troque o Basename por Expansão de Parâmetros

Utilização de SSH com par de chaves criptográficas

Imprimindo em uma HP Laserjet 3030 conectada a um Jetdirect através linha de comando

UNIX AIX: Utilitario de administração smit

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts