Kernel personalizado produz initramfs não inicializáveis ​​- CentOS 7

Kernel personalizado produz initramfs não inicializáveis ​​- CentOS 7

Estou construindo meu próprio kernel (4.19.37) e não tenho problemas durante a construção ( make) ou instalação ( make install_modules+ make install). Tudo parece correr bem até eu executar grub2-mkconfig -o /boot/grub2/grub.cfg. Ao executar este comando, o grub encontra meus vmlinuz-*kernels novos e existentes, /boot/bem como seus arquivos initramfs-*.img. Entretanto, nesse ponto o sistema trava indefinidamente (>várias horas). Ctrl+Cnão parece parar e devo reiniciar. Eu examinei esse problema e tudo que descobri que poderia ser um problema foi a investigação de discos de remoção para sistemas operacionais inicializáveis, que eliminei removendo-os e adicionando-os GRUB_DISABLE_OS_PROBER=truea /etc/default/grubeles.esta postagem SE. Nenhum dos dois ajudou.

Após a reinicialização, acabo na grub>linha de comando, provavelmente porque grub2-mkconfignunca terminou e corrompeu o arquivo de configuração do grub. Aqui posso carregar o kernel antigo e o novo sem nenhum problema, assim como o initramfs, mas quando executo a inicialização recebo um kernel panic:

end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)

end Kernel panic - não sincronizando: VFS: Não é possível montar root fs em bloco desconhecido (1,0)

Naturalmente, suponho que há algo errado com o initramfs-4.19.37.imgmeu processo de construção. Como experiência, testei se conseguia carregar o novo kernel, mas usar o antigo initramfs (4.19.10) e, de fato, ele inicializa no emergency mode. No entanto, não posso fazer o oposto, kernel antigo com novo initramfs. Então, algo está errado com minha nova imagem do initramfs.

Ficando mais esperto, meu último experimento foi montar a imagem antiga e a nova do initramfs com mount. Ambos foram montados com êxito, sem erros e parecem ter estruturas de arquivos idênticas. Também comparei meus .configarquivos novos e antigos para as compilações do kernel, e as diferenças são triviais.

Algumas outras notas/observações:

  • Na imagem acima, você pode ver que List of all partions:não produz nada, então estou me perguntando se há algum problema com o tipo de sistema de arquivos. Meu disco rígido é xfs, qual é o sistema de arquivos do initramfs? CPIO?
  • Na grub>linha de comando, ls /produz o que espero ver no arquivo /boot. Ele contém todos os meus arquivos vmlinuz-*einitramfs-*.img
  • Meu sistema de arquivos éxfs
  • Eu tentei várias outras versões do kernel com os mesmos resultados
  • Duas vezes tive compilações e instalações bem-sucedidas, uma vez com o kernel existente (4.19.10), foi uma atualização e uma segunda vez com o mesmo kernel com um low-latencymodelo de preempção. Não consigo, de jeito nenhum, descobrir o que fiz de diferente naquela época.

Portanto, as perguntas finais são: O que há de errado com a initramfsforma dessas construções? O que mais posso fazer para validar sua integridade? Há alguma .configalteração que devo fazer ao construir o kernel para o xfssistema de arquivos?


Isenção de responsabilidade: então, esta é na verdade uma continuação deessa questão, mas simplifiquei um pouco o problema. Algumas informações básicas podem ser relevantes.

informação relacionada