我之前问过一个关于uname的相关问题,现在想换个角度问,因为下面简单但明显的冲突输出可能意味着很多人没有想到的东西(包括我)。我正在运行 FreeBSD 9 RELEASE;请查看以下命令:
# 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
Run Code Online (Sandbox Code Playgroud)
上面的内核文件建议运行的内核是 9.2-RELEASE-p7。但...
# 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 root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64
Run Code Online (Sandbox Code Playgroud)
所以 dmesg 和 uname 说它是 9.1-RELEASE。
我也做了一个广泛的find / -type f -exec grep -l "9.1-RELEASE" {} \;
,但我发现没有可能包含 9.1-RELEASE.
什么可能导致上述冲突,我实际运行的是什么内核?
请注意,我运行 RELEASE 并运行 freebsd-update 进行二进制更新,因此不涉及已编译的内核。而且我在 freebsd-update 后重新启动了多次。并且系统不在监狱等等,只是那台计算机上唯一的系统。
我想到的一件事是您的系统会有一个单独的/boot
分区,在您执行freebsd-update
. 这使得新内核被复制到分/boot
区内的目录中/
,而不是实际的/boot
.
现在,在引导期间,您的引导加载程序被配置为使用实际的/boot
,因此旧内核被加载。
归档时间: |
|
查看次数: |
725 次 |
最近记录: |