Substituindo o kernel do Linux de fora do sistema

Substituindo o kernel do Linux de fora do sistema

Existe uma certa imagem do Ubuntu que funciona (a partir do cartão SD) com um controlador de hardware. A imagem inteira ocupa 2 gigabytes, pois esse é o tamanho do cartão. A imagem é construída no kernel antigo. Precisamos substituir a placa-mãe, porque as antigas não estão mais disponíveis, e as novas apropriadas não falam com o kernel antigo. E o mais importante, irrevogavelmente (devido a um certo caos ao mudar de desenvolvedor) a senha de root da imagem é perdida - ou seja, substituir o kernel de maneira civilizada, por dentro, infelizmente, não funcionará. A questão: é possível - e como posso - mudar o kernel, sem mudar o resto, fora do sistema, simplesmente reescrevendo algo no cartão com a imagem existente do meu laptop? Caso contrário, será necessário reconstruir toda a imagem simplificada e depurada, o que gostaria de evitar.

Responder1

Primeiro, não posso enfatizar o suficiente para não usar sua cópia de trabalho, mas sim fazer uma cópia de backup e usá-la caso algo dê terrivelmente errado.

Isso pode não funcionar, mas é sua melhor chance.

O kernel depende dos arquivos em /boot para começar.

System.map-4.19.1-1-default
.vmlinuz-4.19.4-1-default.hmac
config-4.19.4-1-default
initrd-4.19.1-1-default
initrd is symlinked to above
symvers-4.19.1-1-default.gz
sysctl.conf-4.19.1-1-default
vmlinux-4.19.1-1-default.gz
vmlinuz symlink to below
vmlinuz-4.19.4-1-default

Você precisa de todos esses arquivos da nova versão presente, obviamente a maioria dos nomes dos arquivos contém o número da versão e serão diferentes dependendo da versão do kernel que você está usando.

Dentro de /lib/modules/ há uma série de pastas, uma para cada versão do kernel. Por exemplo:

4.19.4-1-default

Todos os módulos nesta pasta precisariam ser copiados.

Finalmente, seus arquivos grub ou grub2 precisarão ser modificados para apontar para esses novos arquivos.

  1. Faça backup do seu cartão SD e use a cópia de backup
  2. Se a sua placa-mãe antiga não for UEFI, desative-a na nova placa-mãe ou haverá problemas.
  3. Obtenha outro cartão SD/HDD
  4. Instale uma versão mais recente de qualquer distribuição que você estava usando.
  5. Copie /boot e /lib/modules/ para os locais apropriados na cópia de backup do seu sistema operacional. Se presente, /usr/lib/bootloader também deve ser copiado.
  6. Inicialize e veja o que acontece.

Provavelmente haverá mais problemas de compatibilidade. O maior perigo é avançar muito e fazer a transição do initd para o systemd ou outra mudança importante.

Eu sugeriria descobrir qual versão da distro você estava usando e mover apenas uma versão superior para começar. Se a instalação falhar, você poderá avançar uma versão por vez.

Quando você tem um sistema inicializável, sugiro usar o apt-get ou etc para fazer uma atualização completa da distribuição na mansão adequada.

informação relacionada