Linux Troubleshooting com ChatGPT

Image: Infra as Code

Essa semana fui surpreendido com um erro que eu não via há muito anos!! O meu laptop pessoal é um Dell Vostro com Linux com uns 3 anos de uso. Nas últimas semanas eu estou utilizando ele para montar umas aulas e labs de um curso. Olha, eu tenho usado bastante o pobre do laptop, ele vive em modo swap, com trinta abas do Chrome aberta, quinze ambientes rodando com Docker Compose, quando eu ia trabalhar o colocava em modo de hibernação e fechava. Quando eu retornava, era só abrir e tudo já estava lá lindo, prontinho para retomar as aulas.

Um htop típico do meu laptop

As coisas estavam indo bem, até que um dia, ele simplesmente parou, e pediu um reboot. Achei estranho, mas “OK Linux”, dei um reboot, eu pensei, tudo bem, é só um reboot normal, ao rebootar, eis o problema na tela. “Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)”. Meu coração parou por alguns segundos, minha visão deu um zoom espontâneo na tela, minha mente falou para si própria “não é possível isso!!! não pode ser!!”, lembrei das aulas que eu precisava entregar, sem contar que eu perderia tudo, pensei F***U, perdi tudo, minha espinha gelou de medo ao ver isso.

Pânico do Kernel e meu também

A recuperação

Ajuda o Chat-GPT

Depois de me acalmar um pouco, consegui dar um boot em modo de recuperação com um kernel antigo, o suficiente para ver as partições, e os arquivos, Ufa!!! eles estavam lá!! Rodei uma checagem de filesystem nas partições “/” e “/home” e tudo deu certo.

Mesmo sabendo que os aquivos estavam lá, o erro do boot permanecia, então, resolvi pedir a ajuda ao ChatGPT para dar uma mãozinha e corrigir o erro que estava dando. A partir de agora vou colocar aqui as dicas que o ChatGPT me deu para eu ir fazendo.

Pergunta para o ChatGPT

me ajude com esse erro
"Note, selecting 'synaptics-repository-keyring' instead of './synaptics-repository-keyring.deb'
synaptics-repository-keyring is already the newest version (2022.01).
0 upgraded, 0 newly installed, 0 to remove and 5 not upgraded.
4 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] Y
Setting up linux-headers-6.14.0-24-generic (6.14.0-24.24~24.04.3) ...
/etc/kernel/header_postinst.d/dkms:
 * dkms: running auto installation service for kernel 6.14.0-24-generic
Sign command: /usr/bin/kmodsign
Signing key: /var/lib/shim-signed/mok/MOK.priv
Public certificate (MOK): /var/lib/shim-signed/mok/MOK.der

Building module:
Cleaning build area...
make -j8 KERNELRELEASE=6.14.0-24-generic all INCLUDEDIR=/lib/modules/6.14.0-24-generic/build/include KVERSION=6.14.0-24-generic DKMS_BUILD=1....(bad e
xit status: 2)
ERROR (dkms apport): binary package for evdi: 1.14.7 not found
Error! Bad return status for module build on kernel: 6.14.0-24-generic (x86_64)
Consult /var/lib/dkms/evdi/1.14.7/build/make.log for more information.
dkms autoinstall on 6.14.0-24-generic/x86_64 failed for evdi(10)
Error! One or more modules failed to install during autoinstall.
Refer to previous errors for more information.
 * dkms: autoinstall for kernel 6.14.0-24-generic
   ...fail!
run-parts: /etc/kernel/header_postinst.d/dkms exited with return code 11
dpkg: error processing package linux-headers-6.14.0-24-generic (--configure):
 installed linux-headers-6.14.0-24-generic package post-installation script subprocess returned error exit status 11
Setting up linux-image-6.14.0-24-generic (6.14.0-24.24~24.04.3) ...
dpkg: dependency problems prevent configuration of linux-headers-generic-hwe-24.04:
 linux-headers-generic-hwe-24.04 depends on linux-headers-6.14.0-24-generic; however:
  Package linux-headers-6.14.0-24-generic is not configured yet.

