我管理UbuntuServer8.04已经有一段时间了。最重要的是,我正在运行一个VMWare服务器版本,只要安装了一个新内核,它就需要重新编译它的模块。为此,我正在执行:sudo vmware-config.pl
直到现在,每当内核的新版本可用时,我都会安装它,重新启动系统并重新构建模块。但是现在我意识到在那之后,VMWare甚至能够再次启动。这让我很好奇。我进入uname -r是为了查看内核版本,它向我展示了我之前安装的版本,而没有重新启动系统。
uname的曼佩奇并没有详细说明实际打印的内容,但到目前为止,我认为它打印了实际运行的内核版本。
我现在的问题是:内核真的有可能在不重新启动的情况下重新加载自己吗?我没有安装ksplice或类似的工具。据我所知,它现在甚至在UbuntuServer8.04的存储库中。我的系统怎么了?是否必须在内核更新后重新启动?不命名-r打印什么?是否带有类似于ksplice的程序?我从来没有读过任何这样的功能!
我查了基斯让我做的事:
uname -r
2.6.24-28-serverproc中的文件提供了:
cat /proc/version_signature
Ubuntu 2.6.24-28.75-server和dpkg:
dpkg -l 'linux-image*' | grep ^.i
ii linux-image-2.6.24-28-server 2.6.24-28.80显然,我应该重新启动:)谢谢详细的信息!
发布于 2010-10-29 21:05:21
uname -r的输出只显示" ABI“数字的版本,但是可以对ABI进行修改。只有当ABI更改时,第三方模块才需要重新编译。
有关您正在运行的内容的详细信息,请阅读文件/proc/version_signature:
cat /proc/version_signature
Ubuntu 2.6.24-28.80-generic这将显示您当前正在运行的内核包版本,它可能与最近安装的内核不同。例如,在上面,ABI是"28",这与uname -r将显示的内容一样多:
uname -r
2.6.24-28-generic然后,您可以看到您在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在上述情况下,如果安装的下一个内核包版本为2.6.24-28.81,则只有“微版本”发生了变化。由于模块编译与ABI相关联,所以不需要重新编译,但仍然需要重新启动才能得到内核修复。如果下一个安装的内核版本为2.6.24-29.81,那么ABI将发生变化,您需要在重新启动之后重新编译模块。
有关ABI的详细信息,请参阅https://wiki.ubuntu.com/KernelTeam/BuildSystem/ABI。
https://askubuntu.com/questions/10329
复制相似问题