Translate

Mostrando postagens com marcador BtrFS. Mostrar todas as postagens
Mostrando postagens com marcador BtrFS. Mostrar todas as postagens

sábado, 2 de setembro de 2017

openSUSE Tumbleweed - desastre e recuperação

openSUSE Tumbleweed recuperado e atualizado, depois de 49 dias

• Cerca de 26 horas depois de instalar o openSUSE Tumbleweed, — configurar tudo, atualizar os pacotes (inclusive Kernel), e instalar novos aplicativos, — a conexão web deixou de funcionar, para nunca mais.

2017-09-01 - 20:47 - Finishing installation
2017-09-02 - 21:08 - Tumbleweed working fine
2017-09-02 - 22:36 - CPU high activity & Freeze

“Nunca mais”, — até carregar um snapshot anterior do sistema, tal como era, 2 horas depois de instalado, — e isto só veio a ser feito agora, 50 dias depois.

Essa demora, — poder dispor de tempo sem limite, para pesquisar com calma, e ainda pensar em outras mil outras hipóteses a pesquisar, — foi possibilitado pela existência de várias distros instaladas em dualboot. Nada é urgente, e o trabalho não precisa ser interrompido.

Durante 50 dias, não foi encontrada nenhuma solução mais simples, — coisa difícil, sem conexão à internet: — Carregar outro sistema, pesquisar, anotar mil comandos e dicas, tornar a carregar o Tumbleweed para testar… e assim por diante.

Esta já era a 3ª instalação, — a primeira, em partições ext4; (a 2ª já não lembro como), — e por fim, em partições BtrFS e XFS, como manda o figurino.

Reinstalar pela 4ª vez não ensinaria nada.

Fato é que essa 3ª instalação do Tumbleweed está (quase) perfeita, — totalmente configurada, — e até hoje, não apresentou nenhum dos problemas surgidos nas 2 instalações anteriores.

“Apenas”, não conectava, — ou o Firefox, o Chromium, os comandos zypper não encontravam a conexão.

Quanto à causa, só posso especular que fosse consequência de mudar à força o hostname, — mas desfazer essa mudança manual não resolveu, — por isso, não se comprovou.

Em máquina com BIOS, bastou salvar o Grub do Tumbleweed na MBR de algum HDD ou SSD

Preferia, mil vezes, conseguir consertar o problema, — comprovar a causa e aprender, — por isso, adiei o rollback por tanto tempo.

De qualquer modo, fazer o rollback, — que só conhecia teoricamente, — acabou sendo o aprendizado positivo, neste caso.

Índice


  • Recuperação do Tumbleweed
  • Atualização & upgrade
  • Montagem de partições adicionais
  • Configuração do Grub
  • Liberando espaço
  • Conky & Sensors
  • Instalação & desastre - O começo (to do)

Recuperação do Tumbleweed


Último snapshot capaz de carregar o openSUSE Tumbleweed conectado à internet

21 Out. 2017 - O primeiro passo para a solução era instalar a chamada do Grub em alguma MBR, — para ter a opção de carregar seus snapshots anteriores, até encontrar o último “estado” em que era capaz de se conectar automaticamente à internet:

flavio.@Linux6:~> sudo grub2-mkconfig -o /boot/grub2/grub.cfg
[sudo] senha para root:
Generating grub configuration file ...
Tema encontrado: /boot/grub2/themes/openSUSE/theme.txt
Imagem Linux encontrada: /boot/vmlinuz-4.12.9-1-default
Imagem initrd encontrada: /boot/initrd-4.12.9-1-default
Imagem Linux encontrada: /boot/vmlinuz-4.12.8-1-default
Imagem initrd encontrada: /boot/initrd-4.12.8-1-default
Encontrado KDE neon User Edition 5.11 (16.04) em /dev/sda1
Encontrado Mageia 6 (6) em /dev/sda2
Encontrado Debian GNU/Linux buster/sid em /dev/sda3
Encontrado Ubuntu 16.04.3 LTS (16.04) em /dev/sdb1
Encontrado openSUSE Leap 42.3 em /dev/sdb2
Encontrado Linux Mint 18 Sarah (18) em /dev/sdc1
Encontrado Slackware 14.2 em /dev/sdc2
Encontrado Arch Linux em /dev/sdc3
Encontrado Devuan GNU/Linux 1 (jessie) em /dev/sdd3
concluído
 
flavio.@Linux6:~> sudo grub2-install /dev/sdc
Instalando para a plataforma i386-pc.
Installation finished. No error reported.

O segundo comando, — instalar a chamada do Grub no MBR do 3º HDD, — evita afetar as outras 2 opções de Boot, pelo Grub do Mageia (sda) ou, quando necessário, pelo Grub do Leap (sdb).

Dispondo então do Menu de inicialização gerado pelo próprio openSUSE Tumbleweed, foi possível testar os snapshots disponíveis, — carregando sessões read-only de cada um deles, — e ficou confirmado que o último plenamente funcional era o nº 13, de 2 Set. 2017, à 0:07 (3:07 UTC).

Todos os snapshots após 3:07 UTC de 2 Set. 2017 não eram importantes nem desimportantes

De fato, uma verificação das capturas de tela, fotos de celular e anotações em caderno mostrou uma falha total de snapshots do resto do dia 2 Set. 2017, — um período enorme, em que foram tentadas inúmeras configurações, instalados vários pacotes e pelo menos um repositório, entre 12:07 e 22:30, — quando ocorreu o aparente congelamento do sistema.

No entanto, só havia mais snapshots de 6 Set. em diante, — quando já estavam sendo feitas novas tentativas de entender e consertar o problema.

Outra coisa que ficou evidente, — confirmada pela documentação do openSUSE, — é que as sessões de snapshot são “ready-only”, pero no mucho.

Os snapshots incluem apenas as pastas mais essenciais do sistema, — estas, sim, não-graváveis, — mas, ao carregar a sessão, elas são combinadas com outras pastas, “atuais” (correntes) e, portanto, modificáveis.

Por isso, várias configurações já não são as mesmas do momento de cada snapshot. — A impressão é de que valem as configurações “atuais”, — com todas as correções tentadas desde então.

Em resumo, — cada tentativa de solucionar o problema modifica a “cena do crime”. — É mais fácil restaurar um snapshot antigo, do que desemaranhar o enredo para encontrar 1 erro e corrigir.

Rollback do openSUSE Tumbleweed, — num piscar de olhos

Confirmado e re-confirmado que o snapshot das 3:07 de 2 Set. 2017 era o último 100% funcional, ele voltou a ser carregado, e — dentro dele, — foi disparado o comando rollback:

# snapper rollback

Snapshots criados e deletados pelo rollback do openSUSE Tumbleweed

Vai ser rápido, não foi? — Nem deu tempo de levantar para ir buscar um café.

Dá impressão de que apenas grava um “gatilho” em algum lugar, — que orienta o quê e como será carregado da próxima vez, — e depois do próximo boot começa a “manutenção”, propriamente dita, em segundo plano, enquanto você trabalha ou se diverte. Mas, esta é só a “impressão” de um leigo.

Feito o rollback, era necessário reiniciar o sistema, para carregar a nova situação “corrente”, — com todos os direitos, — pelo Grub do próprio Tumbleweed.

Atualização & upgrade


Comparativo dos sistemas Linux instalados em 23 Out. 2017

Após verificar que os repositórios voltaram a ser apenas os 4 originais, foi feita uma atualização dos pacotes, — não um upgrade do sistema, como talvez devesse fazer:

localhost:/home/flavio. # zypper update
Carregando dados do repositório...
Lendo os pacotes instalados...

Os seguintes 2 aplicativos serão instalados:
  …
Os seguintes 172 pacotes NOVOS serão instalados:
  …
O seguinte padrão NOVO será instalado:
  …
Os seguintes 79 aplicativos serão REMOVIDOS:
  …
O seguinte padrão será REMOVIDO:
  …
Os seguintes 1756 pacotes serão atualizados:

Os seguintes 27 padrões serão atualizados:

