Recarregamento automático do kernel após a atualização

3

Eu tenho gerenciado um Ubuntu Server 8.04 há algum tempo. Além disso, estou executando um VMWare Server Edition, que precisa recompilar seus módulos sempre que um novo kernel é instalado. Para isso estou executando: sudo vmware-config.pl

Até agora, sempre que uma nova versão do kernel estava disponível, eu o instalava, reiniciava o sistema e reconstruía os módulos. Mas agora percebi - e não por acaso - que a reconstrução desses módulos do kernel funcionou mesmo sem reiniciar o sistema. O VMWare é capaz de iniciar novamente depois disso. Isso me deixou curioso. Eu digitei uname -r para ver a versão do kernel, que me mostrou exatamente a versão que eu instalei antes sem reiniciar o sistema.

As Manpages para uname não são exatamente detalhadas sobre o que é realmente impresso , mas até agora eu pensei que ele imprimiu a versão do kernel em execução.

A minha pergunta agora é: é realmente possível que o kernel se recarregue sem reiniciar? Eu fiz não instalar o ksplice ou uma ferramenta similar. Pelo que entendi agora é mesmo nos repositórios do Ubuntu Server 8.04. O que está acontecendo com o meu sistema? Eu tenho que reiniciar após a atualização do kernel ou não? O que uname -r imprime? O Ubuntu Server Edition é fornecido com um programa semelhante ao ksplice? Eu nunca li nada sobre um recurso como esse!

Eu verifiquei o que os kees me disseram para fazer:

uname -r
2.6.24-28-server

O arquivo em proc deu:

cat /proc/version_signature
Ubuntu 2.6.24-28.75-server

E dpkg:

dpkg -l 'linux-image*' | grep ^.i
ii  linux-image-2.6.24-28-server          2.6.24-28.80

Obviamente eu devo fazer uma reinicialização então :) Obrigado pela informação detalhada!

    
por Stefan 29.10.2010 / 22:31

1 resposta

6

A saída de uname -r mostra apenas a versão até o número "ABI", mas pode haver revisões da ABI. Somente quando as alterações na ABI os módulos de terceiros precisarem ser recompilados.

Para mais detalhes sobre o que você está executando, leia o arquivo /proc/version_signature :

cat /proc/version_signature
Ubuntu 2.6.24-28.80-generic

Isto mostrará a versão do pacote do kernel que você está atualmente executando , que pode ser diferente do kernel instalado mais recente. Por exemplo, no acima, o ABI é "28", que é o mesmo que uname -r mostrará:

uname -r
2.6.24-28-generic

Então você pode ver o que você instalou com dpkg :

dpkg -l 'linux-image*' | grep ^.i
ii  linux-image-2.6.24-27-generic              2.6.24-27.69                            Linux kernel image for version 2.6.24 on x86
ii  linux-image-2.6.24-28-generic              2.6.24-28.80                            Linux kernel image for version 2.6.24 on x86
ii  linux-image-generic                        2.6.24.28.30                            Generic Linux kernel image

No caso acima, se o próximo pacote do kernel instalado for versionado como 2.6.24- 28 .81, seria apenas o "micro release" que mudou. Como as compilações do módulo estão vinculadas à ABI, nenhuma recompilação é necessária, mas você ainda precisa reinicializar para obter as correções do kernel. Se o próximo kernel instalado foi versionado como 2.6.24- 29 .81, então a ABI terá mudado, e você precisará recompilar os módulos depois de ter reiniciado.

Para mais detalhes sobre a ABI, consulte o link

    
por Kees Cook 29.10.2010 / 23:05