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+C
nã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=true
a /etc/default/grub
eles.esta postagem SE. Nenhum dos dois ajudou.
Após a reinicialização, acabo na grub>
linha de comando, provavelmente porque grub2-mkconfig
nunca 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)
Naturalmente, suponho que há algo errado com o initramfs-4.19.37.img
meu 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 .config
arquivos 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 doinitramfs
? CPIO? - Na
grub>
linha de comando,ls /
produz o que espero ver no arquivo/boot
. Ele contém todos os meus arquivosvmlinuz-*
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-latency
modelo 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 initramfs
forma dessas construções? O que mais posso fazer para validar sua integridade? Há alguma .config
alteração que devo fazer ao construir o kernel para o xfs
sistema 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.