O seguinte produto será atualizado:
  …
O seguinte produto será reinstalado:
  …
1756 pacotes a atualizar, 172 novos.
Tamanho total do download: 1,55 GiB. Já em cache: 0 B. Após a operação, 597,2 MiB adicionais serão utilizados.
Continuar? [s/n/...? exibe todas as opções] (s):

O comando foi dado à 0:50 do dia 22, e pela manhã a atualização estava terminada, com um aviso de que … “Existem alguns programas em execução que podem utilizar arquivos removidos pela atualização recente. Convém verificar e reiniciar alguns deles. Execute 'zypper ps -s' para listá-los”.

De acordo com o /var/log/zypper/history, o download deve ter durado até 1:36, quando começou a instalação de fato, que foi rápida. O processo todo terminou às 2:09:

2017-10-22 01:36:59 | command|root@localhost|'zypper' 'update' | 
2017-10-22 02:09:46 /var/adm/update-scripts/adobe-sourcecodepro-fonts-…

Mais tarde, foi feito o upgrade do sistema, que àquela altura envolvia pouca coisa, — e o log indica que durou 19 segundos:

localhost:/home/flavio. # zypper dup --no-allow-vendor-change
Aviso: Você está prestes a fazer uma atualização da distribuição com todos os repositórios habilitados. Certifique-se de que esses repositórios são compatíveis antes de continuar. Consulte 'man zypper' para mais informações sobre este comando.

Os seguintes 7 pacotes NOVOS serão instalados:
  …
Os seguintes 16 pacotes serão REMOVIDOS:
  …
O seguinte pacote será desatualizado:
  …
1 pacote a desatualizar, 7 novos, 16 para remover.
Tamanho total do download: 1,7 MiB. Já em cache: 0 B. Após a operação, 11,4 MiB será liberado.
Continuar? [s/n/...? exibe todas as opções] (s):

A intenção é não usar o widget “atualizador” do Painel (packagekitd). — E chama atenção o fato de que ele não tomou nenhuma iniciativa de buscar informações ou sugerir nada, — ao contrário do comportamento automático observado no Leap, logo após o primeiro Boot do dia.

No dia 24 Out. 2017, finalmente o “atualizador” do Painel (packagekitd) se manifestou, — pela primeira vez, — após vários zypper up / dup.

Montagem de partições adicionais


Usando Krusader em modo root para copiar uma configuração testada no Leap e em outras distros

As configurações perdidas no rollback, — portanto, suspeitas de envolvimento nas ocorrências, — vão sendo refeitas, uma por uma.

A primeira foi autorizar a montagem automática de partições adicionais sem pedir senha, — básico, para o trabalho diário, — pela cópia de um arquivo já testado no Leap e em outros sistemas.

Depois disso, udisks voltou a montar as partições adicionais, automaticamente, no início de cada sessão.

Configuração do Grub


Configurando o Grub do Kubuntu para não gravar na MBR do sdc

O Leap já completou 9 meses, sem nenhum acidente que exigisse rollback para um snapshot, — daí, a decisão de não habilitar o Grub durante a instalação do Tumbleweed, — afinal,  o Grub do Mageia (sda) tem atendido bem, e ainda tinha de reserva o Grub do Leap (sdb).

Agora, a experiência mostra que o Tumbleweed precisa de seu próprio Grub, para rápido acesso a seus snapshots.

Num primeiro momento, bastaram os 2 comandos (citados acima), para instalar sua chamada na MBR do sdc, — mas o KDE Neon, o Debian testing, o Kubuntu LTS e o Mint KDE também estavam configurados para gravar em sdc. — Portanto, a qualquer momento, uma atualização fortuita poderia sobrescrever o Grub do Tumbleweed.

Nessas 4 distros, bastou rodar um comando para desativar a gravação na MBR do sdc, — ou em qualquer outro lugar:

$ sudo dpkg-reconfigure grub-pc

Falta descobrir o comando equivalente no Arch, — mas até lá, os riscos já ficam bem reduzidos.

Ampliação do espaço vertical do Menu de inicialização

Também foi editado o arquivo /boot/grub2/themes/openSUSE/theme.txt, para ampliar o espaço vertical do Menu de inicialização, de modo a caberem até 12 sistemas (e demais opções), “acima do horizonte” (sem necessidade de rolagem).

Alterações no tema do Grub2 do openSUSE (e do Mageia) para ampliar o Menu de inicialização

Após 2 ou 3 upgrades, o Menu do Grub voltou a ficar espremido num espaço acanhado, — e foi necessário refazer a edição. — Depois disso, foi guardada uma cópia theme_Modificado.txt.

Liberando espaço


Partição do openSUSE Tumbleweed com 18,3 GiB ocupados após 3 upgrades

O rollback não afetou significativamente o espaço ocupado na partição do sistema, — 8,88 GiB, segundo o Conky do Arch, carregado pouco depois, — mas os upgrades elevaram esse número para 15,1 GiB na manhã do dia 23; e para 18,3 GiB na manhã do dia 25.

A experiência ensina que 18,3 GiB, — numa partição de apenas 25 GiB (recomendam-se 50 GiB), — já está perigosamente perto do limite.

Você nunca pode prever um upgrade (ou qualquer outra coisa) que venha a precisar de mais espaço do que o disponível, — e que está longe de ser a mera subtração aritmética desses 2 números.

openSUSE Tumbleweed usando apenas 9.02 GiB após a remoção de snapshots

Após carregar e tornar a carregar o openSUSE Tumbleweed várias vezes e testá-lo em várias tarefas, finalmente foram deletados os antigos snapshots, bem como os “não-importantes” mais recentes, — exceto o último par (nº 30 e 31).

Dos mais antigos, o nº 15 não pôde ser deletado, — por ser o “estado atual” do sistema, — referido no Grub do Mageia, por exemplo, embora não no Grub do próprio Tumbleweed.

Com isso, o espaço ocupado caiu para 9,02 GiB, — praticamente a metade. — Bastante compatível com os números do openSUSE Leap e das demais distros instaladas.

Conky & Sensors


Concky e Weather, — com um fundo adequado à leitura dos dados

A re-instalação do Conky foi ficando para depois, por vários motivos: (a) Envolvia repositórios fora do padrão; (b) Não lembrava como tinha feito antes; (c) Imaginava ter de examinar o arquivo de log para checar eventuais mensagens de erro na vez anterior; (d) Imaginava ter de reler várias páginas.

Na verdade, bastou abrir o primeiro Bookmark guardado (só havia mais um), escolher “Tumbleweed”, — e a instalação já foi oferecida de bandeja. — Tudo se resolveu em 3 minutos, das 13:25 às 13:28, embora a maior parte desse tempo se deva à leitura antes dos cliques.

De acordo com o log do zypper, durou menos de 1 minuto:

