Ste*_*fan 3 server 8.04 reboot kernel vmware-server
我管理 Ubuntu Server 8.04 已经有一段时间了。最重要的是,我正在运行一个 VMWare 服务器版,每当安装新内核时,它都需要重新编译它的模块。为此,我正在执行:sudo vmware-config.pl
到现在为止,每当有新版本的内核可用时,我都会安装它,重新启动系统并重建模块。但是现在我意识到 - 而不是偶然 - 重建这些内核模块甚至可以在不重新启动系统的情况下工作。VMWare 甚至可以在此之后再次启动。这让我很好奇。我进入uname -r以查看内核版本,它向我显示了我之前安装的版本,而无需重新启动系统。
uname的联机帮助页并没有详细说明实际打印的内容,但到目前为止我认为它打印了实际运行的内核版本。
我现在的问题是:内核真的有可能在不重新启动的情况下重新加载吗?我并没有安装Ksplice的或类似的工具。据我所知,它现在甚至在 Ubuntu Server 8.04 的存储库中。我的系统怎么了?内核更新后是否必须重新启动?uname -r 打印什么?Ubuntu Server Edition 是否附带类似于 ksplice 的程序?我从来没有读过关于这样的功能的任何内容!
我检查了基斯告诉我要做的事情:
uname -r
2.6.24-28-server
Run Code Online (Sandbox Code Playgroud)
proc 中的文件给出了:
cat /proc/version_signature
Ubuntu 2.6.24-28.75-server
Run Code Online (Sandbox Code Playgroud)
和 dpkg:
dpkg -l 'linux-image*' | grep ^.i
ii linux-image-2.6.24-28-server 2.6.24-28.80
Run Code Online (Sandbox Code Playgroud)
显然我应该重新启动 :) 感谢您提供详细信息!
的输出uname -r仅显示“ABI”编号之前的版本,但可以有 ABI 的修订版。只有当 ABI 发生变化时,才需要重新编译第三方模块。
有关您正在运行的内容的更多详细信息,请阅读文件/proc/version_signature:
cat /proc/version_signature
Ubuntu 2.6.24-28.80-generic
Run Code Online (Sandbox Code Playgroud)
这将显示您当前运行的内核包版本,该版本可能与最近安装的内核不同。例如,在上面的 ABI 是“28”,这与将显示的一样多:uname -r
uname -r
2.6.24-28-generic
Run Code Online (Sandbox Code Playgroud)
然后你可以看到你安装了什么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
Run Code Online (Sandbox Code Playgroud)
在上述情况下,如果得到了安装的下一个内核包被作为版本2.6.24- 28 0.81,它只会是“微发布”变了。由于模块编译与 ABI 相关,因此不需要重新编译,但您仍需要重新启动才能获得内核修复。如果安装了接下来的内核版本被作为2.6.24- 29 0.81,则ABI将有改变,你会需要重新编译模块,你已经重新启动之后。
有关 ABI 的更多详细信息,请参阅https://wiki.ubuntu.com/KernelTeam/BuildSystem/ABI
| 归档时间: |
|
| 查看次数: |
1408 次 |
| 最近记录: |