Linux Troubleshooting com ChatGPT
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
- 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).
- 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
- (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
- 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
- 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)
- Liste o que o DKMS tem instalado
dkms status
Você provavelmente verá algo como:
evdi, 1.14.2: installed
evdi, 1.14.7: added
- 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:
- O módulo (ex:
evdi
) é adicionado comdkms add
. - Ele é compilado com
dkms build
. - E instalado com
dkms install
.
Durante a instalação de um novo kernel:
-
O script
/etc/kernel/postinst.d/dkms
é executado automaticamente após a instalação do kernel. -
Esse script chama o comando:
dkms autoinstall
-
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
- Você instala o
evdi-dkms
. - O DKMS registra o módulo e o compila para o kernel atual.
- Quando você instala um novo kernel (
6.14.0-24
por exemplo), o APT executa odkms autoinstall
. - O
evdi
é recompilado para esse novo kernel. - O módulo fica disponível no diretório
/lib/modules/6.14.0-24-generic/updates/dkms/evdi.ko
. - 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á!!
|