2017-10-25 13:27:40|radd |http-download.opensuse.org-08aa4642|http://download.opensuse.org/repositories/openSUSE:/Tumbleweed/standard/|
2017-10-25 13:28:13|radd |http-download.opensuse.org-bd976a6e|http://download.opensuse.org/repositories/server:/monitoring/openSUSE_Tumbleweed/|
2017-10-25 13:28:14|command|root@localhost|'/usr/bin/ruby' '/usr/lib/YaST2/bin/y2start' 'OneClickInstallWorker' '--arg' '/tmp/YaST2-07681-L7WsHv/oneclickinstall.xml' 'qt' '-name' 'YaST2' '-icon' 'yast'|
2017-10-25 13:28:31|command|root@localhost|'/usr/bin/ruby' '/usr/lib/YaST2/bin/y2start' 'OneClickInstallWorker' '--arg' '/tmp/YaST2-07681-L7WsHv/oneclickinstall.xml' 'qt' '-name' 'YaST2' '-icon' 'yast'|
2017-10-25 13:28:32|install|libImlib2-1|1.4.10-1.3|x86_64||download.opensuse.org-oss|***KEY***|
2017-10-25 13:28:32|install|libircclient1|1.9-1.5|x86_64||download.opensuse.org-oss|***KEY***|
2017-10-25 13:28:32|install|liblua5_1-5|5.1.5-14.2|x86_64||download.opensuse.org-oss|***KEY***|
2017-10-25 13:28:33|install|libmicrohttpd12|0.9.55-1.2|x86_64||download.opensuse.org-oss|***KEY***|
2017-10-25 13:28:33|install|libxmmsclient6|0.8-2.5|x86_64||download.opensuse.org-oss|***KEY***|
# 2017-10-25 13:28:33 lua51-5.1.5-14.2.x86_64.rpm installed ok
# Additional rpm output:
# update-alternatives: using /usr/bin/lua5.1 to provide /usr/bin/lua (lua) in auto mode
# 
2017-10-25 13:28:33|install|lua51|5.1.5-14.2|x86_64||download.opensuse.org-oss|***KEY***|
2017-10-25 13:28:33|install|imlib2-loaders|1.4.10-1.3|x86_64||download.opensuse.org-oss|***KEY***|
2017-10-25 13:28:34|install|libtolua++-5_1-1|1.0.93-16.11|x86_64||http-download.opensuse.org-bd976a6e|***KEY***|
2017-10-25 13:28:34|install|conky|1.10.6-6.2|x86_64|7882:ruby|http-download.opensuse.org-08aa4642|***KEY***|

Efeito imediato da instalação do Sensors no Conky

Por fim, foi instalado o Sensors (pelo YaST2), — e no mesmo instante o Conky extraiu as strings de temperatura para exibição:

${alignr}Vcore ${alignr}${execi 10 sensors | grep -A 0 'Vcore' | cut -c 20-25} V
${alignr}+3.3 ${alignr}${execi 10 sensors | grep -A 0 '+3.3 Voltage' | cut -c 20-25} V
${alignr}+5 ${alignr}${execi 10 sensors | grep -A 0 '+5 Voltage' | cut -c 20-25} V
${alignr}+12 ${alignr}${execi 10 sensors | grep -A 0 '+12 Voltage' | cut -c 20-25} V

Um wallpaper mais adequado facilita a leitura das informações.

Instalação & desastre


openSUSE Tumbleweed instalado como devia, — sistema em partição BtrFS e /home em XFS

O relato dessa 3ª instalação do openSUSE Tumbleweed, — bem como das configurações realizadas nas primeiras 26 horas, antes do “desastre”, — exige o levantamento de outro conjunto de fotos, capturas de tela e anotações em papel (Caderno de informática), e será feito por último, em breve.

________________
Inicialmente publicado às 21:23 do dia 2 Set. 2017, — pouco antes do “desastre” (com apenas 1 ou 2 imagens), — mas desenvolvido somente de 21 a 25 Out. 2017, após a recuperação (rollback / recovery).

— … ≠ • ≠ … —

openSUSE



Não-debians


quarta-feira, 2 de agosto de 2017

openSUSE - removendo Snapper, PIM, Baloo e Akonadi

Deletando manualmente snapshots que proliferam como coelhos no openSUSE. — Nem sinal do nº 258

• Este relato documenta:

1) A remoção do máximo dos pacotes que compõem o KDE-PIM, Baloo e Akonadi, — tal como “vieram”, automaticamente instalados com o openSUSE Leap 42.2 KDE, — exceto os necessários ao funcionamento de outros aplicativos, ou do sistema como um todo (“dependências”); e

2) A remoção / configuração “mínima (necessária)” para desabilitar o funcionamento do Snapper, — cuja função é gerar sucessivos “instantâneos” (snapshots) do Sistema, que permitem reverter (roll-back) passos “infelizes”, causados por atualizações, instalação de novos pacotes etc.

Mas o mais importante é que este relato documenta o “caminho de volta”, — para o caso de querer desfazer uma dessas 2 decisões.

KDE-PIM


Busca no Gerenciador de software do YaST2, ordenado pela 1ª coluna (status), — “instalados”

Não lembro (nem encontro registro) de ter utilizado regularmente os benefícios do PIM, Baloo-file, Akonadi-server & correlatos (ou seus antecessores), desde quando comecei a usar o Kubuntu e o Debian KDE, há mais de 8 anos (2009). — No entanto, estiveram ativos esse tempo todo, consumindo recursos (RAM, CPU) e reduzindo o proveito que poderia tirar do hardware, quando exigido para outros esforços.

Em 16 Mai. 2016, um comentário e um link numa comunidade me incentivaram a examinar o assunto, — e acabei removendo PIM, Baloo, Akonadi do Kubuntu, do Debian KDE, e dos demais sistemas instalados desde então.

Porém, naquela época, o procedimento básico foi marcar para remoção cada pacote de uma lista de “aplicativos finais” que não uso, — lista construída a partir de consultas ao site KDE e outras raras páginas localizadas sobre o tema:

  • kmail
  • kaddresbook
  • kontact
  • korganizer
  • knotes
  • kjots
  • kalarm
  • akonadi-server
  • baloo-utils

Agora, no openSUSE Leap, comecei a busca por palavras-chave mais abrangentes, — “kdepim”, “baloo”, “akonadi”, — com os resultados ordenados pela primeira coluna (status), para agrupar os “instalados” no topo.

A partir daí, marquei para remoção cada pacote encontrado, — um de cada vez, para verificar as consequências, caso-a-caso.

Opções quando a remoção de um pacote afeta outros: — remover todos, manter, quebrar

Clique com o botão direito do mouse, selecione “Remover”, — e caso isso implique em remover outros pacotes, aparece uma janela de diálogo com a lista completa, e 3 alternativas para "resolução do conflito”:

  • Remover os pacotes que dependem dele
  • Manter o pacote selecionado (e os que dependem dele)
  • Quebrar as dependências

Nesse diálogo, tenha cuidado de não clicar em “Cancelar”, — pois isso não cancela a remoção solicitada antes, — apenas deixa o conflito sem solução (e você, sem saber como voltar a ele).

Para recuar, o caminho correto é selecionar a 2ª alternativa, — “Manter” o pacote cuja desinstalação iria lhe criar problemas, — e clicar em “Tentar novamente”.

Cuidado com listas apenas parcialmente exibidas, — verifique se não existe “mais…

Tenha cuidado, também, com listas abreviadas ou incompletas, — com “mais…” escondido lá embaixo. — Ali mora o perigo.

Examine a lista, item por item. — Certifique-se de que não inclua nada vital ao sistema (Plasma workspace), nem algum aplicativo que você deseja manter (Dolphin, KFind, Okular, Ktorrent, Digikam, por exemplo).

Nestes casos específicos, recue, — e prossiga com a marcação dos demais pacotes encontrados.

Desativação da “Pesquisa de arquivos” (File search) nas Configurações do sistema (System settings)

É necessário ser tão radical? Nem tanto.

Desabilitar os serviços correspondentes, em várias seções das “Configurações do sistema” (KDE System settings), — como “Pesquisa de arquivos”(*), por exemplo, — é suficiente para que a maioria deles não carregue automaticamente, no início de cada sessão. Então, bastaria ter o cuidado de não clicar por distração no Kmail, Korganizer, Kalendar etc., para não acordar metade da tropa.

(*) Desativar “Pesquisa de arquivos” jamais afetou o mecanismo de pesquisa simples do Dolphin (Localizar), — nem o mecanismo de pesquisa avançada “Procurar arquivos / pastas” (KFind), — que continuam plenamente capazes de encontrar qualquer arquivo existente nos 3 HDDs + SSD externo (total 2,64 TB), por nome, extensão, tipo, data, tamanho, proprietário (User, Group) e/ou conteúdo (string dentro do arquivo), com a mesma velocidade de 2009 a 2016 (antes de começar a remover PIM, Baloo, Akonadi).

De início, foi o que fiz no openSUSE Leap 42.2, — como em outros sistemas acabados de instalar, — enquanto estes serviços ficaram quietos. Depois, começam os ajustes finos, e você acaba encontrando notificadores que resistem a desaparecer, e alguns serviços que insistem em ser carregados.

