SUSE Linux Enterprise Server 支持多个内核版本的平行安装。安装第二个内核时,将自动创建一个引导项和一个 initrd,因此无需做进一步的手动配置。重引导计算机时,新增的内核可用作附加的引导选项。
使用此功能,您可以安全测试内核更新,同时,还始终能够回退到已经过验证的前一内核。执行这种操作时,请不要使用更新工具(例如 YaST 联机更新或更新小程序),而应该遵照本章中所述的过程。
请注意,如果您安装自行编译的内核或第三方内核,则会失去所有的支持权利。仅支持 SUSE Linux Enterprise Server 随附的内核,以及通过官方更新渠道为 SUSE Linux Enterprise Server 提供的内核。
建议在安装其他内核后检查您的引导加载程序配置,以设置您选择的默认引导项。有关详细信息,请参见第 12.3 节 “使用 YaST 配置引导装载程序”, 第 12 章 引导加载程序 GRUB 2, 管理指南。
SUSE Linux Enterprise 12 上默认启用软件包的多个版本安装(多版本支持)。要验证此设置,请按如下所示继续:
以 root 身份使用所选的编辑器打开 /etc/zypp/zypp.conf。
搜索字符串 multiversion。如果为所有支持此功能的内核包启用多版本,以下行可能会取消注释:
multiversion = provides:multiversion(kernel)
要对特定的内核类型限制多版本支持,请将逗号分隔的包名称列表添加到 /etc/zypp/zypp.conf 中的 multiversion 选项 — 例如
multiversion = kernel-default,kernel-default-base,kernel-source
保存所做的更改。
确保还为新更新的内核安装了所需的由供应商提供的内核模块(内核模块包)。内核更新过程不会发出有关最终缺少内核模块的警告,因为系统上保留的旧内核仍能满足包要求。
如果您经常测试已启用多版本支持的新内核,引导菜单很快就会变得无序。由于 /boot 分区的空间通常有限,因此,您还可能会遇到 /boot 溢出的问题。您可以使用 YaST 或 Zypper 手动删除未使用的内核版本(如下文所述),也可以将 libzypp 配置为自动删除不再使用的内核。默认情况下不会删除内核。
以 root 身份使用所选的编辑器打开 /etc/zypp/zypp.conf。
搜索字符串 multiversion.kernels,并通过取消注释对应的行来激活此选项。此选项将会使用包含以下值的逗号分隔列表:
3.12.24-7.1:.
保留具有指定版本号的内核
latest:.
保留具有最高版本号的内核
latest-N:.
保留版本号排在第 N 位的内核
running:.
保留正在运行的内核
oldest:.
保留具有最低版本号的内核(最初 SUSE Linux Enterprise Server 随附的内核)
oldest+N.
保留版本号排在倒数第 N 位的内核
以下是一些示例
multiversion.kernels = latest,running
保留最新内核以及当前正在运行的内核。这相当于完全不启用多版本功能,不过,旧内核是在下一次重引导后才去除的,而不是在安装后立即去除。
multiversion.kernels = latest,latest-1,running
保留最新的两个内核,以及当前正在运行的内核。
multiversion.kernels = latest,running,3.12.25.rc7-test
保留最新的内核、当前正在运行的内核,以及 3.12.25.rc7-test。
正在运行的内核
除非使用特殊的设置,否则您可能希望永远保留正在运行的内核。如果不保留正在运行的内核,将在内核更新期间将其删除。因此,更新后必须立即重引导系统,因为删除后便不能再装载当前正在运行的核心模块。
启动 YaST,然后通过 › 打开软件管理器。
选择 › › 列出能够提供多个版本的所有包。
在底部窗格的左侧选择一个包并打开其选项卡。
要安装某个包,请单击其对应的复选框。绿色选中标记表示已选择对应的包进行安装。
要去除某个已安装的包(带有白色选中标记),请单击其对应的复选框,直到出现红色的 X,这表示已选择去除该包。
单击开始安装。
使用命令 zypper se -s 'kernel*' 显示所有可用内核包的列表:
S | Name | Type | Version | Arch | Repository --+----------------+------------+-----------------+--------+------------------- v | kernel-default | package | 2.6.32.10-0.4.1 | x86_64 | Alternative Kernel i | kernel-default | package | 2.6.32.9-0.5.1 | x86_64 | (System Packages) | kernel-default | srcpackage | 2.6.32.10-0.4.1 | noarch | Alternative Kernel i | kernel-default | package | 2.6.32.9-0.5.1 | x86_64 | (System Packages) ...
安装时指定确切的版本:
zypper in kernel-default-2.6.32.10-0.4.1
卸装内核时,使用命令 zypper se -si 'kernel*' 可以列出安装的所有内核,使用 zypper rm 包名版本可以去除该包。