Informações conflitantes sobre a versão do kernel em execução no FreeBSD

6

Eu fiz uma pergunta relacionada sobre uname antes e agora quero perguntar de outro ângulo, porque o seguinte é simples, mas óbvio saídas conflitantes podem significar que há algo em que muitas pessoas não pensaram (eu incluído). Estou executando o FreeBSD 9 RELEASE; por favor veja os seguintes comandos:

# sysctl kern.bootfile
kern.bootfile: /boot/kernel/kernel

# strings /boot/kernel/kernel |grep RELEASE|grep 9
@(#)FreeBSD 9.2-RELEASE-p7 #0: Tue Jun  3 11:05:13 UTC 2014
FreeBSD 9.2-RELEASE-p7 #0: Tue Jun  3 11:05:13 UTC 2014
9.2-RELEASE-p7

O arquivo do kernel acima sugere que o kernel em execução é 9.2-RELEASE-p7. Mas ...

# dmesg
Copyright (c) 1992-2012 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
    The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 9.1-RELEASE #0 r243825: Tue Dec  4 09:23:10 UTC 2012
...

# uname -a
FreeBSD localhost.localdomain 9.1-RELEASE FreeBSD 9.1-RELEASE #0 r243825: Tue Dec  4 09:23:10 UTC 2012     [email protected]:/usr/obj/usr/src/sys/GENERIC  amd64

Então o dmesg e o uname dizem que é 9.1-RELEASE.

Também fiz um extenso find / -type f -exec grep -l "9.1-RELEASE" {} \; , mas não encontrei nenhum arquivo de kernel possível que contenha 9.1-RELEASE.

O que poderia levar ao conflito acima e qual kernel estou realmente executando?

Por favor, note que eu corro RELEASE e rodei o freebsd-update para fazer uma atualização binária, então nenhum kernel compilado está envolvido. E eu reiniciei várias vezes após o freebsd-update. E o sistema não está na prisão, etc., apenas o único sistema nesse computador.

    
por John 06.06.2014 / 05:58

2 respostas

7

Uma coisa que me vem à mente é que seu sistema teria uma partição /boot separada, que de alguma forma foi desmontada enquanto você executava freebsd-update . Isso fez com que o novo kernel fosse copiado para o diretório /boot dentro da partição / , não para o /boot real.

Agora, durante a inicialização, seu gerenciador de inicialização é configurado para usar o /boot real e, assim, o kernel antigo é carregado.

    
por 06.06.2014 / 09:33
4

Você provavelmente atualizou o sistema de 9,1 para 9,2, mas não conseguiu reinicializá-lo.

Você também pode ter simplesmente inicializado um kernel anterior, mas, dada a saída que você mostrou, isso parece muito menos provável.

Uma outra possibilidade vem à mente, que o sistema está realmente dentro de uma cadeia, rodando em um sistema 9.1, de modo que enquanto a cadeia é atualizada para 9.2, o sistema host ainda está rodando 9.1.

    
por 06.06.2014 / 06:04

Tags