Depois de remover o que era possível, com as 3 palavras-chave, não foi necessário procurar o resto da antiga lista, — Kmail, Korganizer etc., — exceto para confirmar que já estavam desinstalados.

Dessa vez, portanto, bastou seguir o caminho inverso, — eliminar as “dependências”, — e os aplicativos caíram por tabela.

O resultado final foi a remoção de nada menos que 136 pacotes:

akonadi-calendar-lang
akonadi-calendar-tools
akonadi-calendar-tools-lang
akonadi-import-wizard
akonadi-import-wizard-lang
akonadi-mime
akonadi-mime-lang
akonadi-notes-lang
akonadi-server
akonadi-server-lang
akonadi-server-sqlite
akregator
akregator-lang
baloo5
baloo5-file
baloo5-lang
baloo5-tools
calendarsupport
calendarsupport-lang
eventviews
eventviews-lang
grantleetheme
grantleetheme-lang
incidenceeditor
incidenceeditor-lang
kaddressbook
kaddressbook-lang
kalarmcal
kalarmcal-lang
kcalutils
kcalutils-lang
kdav
kdepim-addons
kdepim-addons-lang
kdepim-apps-libs
kdepim-apps-libs-lang
kdepim-runtime
kdepim-runtime-lang
kdepimlibs4
kidentitymanagement-lang
kimap-lang
kldap
kldap-lang
kleopatra
kleopatra-lang
kmail
kmail-account-wizard
kmail-account-wizard-lang
kmail-application-icons
kmail-lang
kmailtransport
kmailtransport-lang
knotes
knotes-lang
kontact
kontact-lang
kontactinterface-lang
kopete
korganizer
korganizer-lang
kpimtextedit
kpimtextedit-lang
ktnef-lang
libgravatar
libgravatar-lang
libkdepim
libkdepim-lang
libKF5AkonadiAgentBase5
libKF5AkonadiCalendar5
libKF5AkonadiMime5
libKF5AkonadiNotes5
libKF5AkonadiSearch
libKF5AkonadiXml5
libKF5AlarmCalendar5
libKF5CalendarSupport5
libKF5CalendarUtils5
libKF5EventViews5
libKF5GrantleeTheme5
libKF5Gravatar5
libKF5IdentityManagement5
libKF5IMAP5
libKF5IncidenceEditor5
libKF5KontactInterface5
libKF5Ldap5
libKF5Libkdepim5
libKF5LibkdepimAkonadi5
libKF5Libkleo5
libKF5MailCommon5
libKF5MailImporter5
libKF5MailImporterAkonadi5
libKF5MailTransport5
libKF5MailTransportAkonadi5
libKF5Mbox5
libKF5PimCommon5
libKF5PimCommonAkonadi5
libKF5PimTextEdit5
libKF5Syndication5
libKF5Tnef5
libkgantt-lang
libKGantt2
libkgapi-lang
libkleo
libkleo-lang
libkolab1
libkolabxml1
libKPimGAPICalendar5
libKPimGAPIContacts5
libKPimGAPICore5
libKPimGAPITasks5
libKPimKDAV5
libksieve
libksieve-lang
libmeanwhile1
libmysqlclient_r18
libmysqlcppconn7
libotr5
libqgpgme7
libqimageblitz4
libreoffice-base-drivers-mysql
libxerces-c-3_1
mailcommon
mailcommon-lang
mailimporter
mailimporter-lang
mariadb
mariadb-client
mbox-importer
mbox-importer-lang
messagelib
messagelib-lang
pim-data-exporter
pim-data-exporter-lang
pim-sieve-editor
pim-sieve-editor-lang
pimcommon
pimcommon-lang

conforme os registros em /var/log/zypp/history, — entre 1:49 e 1:57 de 4 Ago. 2017. — Na verdade, a seleção começou 10 minutos antes, por volta de 1:39.

Foi uma “limpeza” muito mais completa, — além de muito mais rápida, — do que a registrada no Kubuntu e no Debian KDE.

Pacotes restantes do KDE-PIM, Baloo, Akonadi, — necessários ao sistema, ao Dolphin, KFind etc.

Ao final, ficam alguns componentes do KDE-PIM. — Não é uma remoção 100% completa, — mas já deixa o sistema nitidamente mais leve.

Vale notar que houve 2 “ensaios” (com erros), — primeiro, em 2 Jul., no Leap 42.2; e mais tarde, em 29 Jul., no Tumbleweed. — Agora, no Leap 42.3, finalmente consegui evitar erros.

Fica claro, de passagem, que o upgrade do Leap 42.2 para 42.3 reinstalou todo o KDE-PIM, Baloo, Akonadi.

Snapper


Particionamento previsto para atender à brincadeira por vários anos

Partições padronizadas de 25 GiB pareciam mais do que suficientes para cultivar um belo criadouro de Linux e passar vários anos apenas regando, adubando, podando, enxertando aqui e ali, — até que o openSUSE Leap 42.2, instalado em Janeiro, ameaçou “dobrar a meta” dentro de poucos meses. — E ainda nem tinha nele todos os aplicativos instalados no Kubuntu ao longo de mais de um ano.

  • 17 Jan. 2017 - Aos 27 minutos da primeira sessão, usava 5,37 GiB da partição-raiz.
  • 26 Jan. 2017 - Ao concluir a configuração básica, usava 7,33 GiB.
  • 9 Jun. 2017 - Atingiu 14,1 GiB, — consegui reduzir para 13,4 GiB (menos 0,7 GiB)
  • Depois disso, consegui reduzir para 11,0 GiB (menos 2,4 GiB, no mínimo)
  • 2 Jul. 2017 - Ao remover o PIM e reinstalar algumas coisas, foi de 11,0 GiB para 12,8 GiB. Consegui reduzir para 11,4 GiB (menos 1,4 GiB)
  • 3 Jul. 2017 - Consegui reduzir de 11,4 para 9,99 GiB (menos 1,5 GiB)

Somente nesses 4 episódios, — e deixando outros de lado, — o acúmulo eliminado manualmente já somava 6 GiB.

Ao iniciar o upgrade, em 3 Ago. 2017, o espaço usado já estava novamente em 11,5 GiB, — portanto, estaria em 17,5 GiB (pelo menos), caso não tivesse feito essas eliminações de pares de snapshots.

Durante o upgrade, o uso de espaço na partição-raiz chegou a 16,9 GiB, — ou seja, ultrapassaria 22,9 GiB, no mínimo.

Deletando pares de snapshots do openSUSE, — após atingir 17,0 GiB de espaço usado na partição

Felizmente, muito antes de chegar ao upgrade, comecei a entender, — na pele, — as implicações da partição BtrFS e dos “instantâneos” (snapshots) que, em tese, prometem desfazer (roll-back) qualquer desastre causado por alguma atualização, ou pela instalação de novos pacotes.

Na verdade, — como notou outro mortal, — nem saberia usar esse recurso, no caso de uma emergência.

Olhando os registros dos últimos 2 ou 3 anos, encontro poucos desastres onde esse recurso teria sido útil, — um triste upgrade do Linux Mint 18 “Sarah” Beta para 18.1 “Serena” (28 Jan. 2017), e uma infeliz atualização do Debian “Stretch”, quando ainda estava em desenvolvimento (30 Set. 2016).

Em suma, o “prêmio” cobrado por este “seguro” é desproporcional. — É um custo elevado, diário, permanente, — para um risco pequeno e de baixa ocorrência.

Estamos falando de um “usuário comum”, — com 1 máquina, — não de um “Administrador de sistema”.

Ter 2 ou 3 sistemas em paralelo (dualboot) é muito mais divertido. — O único problema é decidir “qual Linux usar hoje”. — É um preço que se paga com alegria e que retorna diariamente, na forma de aprendizado. De preferência, sem que se precise chegar a nenhum desastre.

Mas, o que significa “desastre”, — quando se tem vários sistemas em dualboot? — Se falha um, você usa outro.

