SDB:保留多个内核版本

跳转到:导航搜索


在 openSUSE 上测试

相关文章

Icon-help.png


本文介绍 openSUSE 的多版本内核功能以及如何启用和配置它。

Icon-warning.png
警告:此功能应仅由有经验的用户使用。

安装新内核时的默认行为

使用 YaSTZypper 下载和安装新内核时,openSUSE 安装的默认行为是在安装新内核后并且使用新内核重新启动系统之前删除旧内核。

使用多版本内核功能更改默认行为

自 openSUSE 12.1 起,一项新的高度可配置的功能可用 - 称为多版本内核 - 可以在文件/etc/zypp/zypp.conf.

中启用和配置。通过启用和配置此功能,可以更改和配置默认行为为

  • 仅在系统使用新内核成功重新启动删除旧内核
  • 将指定的旧内核数量保留为备用
  • 保留特定内核版本

在安装新内核版本后重新启动系统后,systemd 服务 purge-kernels.service 将比较已安装的内核列表与/etc/zypp/zypp.conf中的设置,并删除不再需要的内核。


启用多版本内核功能

root 用户身份登录,并使用编辑器打开文件/etc/zypp/zypp.conf并查找以下两行

#multiversion = provides:multiversion(kernel)

#multiversion.kernels = latest,running

第一行告诉系统保留多个内核版本,第二行配置系统处理这些内核版本的方式。

通过删除开头的#来取消注释这两行,然后保存文件。

请注意,如果您只是取消注释第一行,系统将保留所有内核并且不会删除它们。这不是理想的行为,因为它会随着时间的推移用旧内核版本填满您的硬盘。为了防止这种情况,必须取消注释两行,或者您必须手动删除旧内核版本。

配置多版本内核功能

/etc/zypp/zypp.conf中提到了几种配置多版本内核功能的方法

## Comma separated list of kernel packages to keep installed in parallel, if  the
## above multiversion variable is set. Packages can be specified as
## 2.6.32.12-0.7 - Exact version to keep
## latest        - Keep kernel with the highest version number
## latest-N      - Keep kernel with the Nth highest version number
## running       - Keep the running kernel
## oldest        - Keep kernel with the lowest version number (the GA kernel)
## oldest+N      - Keep kernel with the Nth lowest version number
##
## Default: Do not delete any kernels if multiversion = provides:multiversion(kernel) is set

下面详细解释了它们的使用方法。

仅在重新启动后删除旧内核

用例:您希望确保仅在系统使用新内核成功重新启动后才会删除旧内核。

配置:取消注释/etc/zypp/zypp.conf中的两行,如步骤 3 上述所述,这将使您得到以下内容

multiversion = provides:multiversion(kernel)
multiversion.kernels = latest,running

确保 purge-kernels.service 已启用。

说明:参数latest,running告诉系统保留最新的内核和正在运行的内核(如果它们不同)

为了安全起见,您可能希望配置系统以始终保留最新的正在运行的内核。

如果您使用新内核重新启动系统 - 正如应该的那样 - 那么在新内核成功启动后,要保留的内核是

  • 最新的内核 = 新内核
  • 正在运行的内核 = 新内核

最新的内核和正在运行的内核不不同,因为它们是相同的,因此所有其他内核(在本例中为您的旧内核)将被删除。

如果您改为使用旧内核重新启动系统,则要保留的内核是

  • 正在运行的内核 = 您正在重新启动系统的旧内核
  • 最新的内核 = 新内核

在这种情况下,最新的内核和正在运行的内核都不同,因此两者都将被保留,并且不会删除任何内核。

将旧内核作为备用保留

用例:您希望保留一个或多个旧内核版本,以便拥有一个或多个备用内核。这对于您例如希望安装不稳定的内核进行测试的原因很有用。如果新不稳定内核出现问题,例如您的机器无法启动,您仍然可以安装一个或多个以前已知良好的内核版本,以便启动机器。

配置:将一个或多个latest-N参数添加到多版本内核行中/etc/zypp/zypp.conf。下面的示例将始终在您的系统上保留最后两个以前的内核版本

multiversion.kernels = latest,latest-1,latest-2,running

说明:当您在安装新内核后重新启动系统时,系统将保留

  • 新内核和正在运行的内核,如latest,running
  • 配置的上一个内核版本到新内核,如
  • 配置的上一个内核版本的前一个版本,如

配置的

并删除所有旧内核版本。latest-N要保留您想要的内核版本数,只需将另一个语句添加到多版本内核

multiversion.kernels = latest,latest-1,latest-2,latest-3,latest-4,running

行。例如,如果您想保留四个额外的内核版本,那么该行将如下所示

这将使您拥有五个已安装的内核:新内核和四个以前的版本。可以使用参数oldestoldest+N语句添加到来完成相反的操作。例如

multiversion.kernels = latest,oldest,oldest+1,running

将使您拥有

  • 最新的和正在运行的内核版本,如latest,running
  • 配置的可以使用参数
  • 最旧的内核版本,如配置的

Keep a specific kernel version

Use Case: You make regular system updates and let YaST or Zypper install new kernel versions. But you are also compiling your own special kernel for various reasons and want to make sure, that the system will keep it.

Configuration: Add the version number of your self-compiled kernel to the语句添加到行中/etc/zypp/zypp.conf. If you name your kernel3.1.0-46-<your_username>, for example, then the line should look like this

multiversion.kernels = latest,3.1.0-46-<your_username>,running

说明:当您在安装新内核后重新启动系统时,系统将保留

  • 新内核和正在运行的内核,如latest,running
  • your self-compiled kernel as configured with3.1.0-46-<your_username>

Using all configuration options

Use Case: You have a freshly installed system that you update frequently and you want to keep

  • the kernel that came with the installation media and its successor
  • the newest kernel and its predecessor
  • your own, self-compiled kernel named3.1.0-46-<your_username>

Configuration: Change the语句添加到行中/etc/zypp/zypp.confto the following

multiversion.kernels = latest,latest-1,oldest,oldest+1,3.1.0-46-<your_username>,running

说明:当您在安装新内核后重新启动系统时,系统将保留

  • 新内核和正在运行的内核,如latest,running
  • the predecessor of the new and running kernel as configured with上一个内核版本到新内核,如
  • your self-compiled kernel as configured with3.1.0-46-<your_username>
  • the kernel that came with the installation media as configured with可以使用参数
  • the successor of the kernel from the installation media as configured with配置的

外部链接

--Freigeist A 08:09, 25 December 2011 (MST)