dpkg: error processing package linux-headers-generic-hwe-24.04 (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                                                                                                          dpkg: dependency problems prevent configurat
ion of linux-generic-hwe-24.04:
 linux-generic-hwe-24.04 depends on linux-headers-generic-hwe-24.04 (= 6.14.0-24.24~24.04.3); however:
"

Respostas do ChatGPT

O erro que você está enfrentando está relacionado à falha na instalação de um módulo DKMS (evdi) durante o processo de configuração do kernel linux-headers-6.14.0-24-generic. Isso faz com que o pacote de headers e outros pacotes relacionados fiquem parcialmente instalados.

🔍 Resumo do Problema O DKMS (Dynamic Kernel Module Support) tenta compilar o módulo evdi para o novo kernel 6.14.0-24-generic, mas falha.

Isso causa erro no script pós-instalação (postinst) do pacote linux-headers-6.14.0-24-generic.

Consequentemente, outros pacotes como linux-generic-hwe-24.04 e linux-headers-generic-hwe-24.04 não conseguem ser configurados.

🛠️ Solução Passo a Passo

  1. Verifique o erro detalhado do DKMS Rode o comando abaixo para ver o log real da falha de compilação:
cat /var/lib/dkms/evdi/1.14.7/build/make.log

Isso vai indicar exatamente por que a compilação do módulo falhou (ex: headers incompatíveis, dependências ausentes, etc).

  1. Remova temporariamente o módulo DKMS problemático Se você não precisa do evdi (usado por alguns monitores externos tipo DisplayLink), você pode removê-lo:
sudo dkms remove evdi/1.14.7 --all

Depois tente reconfigurar os pacotes quebrados:

sudo apt -f install
  1. (Alternativa) Reinstale o evdi com suporte ao novo kernel Se você precisa do evdi, talvez ele ainda não suporte o kernel 6.14.

Você pode tentar atualizar o evdi para uma versão mais nova (se disponível):

sudo apt remove evdi-dkms
sudo apt install evdi-dkms

Ou instalar manualmente a versão mais recente do GitHub:

git clone https://github.com/DisplayLink/evdi.git
cd evdi
make
sudo make install
  1. Tente limpar e reinstalar os headers Se os headers ficaram corrompidos, execute:
sudo dpkg --remove --force-remove-reinstreq linux-headers-6.14.0-24-generic
sudo apt install --reinstall linux-headers-6.14.0-24-generic
  1. Finalize com:
sudo dpkg --configure -a
sudo apt update
sudo apt upgrade

Segunda Pergunta para o ChatGPT

me ajude com isso agora
dpkg --configure -a
Setting up evdi-dkms (1.14.2+dfsg-1ubuntu1.2) ...
Removing old evdi-1.14.2+dfsg DKMS files...
Module evdi-1.14.2+dfsg for kernel 6.14.0-24-generic (x86_64).
Before uninstall, this module version was ACTIVE on this kernel.

evdi.ko.zst:
 - Uninstallation
   - Deleting from: /lib/modules/6.14.0-24-generic/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.
depmod....
Deleting module evdi-1.14.2+dfsg completely from the DKMS tree.
Loading new evdi-1.14.2+dfsg DKMS files...
Building for 6.14.0-24-generic
Building initial module for 6.14.0-24-generic
Done.

evdi.ko.zst:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/6.14.0-24-generic/updates/dkms/
depmod....
dpkg: dependency problems prevent configuration of linux-headers-generic-hwe-24.04:
 linux-headers-generic-hwe-24.04 depends on linux-headers-6.14.0-24-generic; however:
  Package linux-headers-6.14.0-24-generic is not configured yet.

dpkg: error processing package linux-headers-generic-hwe-24.04 (--configure):
 dependency problems - leaving unconfigured
Setting up linux-image-6.14.0-24-generic (6.14.0-24.24~24.04.3) ...
dpkg: dependency problems prevent configuration of linux-generic-hwe-24.04:
 linux-generic-hwe-24.04 depends on linux-headers-generic-hwe-24.04 (= 6.14.0-24.24~24.04.3); however:
  Package linux-headers-generic-hwe-24.04 is not configured yet.

dpkg: error processing package linux-generic-hwe-24.04 (--configure):
 dependency problems - leaving unconfigured
Processing triggers for linux-image-6.14.0-24-generic (6.14.0-24.24~24.04.3) ...
/etc/kernel/postinst.d/dkms:
 * dkms: running auto installation service for kernel 6.14.0-24-generic
Sign command: /usr/bin/kmodsign
Signing key: /var/lib/shim-signed/mok/MOK.priv
Public certificate (MOK): /var/lib/shim-signed/mok/MOK.der

Building module:
Cleaning build area...
make -j8 KERNELRELEASE=6.14.0-24-generic all INCLUDEDIR=/lib/modules/6.14.0-24-generic/build/include KVERSION=6.14.0-24-generic DKMS_BUILD=1....(bad exit status: 2)
ERROR (dkms apport): binary package for evdi: 1.14.7 not found
Error! Bad return status for module build on kernel: 6.14.0-24-generic (x86_64)
Consult /var/lib/dkms/evdi/1.14.7/build/make.log for more information.
dkms autoinstall on 6.14.0-24-generic/x86_64 failed for evdi(10)
Error! One or more modules failed to install during autoinstall.
Refer to previous errors for more information.
 * dkms: autoinstall for kernel 6.14.0-24-generic
   ...fail!
run-parts: /etc/kernel/postinst.d/dkms exited with return code 11
dpkg: error processing package linux-image-6.14.0-24-generic (--configure):
 installed linux-image-6.14.0-24-generic package post-installation script subprocess returned error exit status 11
Errors were encountered while processing:
 linux-headers-generic-hwe-24.04
 linux-generic-hwe-24.04
 linux-image-6.14.0-24-generic

Resposta do ChatGPT

O erro persiste porque o dkms está tentando compilar automaticamente o módulo evdi na versão 1.14.7, mas:

Você tem o pacote evdi-dkms instalado na versão 1.14.2.

O sistema ainda mantém uma referência quebrada ao evdi 1.14.7, que falha ao compilar e trava a configuração dos pacotes.

✅ Objetivo agora Remover todas as versões conflitantes do evdi, limpar o DKMS e forçar o dpkg a completar a instalação dos headers e do kernel.

🧹 Passo a passo para limpar o evdi antigo (1.14.7)

  1. Liste o que o DKMS tem instalado
dkms status

Você provavelmente verá algo como:

evdi, 1.14.2: installed
evdi, 1.14.7: added
  1. Remova todas as versões antigas Remova a versão 1.14.7 do DKMS (é essa que está quebrando tudo):
sudo dkms remove evdi/1.14.7 --all

Opcional: se quiser remover todas as versões de evdi para garantir uma limpeza total:

sudo dkms remove evdi/1.14.2 --all
sudo apt purge evdi-dkms

🔄 Reconfigure os pacotes quebrados Depois de limpar os módulos problemáticos, reconfigure os pacotes pendentes:

sudo dpkg --configure -a
sudo apt -f install

✅ (Opcional) Reinstale evdi após tudo estar OK Se você realmente precisa do evdi (por exemplo, usa DisplayLink), instale uma versão compatível após o sistema estar em estado limpo e o kernel/headers estarem configurados com sucesso.

🚨 Se ainda assim continuar aparecendo evdi 1.14.7 É possível que algum pacote mal instalado ou PPA adicionou o evdi 1.14.7. Você pode verificar com:

ls /var/lib/dkms/evdi/

Se houver uma pasta 1.14.7, exclua manualmente:

sudo rm -rf /var/lib/dkms/evdi/1.14.7

Comanos de root executados

  116  fsck.ext4 /
  117  df -h 
  118  e4defrag /boot/
  119  fsck /boot/
  120  update-initramfs -u -k version
  121  update-grub
  122  update-initramfs -u -k vmlinuz-6.14.0-24-generic
  123  update-initramfs -u -k 6.14.0-24-generic
  124  sync ; sync; reboot 
  125  fdisk -l 
  126  cat /etc/fstab 
  127  update-grub
  128  cat /etc/fstab 
  129  reboot
  130  apt-get update
  131  apt-get upgrade
  132  sync ; sync ; reboot
  133  apt-get update
  134  apt-get upgrade
  135  cd /
  136  ll
  137  cat /var/lib/dkms/evdi/1.14.7/build/make.log
  138  apt -f install
  139  apt remove evdi-dkms
  140  apt install evdi-dkms
  141  dpkg --remove --force-remove-reinstreq linux-headers-6.14.0-24-generic
  142  dpkg --configure -a
  143  dkms status
  144  kms remove evdi/1.14.7 --all
  145  dkms remove evdi/1.14.7 --all
  146  dkms remove evdi/1.14.2 --all
  147  apt purge evdi-dkms
  148  dpkg --configure -a
  149  dkms status
       

Momento aprendizagem

Agora mais calmo, com o problema resolvido, com o boot, a respiração e os batimentos do coração normalizados e funcionando bem, fui pesquisar mais sobre o que era DKMS. Veja a resposta do ChatGPT

O DKMS (Dynamic Kernel Module Support) é um sistema desenvolvido para facilitar a manutenção automática de módulos de kernel fora da árvore principal do Linux. Ele garante que esses módulos (como drivers de terceiros) sejam recompilados e reinstalados automaticamente sempre que você instalar ou atualizar o kernel.


✅ O que o DKMS faz

1. Compila módulos para o kernel instalado

Quando você instala um módulo com suporte DKMS (como nvidia, evdi, virtualbox, etc.), ele não apenas instala os arquivos, mas também registra o módulo no banco de dados do DKMS.

2. Recompila módulos após atualizações de kernel

Sempre que um novo kernel é instalado, o DKMS:

  • Detecta automaticamente o novo kernel.
  • Compila novamente os módulos registrados para esse novo kernel.
  • Instala os binários no diretório correspondente (/lib/modules/<versão-do-kernel>/updates/dkms/).

🔄 Fluxo resumido de funcionamento do DKMS

Durante a instalação de um módulo DKMS:

  1. O módulo (ex: evdi) é adicionado com dkms add.
  2. Ele é compilado com dkms build.
  3. E instalado com dkms install.

Durante a instalação de um novo kernel:

  1. O script /etc/kernel/postinst.d/dkms é executado automaticamente após a instalação do kernel.

  2. Esse script chama o comando:

    dkms autoinstall
    
  3. O dkms autoinstall percorre todos os módulos registrados e tenta recompilá-los para o novo kernel.


🚀 Em que momento do boot o DKMS é chamado?

Resposta curta: DKMS não é executado durante o boot do sistema.

Ele é chamado durante a instalação de pacotes, mais precisamente:

  • Durante a instalação de um novo kernel (via APT).
  • Durante a instalação ou atualização de módulos com suporte DKMS.

Os módulos compilados pelo DKMS são armazenados em:

/lib/modules/<versão-do-kernel>/updates/dkms/

E são carregados normalmente pelo sistema durante o boot, como qualquer outro módulo de kernel. O depmod e o initramfs cuidam de indexar e preparar esses módulos para carregamento automático pelo udev ou por serviços do sistema.


📦 Exemplo prático: instalação do evdi

  1. Você instala o evdi-dkms.
  2. O DKMS registra o módulo e o compila para o kernel atual.
  3. Quando você instala um novo kernel (6.14.0-24 por exemplo), o APT executa o dkms autoinstall.
  4. O evdi é recompilado para esse novo kernel.
  5. O módulo fica disponível no diretório /lib/modules/6.14.0-24-generic/updates/dkms/evdi.ko.
  6. Quando o sistema bootar com esse novo kernel, o módulo será carregado automaticamente se estiver habilitado no modprobe ou requisitado por um driver (ex: DisplayLink).

Resumo

O problema foi resolvido com as orientações recebidas após a segunda pergunta — que alívio! Apesar de já ter enfrentado situações semelhantes no passado, a última vez em que precisei fazer uma recuperação de disco desse tipo foi por volta de 2002 ou 2003. Naturalmente, não havia como lembrar de toda a sequência de comandos de cabeça depois de tanto tempo.

Utilizar o ChatGPT ou outras ferramentas baseadas em modelos de linguagem como assistentes na resolução de problemas técnicos é, sem dúvida, é meu modo uso preferido para essa tecnologia. Elas funcionam como um apoio, os bilhões de tokens que elas tem eu os uso como se fosse um unidade de memória minha :):) com acesso imediato e relativamente confiável, especialmente em momentos críticos, poupando tempo e reduzindo o estresse com tarefas complexas ou pouco frequentes.

Abraços!

Vida longa e próspera a todos!!

Referências


Entre em contato:

NewsLetter - https://engineeringmanager.com.br/
Linkdin - linkedin.com/in/leonardoml/
Twitter: @infraascode_br

Te convido a ver os outros posts do blog Infra-as-Code garanto que tem coisas legais lá!!


--- --- IMPORTANTE --- ---
As opiniões aqui expressas são pessoais e de responsabilidade única e exclusiva do autor, elas não refletem necessariamente a posição das empresas que eu trabalho(ei) e/ou presto(ei) serviço.


bio_banner_test