Para quem gosta de brincar, sistema não há de faltar. — Mais valem 3 opções do que 1 “seguro”

Mesmo com o Linux Mint meio capenga, a partir de 31 Jan. 2017, — e coincidindo de deletar por acidente o KDE Neon, em 31 Mar. 2017, — ainda dispunha do Kubuntu 16.04 LTS (que nunca passou pelo risco de upgrade… embora hoje se apresente como “16.04.3”).

Ficou comprovado que 2 ou 3 Linux em paralelo, — se possível, em diferentes HDDs (e com mais de um Grub), — são um “seguro” bastante razoável, para um “usuário médio”.

E dispunha do openSUSE Leap 42.2, que, apenas 9 dias depois de instalado, — de 17 para 26 Jan. 2017, — já se colocava entre os “Top 3” no desempenho das tarefas essenciais do dia-a-dia.

Foi uma das mais gratas surpresas, — tamanha e tão rápida “usabilidade”, num sistema que jamais tinha visto antes, — após 7 anos limitado ao Kubuntu / Mint / Debian.

Deletando manualmente snapshots que proliferam automaticamente. — Nem sinal do nº 258

Portanto, pesquisei sobre o Snapper, — e deletei manualmente vários pares de snapshots, — até optar por desativar este serviço.

Limitando a proliferação de “instantâneos” (snapshots) no openSUSE

Primeiro, algumas providências para limitar o número de “instantâneos” (snapshots).

# snapper -c root set-config "NUMBER_LIMIT=2"
# snapper -c root set-config "NUMBER_LIMIT_IMPORTANT=2"

Desabilitando o uso do Snapper no openSUSE

Depois (pensando bem), desativar o Snapper, — editando USE_SNAPPER="yes" para "no", na última linha do arquivo “/etc/sysconfig/yast2”.

Normalmente, faria isso chamando “Dolphin - modo Root” pelo Menu K e clicando no arquivo para editá-lo com o Kate ou KWrite.

Porém, como se têm reforçado advertências contra o uso de aplicativos gráficos como Superusuário (Root), — e em várias distros essa opção já foi até eliminada do Menu, — padronizei o hábito de fazer esse tipo de trabalho pelo editor (F4) do Midnight-Commander (mc / mcedit, ou mc / nano).

Desinstalando “snapper-zypp-plugin” do openSUSE

Por fim (pensando melhor ainda), acabei por desinstalar o snapper-zypp-plugin, para acabar com a geração automática de pares de “instantâneos” (snapshots) do sistema, a cada atualização / instalação / remoção de pacotes.

Sim, porque você abre o Gerenciamento de software do YaST2, — desinstala 1 pacote, ou 100 pacotes, — e o espaço usado na partição-raiz… dá um salto.

Desinstalar esse plugin foi uma decisão de “usuário comum” (average user), — muito longe das responsabilidades de um Administrador de sistema. — Trata-se de um recurso poderoso. Apenas, nem sempre vale o “custo”, para um simples mortal.

Ao fazer upgrade do openSUSE 42.2 para 42.3, alguns pacotes removidos voltaram a se instalar e funcionar automaticamente, — todo o KDE-PIM, Akonadi, Baloo, — e o snapper-zypp-plugin.

Tudo bem, voltei a removê-los, — exceto snapper-zypp-plugin (por enquanto), — e a deletar 3 novos pares de shapshots. Já estava bem adestrado nessa arte.

Descoberta do “unreferenced snapshot” nº 258, completamente desgarrado

A decisão de não tornar a desinstalar o snapper-zypp-plugin, — por enquanto, — acabou justificada pela descoberta de um snapshot desgarrado (unreferenced snapshot), de nada menos que 6,19 GiB,

Isso, quando já estavam deletados todos os outros snapshots, — exceto nº 0 (sistema atual); e nº 1 (inicial, inapagável), — numa limpeza radical, tresloucada, porém ainda com resultados frustrantes.

O snapshot nº 258 só foi descoberto, quase por acaso, ao revisar a documentação de referência sobre o assunto (ver abaixo), — na dica “Deleting unreferenced snapshots”, sob o item 3.5.4 - Deleting snapshots.

Como o usuário não tem acesso à pasta (oculta) /.snapshots, ele só pôde ser examinado no Midnight-Commander, aberto pelo Root.

Por algum motivo, falta um arquivo XML com os meta-dados, — ou faltam os meta-dados no arquivo XML, — e o Snapper não “vê” aquele snapshot.

Snapshot nº 258 na Listagem, 2 dias depois, — mas não na Tabela (ver Imagens anteriores)

O snapshot nº 258 não aparece em nenhuma das tabelas geradas pelo comando snapper -ls, — usadas, até então, como guia para deletar pares de snapshots. — Só aparece (desde aquela época) em comandos de listagem de pastas / arquivos, como ls /.snapshots -al:

flavio@Linux5:~> su
Senha:
Linux5:/home/flavio # ls /.snapshots -al
total 4
drwxr-x--- 1 root root  54 Jul  3 08:01 .
drwxr-xr-x 1 root root 166 Jan 17  2017 ..
drwxr-xr-x 1 root root  32 Jan 17  2017 1
drwxr-xr-x 1 root root  16 Jun  7 21:03 258
drwxr-xr-x 1 root root  66 Jul  1 00:29 302
drwxr-xr-x 1 root root  98 Jul  1 00:29 303
-rw-r----- 1 root root 408 Jul  3 08:01 grub-snapshot.cfg

Linux5:/.snapshots # cd /.snapshots
Linux5:/.snapshots # du -sh 1
7,0G    1
Linux5:/.snapshots # du -sh 258
6,2G    258
Linux5:/.snapshots # du -sh 302
6,2G    302
Linux5:/.snapshots # du -sh 303
6,2G    303
Linux5:/.snapshots # du -sh grub-snapshot.cfg
4,0K    grub-snapshot.cfg

Obs.: - Por princípio, os tamanhos indicados pelo comando du -sh [number] não se somam aritmeticamente, — pois há repetições, no caso dos pares “pre / post” (antes e depois de cada atualização ou instalação). — Note que a soma ultrapassaria os 25 GiB da partição.

A propósito:

flavio@Linux5:~> du --help

Summarize disk usage of the set of FILEs, recursively for directories.

Mandatory arguments to long options are mandatory for short options too.
  -h, --human-readable  print sizes in human readable format (e.g., 1K 234M 2G)
  -s, --summarize       display only a total for each argument

Barra de progresso empacada e nenhuma atividade de CPU, — 18 minutos após concluir a atualização

Assim, foi possível identificar sua data de 7 Jun. 2017, às 21:03.

Trata-se de uma atualização que parecia empacada. — Aliás, tudo empacou naquela sessão. — O carregamento do openSUSE demorou quase 2 minutos. — A manutenção programada do BtrFS começou logo após o início da atualização (download), — e tudo ficou devagar, quase travando.

O arquivo /var/log/zypp/history indica que os 3 pacotes da atualização foram instalados com sucesso, em apenas 4m 30s, — completados meio minuto antes das 21:03, — mas a barra de progresso continuou empacada na metade do caminho por mais 26 minutos (sem nenhum indício de atividade de CPU no Conky ou no KSysguard), — e às 21:29 reiniciei o sistema. — O novo boot demorou cerca de 3m30s; e um reload do atualizador indicou que estava tudo atualizado.

Nota: - Talvez fosse interessante “afastar” (no tempo) os agendamentos do Notificador de atualizações e da Manutenção BtrFS, — para evitar encavalamento. — É verdade que, uma vez adquirida consciência disso, bastaria não autorizar as atualizações, até ter certeza de que a Manutenção não irá começar. Mas, sem saber quantos minutos esperar, como ter certeza?

Fato é que, após 6 meses, ainda não encontrei a configuração desses 2 agendamentos, no YaST2. — Resta ir à luta no Google, — e ter sorte de adivinhar as palavras-chave corretas.

Por outros motivos, — monitorar o tempo de Boot e o uso inicial de Memória RAM, — também seria interessante afastar ambos agendamentos para 10 minutos uptime, pelo menos.

