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

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

[ Hits: 5.635 ]

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

Contornando problemas de falta de bibliotecas - Links simbólicos

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

Atualizar simultaneamente o Kernel e o driver Nvidia no Sabayon Linux

Editando diretamente o arquivo controlador do GRUB 2

FlashGot - Usando aceleradores de download, sem precisar de linha de comando

Leitura recomendada

Fragmentação grave

CONISLI - Congresso Internacional de Software Livre 2007

Criando bibliotecas (shared library) *.so

Quotas de disco no OpenBSD

dag.repo para yum no rhel4

  

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