Deletando “unreferenced snapshot” no openSUSE

Para deletar o snapshot nº 258 (agora), foram usados esses 2 comandos:

# btrfs subvolume delete /.snapshots/258/snapshot
Delete subvolume (no-commit): '/.snapshots/258/snapshot'

# rm -rf /.snapshots/258

Ou seja, — primeiro, deletar o “subvolume btrfs”; depois, o diretório. — Nada de apenas deletar a “pasta” pelo Midnight-Commander.

Com isso, o espaço usado desabou de 14,5 GiB para 8,31 GiB, — o menor tamanho, desde 11 Fev. 2017 (quando a instalação do “freshplayerplugin” elevou a marca de 8,29 para 8,35 GiB). — Uma redução espantosa, de 6,19 GiB, numa tacada só.

Depois disso, pode-se dizer que voltei a ter fé na Humanidade, — onde se incluem os desenvolvedores e colaboradores do Snapper.


Leap e Tumbleweed - Cronologia


Avanços obtidos com Leap (BtrFS) e Tumbleweed (ext4), no conjunto de sistemas Linux instalados

Na prática, as coisas se passaram com mais cautela do que pode parecer, pelo relato acima:

1) openSUSE Leap 42.2 foi usado regularmente por quase 5 meses, — ainda com folga suficiente, — antes do uso de espaço em disco se tornar alarmante.

2) KDE-PIM, Baloo, Akonadi foram desinstalados após longa observação, — já na fase de “ajuste fino”, — com direito a erros e correções.

3) openSUSE Tumbleweed foi instalado quase 5 meses depois, — em outra partição, formato ext4 “tradicional” (sem risco de snapshots), — e serviu para mais alguns testes & ensaios que hesitava em arriscar no Leap.

4) openSUSE Tumbleweed foi usado para testar a instalação de ffmpeg, — tinha um receio meio supersticioso de que pudesse afetar a leveza com que o Leap enfrentava o recurso “Páginas” do Facebook, — embora o repositório Packman já estivesse habilitado (mas sem uso) no Leap.

5) Só no final, arrisquei o upgrade do Leap 42.2 para 42.3, — com o novo DVD gravado, pronto para reinstalar, no caso de não dar certo. — Não havia como fugir ao risco. A versão anterior ficará sem suporte 6 meses após o lançamento da nova. Se ficar, o bicho come.

17 Jan. 2017 - (Leap 42.2) - Instalado em partição BtrFS (sdb2).

17 Jan. 2017 - (Leap 42.2) - Após 27 minutos do primeiro Boot, havia instalado apenas o Conky + 5 dependências (704 KiB baixados; 2,24 MiB instalados). Estavam ocupados 5,37 GiB da partição-raiz (3:39).

26 Jan. 2017 - (Leap 42.2) - Usados 7,33 GiB da partição-raiz, ao dar por encerrada a fase inicial de configuração (20:17).

9 Jun. 2017 - (Leap 42.2) - Deletados pares de snapshots “não-importantes”, com redução do espaço usado de 14,1 GiB para 13,4 GiB (21:35 ~ 22:00).

2 Jul. 2017 - (Leap 42.2) - Removido KDE-PIM, Baloo e Akonadi. — Por falta de atenção, acabaram removidos também vários pacotes necessários, como Amarok, K3b, Kdepasswd, Kdialog, Kdnssd, Kget, Kfind, Konqueror etc., reinstalados em seguida (21:20 ~ 22:24).

3 Jul. 2017 - (Leap 42.2) - Deletados pares de snapshots “importantes”, exceto os 2 últimos, com redução do espaço usado na partição-raiz de 11,4 GiB para 9,99 GiB (8:00 ~ 8:05).

3 Jul. 2017 - (Tumbleweed) - Instalado em partição ext4 “tradicional” (sdd2), para teste e comparação (19:36 ~ 22:05).

29 Jul. 2017 - (Tumbleweed) - Removido KDE-PIM, Baloo e Akonadi. — Por falta de atenção, acabaram removidos também alguns pacotes necessários, como Digikam e Kgpg, reinstalados em seguida. — Entre uma coisa e outra, o arquivo ~/.xsession-errors acumulou 2.533 linhas, num total de 292 KiB (19:40 ~ 20:00).

3 Ago. 2017 - (Tumbleweed) - Habilitado repositório Packman e instalado ffmpeg (19:33).

3 ~ 4 Ago. 2017 - (Leap 42.2) - Upgrade para 42.3, usando uma “receita” simples de 3 comandos em tty1, enquanto continuava trabalhando normalmente em tty7 (22:38 ~ 0:26, conexão 1,3 MiB/s).

4 Ago. 2017 - (Leap 42.3) - Removido KDE-PIM, Baloo e Akonadi (1:36 ~ 1:56).

4 Ago. 2017 - (Leap 42.3) - Instalado ffmpeg (10:57).

__________
• Publicado inicialmente em 2 Ago. 2017, no openSUSE 42.2, e desenvolvido até 6 Ago. 2017 no openSUSE Leap 42.3.
• O registro de datas + horas facilita localizar Fotos e Capturas de tela, — além das anotações no “Caderno de informática”, — caso precise verificar mais algum detalhe.

— … ≠ • ≠ … —

openSUSE



Não-debians


quinta-feira, 29 de junho de 2017

Escolhendo Grub entre vários Linux

Grub do Mageia, com seleção automática da última distro Linux escolhida

A instalação de vários sistemas em paralelo (dualboot, ou multiboot) criou uma situação em que já não basta eu usar o Grub para escolher qual Linux rodar. — Agora, eu também preciso escolher qual distro deve controlar o Grub, — e quais não devem interferir.

Isso, porque existem particularidades no Grub de algumas distros que o impedem de gerar as entradas corretas, no Menu de inicialização, para algumas das outras distros.

Havendo vários HDDs em hardware Bios (legacy) / MBR, também é uma boa precaução ter mais de um Grub, — controlados por diferentes distros Linux. — Em caso de emergência, basta configurar a Bios para dar Boot por outro HDD.

2020 - Estas anotações continuam válidas para meu novo hardware UEFI / GPT, com alguns detalhes adicionais.

Índice

  • Infância dos fatos
  • Fatos espinhosos
  • Caso 1 - Arch (intel-ucode)
  • Caso 2 - BtrFS sem “/boot” separado
  • Caso 3 - Slackware
  • A escolha de um Grub
  • Tema do Grub2 (gráfico)
  • Mini-catástrofes
  • Reorganização do Grub
  • Reconfiguração do Grub
  • Midnight Commander (mc)

Infância dos fatos

Longo confinamento a 3 distros — de um mesmo “tronco”, — Debian, Kubuntu e Linux Mint

Enquanto me restringi ao Kubuntu (sistema “principal”), e Debian ou Linux Mint (como “alternativo”), o Grub não apresentou dificuldades. — Ubuntu baseia-se no Debian; Linux Mint baseia-se no Ubuntu — e todos se entendem.

A transição do Lilo para o antigo Grub (atual “legacy”) se fez sem grandes sustos, — e a passagem para o “Grub2” foi suavizada pela descoberta do Grub-customizer — que hoje eu não recomendo.

Representação esquemática das partes que compõem o Grub e sua localização no HDD

Lembrando que o Grub se divide em 2 partes bem distintas, em hardware Bios (legacy) / MBR:

1) Uma “chamada” minúscula no Master Boot Record (MBR), — a trilha inicial do HDD de Boot, — com o mínimo de informações para dar prosseguimento ao processo.
Ou seja, indicar em qual partição buscar o resto. — Cada Linux grava a “chamada” para sua pasta /boot.
2) Um conjunto de arquivos, configurações etc., dentro da partição (ou partições) de sistema de cada Linux, — em especial, na sua pasta (ou partição) /boot.

Durante anos, achei que a “chamada” do Grub tinha de ser gravada no MBR do primeiro HDD. — Enquanto eu tinha apenas Kubuntu, Mint e Debian, isso não causava problemas, — era até divertido, ver uma distro tomar da outra o controle do Grub.

Nesse caso, bastava escolher minha distro “principal”, e executar o comando “sudo grub-install /dev/sda”. — Ela retomava o controle do Grub, e tudo voltava ao normal.

Fatos espinhosos

Uma deficiência na última linha do Grub do Mint impede o carregamento do Manjaro

Em 2017, com a instalação de várias distros “não-Debian”, surgiram casos ou situações em que o Grub de alguns sistemas não consegue gerar entradas capazes de carregar alguma outra distro.

A priori, nada a ver com o Grub, em si, — mas com a estrutura de umas e outras distros. — Quem sabe, por falta de alguns pacotes aqui e ali.

Caso 1 - Arch (intel-ucode)

Falha ao carregar o Manjaro a partir do Grub gerado pelo Linux Mint

Um caso bastante discutido é o do Arch e alguns de seus “derivados” (como o Manjaro).

O Grub de outros Linux costumava gerar entradas com uma linha assim:

initrd /boot/intel-ucode.img

mas, para funcionar, tais linhas deveriam indicar a localização do initramfs:

initrd /boot/intel-ucode.img /boot/initramfs-XXXXXX.img

onde “XXXXXX” pode ser “linux”, “linux-lts”, “linux-zen” etc. — Se houver apenas um, basta uma busca-e-troca global, com esse acréscimo.

No Manjaro, — com 2 Kernel diferentes (opção minha), — “XXXXXX” exigia substituição manual (caso-a-caso), nas entradas do /boot/grub/grub.cfg — e na época achei mais simples eliminar o Manjaro, para agilizar a edição do arquivo, após cada atualização do Grub do Mageia:

initrd /boot/intel-ucode.img /boot/initramfs-4.9-x86_64.img

initrd /boot/intel-ucode.img /boot/initramfs-4.4-x86_64.img

Correção manual do Grub, por Busca & substituição global

No Arch (instalado pelo Revenge Installer), “XXXXXX” nunca apresenta variação, o que permite busca-e-troca global no /boot/grub/grub.cfg do Mageia:

initrd /boot/intel-ucode.img /boot/initramfs-linux-lts.img

Se esta fosse a única dificuldade, o Grub do próprio Arch (ou do Manjaro) seria o candidato natural, para ser o meu Menu de inicialização, — dispensando correções manuais.

Há várias sugestões para automatizar essa “correção”, em outras distros, — incorporando-a no processo de atualização do Grub, — mas não encontrei nenhum indício de que alguma dessas “receitas” tenha alcançado ampla aceitação.

Enfim, o Arch instalado pelo Anywhere não apresentou esse problema. — Carregava pelo Grub de qualquer outra distro, sem a menor dificuldade. — Mas eu preferi manter o Arch instalado pelo Revenge (atual Zen Installer).

Edit (2020) - Desde meados de 2019 (pelo menos), o Grub do openSUSE Tumbleweed se mostrou capaz de gerar as entradas completas para o Arch.

Caso 2 - BtrFS sem “/boot” separado

Falha do Grub do openSUSE em gravar a opção escolhida, para repetir no próximo Boot

Carregar o openSUSE, — instalado em uma partição BtrFS, — parecia fora do alcance do Grub de (quase) todas as outras distros que já instalei.

A exceção era o Grub do Mageia, — único que conseguia carregar o openSUSE, — e isso mostra que não se trata de “missão impossível”, desde que eu descubra o segredo.

Esse problema foi causado por uma decisão minha — de não criar uma partição /boot (ext4 “tradicional”) separada da partição-raiz (BtrFS).

É claro que o Menu de inicialização gerado pelo Grub do próprio openSUSE consegue carregá-lo, — e se esta fosse a única questão, bastaria eu adotá-lo.

Porém, na época, não encontrei meio de ele “lembrar” a escolha feita no Boot anterior, — mesmo com a configuração necessária no /etc/default/grub:

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT="true"

O motivo era o mesmo: — Por eu não ter criado uma partição /boot (ext4 “tradicional”), separada da partição de sistema (BtrFS).

É que o Grub não gravava em partição BtrFS (*), — até o openSUSE ser carregado. — Portanto, durante o Boot, não podia salvar a opção escolhida, para lembrar na próxima inicialização.

(*) Isso mudou. Tempos depois, o Grub passou a lidar com BtrFS.

Usá-lo no dia-a-dia significaria ficar parado (e atento), na frente do computador, — ou carregaria sempre openSUSE, ao final da contagem regressiva.

Edit (2020) - No novo hardware UEFI / GPT, adotei o Grub do openSUSE como meu Menu de inicialização, pois agora, ele salva e “lembra” a última distro que escolhi. — Porém, a resposta do Grub (setas para cima e para baixo) sempre foi lenta, no openSUSE — até que movi o Tema do Grub para a partição /home (em XFS).

Caso 3 - Slackware

“Panic” e “End trace” no Boot do Slackware a partir do Grub controlado por outra distro

A instalação do Slackware (14 Jul. 2017) mostrou mais um caso espinhoso.

Nas linhas onde o Grub do Mageia, — entre outros, — gerava estes parâmetros:

linux /boot/vmlinuz-generic-4.4.75 root=/dev/sdc2

eu precisava substituir “generic” por “huge”:

linux /boot/vmlinuz-huge-4.4.75 root=/dev/sdc2

Na forma original, o Boot do Slackware emitia 2 mensagens de “panic” e terminava em uma mensagem de “end trace”, — palavras-chaves que me levaram a encontrar esta solução.

Isso, porque o Slackware usava o Lilo, e não gerava o arquivo /boot/grub/grub.cfg, para ser lido pelo Grub do Mageia (ou do openSUSE). — Afinal, percebi que bastava instalar o Grub no Slackware, e gerar o /boot/grub/grub.cfg, para o Grub das outras distros passar a gerar as entradas corretas.

A escolha de um Grub

Grub original do Mageia, com letras grandes, — e metade do Menu fora do retângulo de exibição

Desse conjunto de obstáculos, — e após 2 ou 3 “desastres” meio chatos, — escolhi o Grub do Mageia como o mais indicado, para aquele hardware Bios (Legacy) / MBR, com aquele conjunto de distros em dualboot (ou multiboot).

Os principais motivos:

1) O Grub do Mageia era o único que conseguia carregar o openSUSE, — exceto o Grub do próprio openSUSE

2) Se sua “chamada” no MBR fosse apagada, o Mageia podia ser carregado pelo Grub de qualquer outra distro, — e em 1 minuto, gravar novamente sua “chamada” no MBR.

3) O Grub do Mageia “lembrava” perfeitamente qual o último sistema escolhido, — e o carregava automaticamente, ao final da contagem regressiva, — o que é muito prático, para usar uma mesma distro Linux durante vários dias seguidos.

O resto, — ter de corrigir “manualmente” as entradas do Arch, — também aconteceria com o Grub de qualquer outra distro.

Tema do Grub2 (gráfico)

Edição do tema do Grub para ampliar o retângulo do Menu de inicialização

Como a edição do Grub “gráfico” é trabalhosa, — os arquivos se espalham por várias pastas, e para ver o efeito é necessário gerar (atualizar), reiniciar o computador, — copiei para o Mageia o tema do Grub do openSUSE, cuja personalização já ia bem avançada.

Alterei 2 arquivos e 1 pasta, — destacados nestas seções da árvore do sistema, — nos dias 20 e 21 Maio 2017:

   |-boot
      |---grub2
             custom.cfg
             grub.cfg
             grubenv
         |-----fonts
         |-----i386-pc
         |-----locale
         |-----themes
            |-------dolphy
            |-------maggy
            |-------openSUSE
                theme.txt
   |-etc
      |---default
             grub
      |---grub.d
             00_header
             01_users
             06_grub-customizer_menu_color_helper
             10_linux
             20_linux_xen
             20_ppc_terminfo
             30_os-prober
             40_custom
             41_custom
             README

Uma das principais modificações foi reduzir a fonte de letra e aumentar o retângulo central, — onde se apresentam as opções do Menu de inicialização, — para caberem 8+ distros, teste de memória etc., sem deixar coisas escondidas “abaixo da linha do horizonte”.

Mini-catástrofes

Efeito de um upgrade do Grub, — Menu “de fábrica”

Dois pequenos sustos, nos dias 16 e 28 Jun. 2017, me levaram a reavaliar velhas crenças — e a examinar as observações feitas ao longo dos anos, naquele hardware Bios (Legacy) / MBR.

No dia 16, o Kubuntu recebeu um prosaico upgrade do Grub:

Commit Log for Fri Jun 16 02:25:30 2017

grub-common (2.02~beta2-36ubuntu3.9) to 2.02~beta2-36ubuntu3.11
grub-pc (2.02~beta2-36ubuntu3.9) to 2.02~beta2-36ubuntu3.11
grub-pc-bin (2.02~beta2-36ubuntu3.9) to 2.02~beta2-36ubuntu3.11
grub2-common (2.02~beta2-36ubuntu3.9) to 2.02~beta2-36ubuntu3.11

e foi o que bastou para re-gravar sua “chamada” no MBR do 1º HDD (sda), — em lugar da “chamada” para o Grub do Mageia. — Pior. Um Menu de inicialização contendo só Kubuntu.

No entanto, o mesmo upgrade havia sido feito no KDE Neon, meia-hora antes, — sem causar “desastre” algum:

Commit Log for Fri Jun 16 01:53:51 2017

grub-common (2.02~beta2-36ubuntu3.9) to 2.02~beta2-36ubuntu3.11
grub-pc (2.02~beta2-36ubuntu3.9) to 2.02~beta2-36ubuntu3.11
grub-pc-bin (2.02~beta2-36ubuntu3.9) to 2.02~beta2-36ubuntu3.11
grub2-common (2.02~beta2-36ubuntu3.9) to 2.02~beta2-36ubuntu3.11

Lembrasse eu o essencial do que já sabia, — resumido acima, — e não gastaria 10 minutos para restabelecer o controle pelo Grub do Mageia:

  • Carregar o Kubuntu
  • Rodar um “sudo update-grub” para re-detectar as outras distros
  • Carregar o Mageia pelo Menu de inicialização (atualizado) do Kubuntu
  • Re-gravar a “chamada” do Grub do Mageia em sda

Mas minhas ideias, fatos, causas etc. estavam embaralhados, — e passava da meia-noite, quando todos os gatos parecem cachorros pardos, rosnando.

Tentei tudo o que não precisava tentar, — Live Arch Anywhere (como Rescue disk), Live Mageia 6 sta2, Live openSUSE (More → Rescue system), Mageia Classic Installer (Rescue → Re-install Boot Loader), — e só não foi pura perda de tempo, porque me obrigou a revisar o assunto de A a Z, documentar configurações e ferramentas usadas em cada distro etc.

Ficou claro que eu precisava reconfigurar o Grub das outras distros para gravarem no MBR do sdc, — de modo que apenas o do Mageia gravasse em sda (e só o do openSUSE no sdb); — só faltava descobrir como.

O comando “grub-install /dev/sdc”, na verdade faz apenas uma gravação isolada, — sem evitar que continuem gravando em sda, no futuro.

Isso ficou ainda mais urgente em 28 Junho, quando chegou a vez do upgrade de Grub no Debian:

grub-common (2.02~beta3-5) to 2.02-1
grub-pc (2.02~beta3-5) to 2.02-1
grub-pc-bin (2.02~beta3-5) to 2.02-1
grub2-common (2.02~beta3-5) to 2.02-1

Dessa vez, o susto não passou de marolinha, — o resumo já estava claro (e bem anotado). — Só faltava eu acabar com aquela chatice, de uma vez por todas.

Reorganização do Grub

Como havia 7 sistemas instalados, — e apenas 3 HDDs, — eu precisava evitar que outros Linux interferissem no Grub controlado pelo Mageia.

As configurações precisavam ser planejadas de modo racional, para segregar o campo de atuação de cada um:

  • MBR do sdaGrub do Mageia (sda2)
  • MBR do sdbGrub do openSUSE (sdb2)
  • MBR do sdcGrub do Debian, Kubuntu, Mint, Neon, Arch

Associar o Grub do Mageia e do openSUSE ao MBR dos respectivos HDDs tornaria cada um deles à prova de “falhas no outro HDD”.

Os demais 5 sistemas se revezariam na “posse” da trilha inicial do sdc, — sem sobregravar as “chamadas” para o Grub do Mageia, em sda, — nem as chamadas para o Grub do openSUSE, em sdb.

Havia uma hipótese de deixar apenas 1 Grub gravando em sdc, — e os outros 4 simplesmente pararem de gravar (ver adiante), — mas isso deixaria meu “último salva-vidas” dependente de apenas 1 distro.

Poderia ficar excessivamente desatualizado, — caso aquela distro não atualizasse seu Kernel com frequência, — ao passo que 5 distros em “corrida de revezamento” garantiriam atualizações mais frequentes do “terceiro Grub”.

Reconfiguração do Grub

Usando “dpkg-reconfigure grub-pc” para redefinir qual MBR será gravada por cada Grub

Finalmente, encontrei o caminho para fazer isso, — no Debian & derivados, — depois de várias buscas sem resultados:

# dpkg-reconfigure grub-pc

Opções oferecidas pelo “sudo dpkg-reconfigure grub-pc”

Em resposta ao comando, o Konsole exibe uma interface “semi-gráfica”, e a primeira questão é sobre uma linha de comando do Grub antigo (legacy: “menu.lst”). — Foi apresentada em branco (esclarece que pode deixar vazia). — Me limitei a usar TAB para chegar ao “Ok” e prosseguir.

A segunda questão apresentada é sobre os parâmetros a serem usados na entrada-padrão do Menu, — “quiet splash”. — Mais uma vez, TAB para chegar ao “Ok”, sem alterar nada.

A terceira questão era a que interessava no momento, — em qual HDD cada Grub deveria gravar sua “chamada”.

Usam-se SETAS (↓↑) para navegar entre as múltiplas escolhas, — ESPAÇO para marcar / desmarcar, — e TAB para chegar ao “Ok”.

Em todos os casos, foram oferecidos os 3 HDDs (o SSD estava desplugado), — além da própria partição onde cada sistema está instalado. — Esta última opção não é recomendada, e nem sei como se usa.

Simplesmente marquei o Kubuntu, o KDE Neon, o Mint KDE e o Debian KDE para gravarem suas “chamadas” do Grub sempre no sdc.

Configuração do Grub no Mageia Control Center

No Mageia, foi ainda mais fácil configurar o “dispositivo de boot” (sda), graças ao Mageia Control Center (MCC).

Infelizmente, não encontro nenhum registro de como consegui configurar o openSUSE para gravar a “chamada” do Grub no MBR do sdb. — Só sei que consegui.

Não descobri como fazer essa reconfiguração no Arch Linux — pois eu ainda não tinha aprendido a instalar o Arch “na unha“.

Midnight Commander (mc)

Verificação do /boot/grub2/grub.cfg (data, hora) e edição pelo Midnight Commander

Com os crescentes obstáculos ao uso de Dolphin / Kate / KWrite em modo Superusuário (Root), resolver problemas estava se tornando mais um problema.

Ctrl-Shift-V para colar nos campos de busca e troca global

Daí a escolha do Midnight Commander (mc).

Busca e troca global no editor de textos do Midnight Commander

É muito prático para localizar e editar arquivos de sistema, sem tropeçar em dúvidas como, — “/boot/grub/grub.cfg” ou “/boot/grub2/grub.cfg”, por exemplo?

_________
Originalmente publicado em 29 Jun. 2017, e desenvolvido até 2 Jul. 2017.
••• Adicionadas notas sobre o Slackware em 15 Jul. 2017.

— … ≠ • ≠ … —

Não-debians