现在我该如何在14.04中使用Kernel 3.19呢?

所以我正在重建我的存储服务器。为了稳定性,我想使用Ubuntu server 14.04 LTS作为操作系统。然而,我计划使用具有RAID 5的Btrfs,并且在3.19内核中得到了很大改进。因此,我想在14.04上使用那个内核。
我知道3.19是将在15.04中使用的内核,并计划在8月份作为HWE内核和14.04.3的默认内核发布。但是我现在需要构建这个服务器。
我不想使用会在未来破坏事物的奇怪自定义设置。那么,在14.04.2安装的基础上,我如何最轻松地使用该内核,以便在8月份可以轻松恢复到标准状态,进行dist-upgrade到14.04.3并获得我想要的内核?

1有一种方法是从这个PPA获取3.19版本的软件包,然后使用dpkg -i命令手动安装它们。我不知道这是否是最简单的方法(或者第二/第三简单的方法),但可以尝试一下。 - mikewhatever
1我目前实际上也面临着完全相同的问题。我想问的是:升级到3.19内核是否足以获得更好的支持,还是还需要升级btrfs-tools? - Tobias J
@TobyJ 非常好的观点,关于btrfs-utils,我认为答案是肯定的,我需要研究一下升级该软件包。 - Degenerate
可以的。请按照官方说明在https://wiki.ubuntu.com/Kernel/LTSEnablementStack上进行操作。 - Bellera
4个回答

您可以安装一个更新的内核
  • 根据Kernel/MainlineBuilds中所述或

  • 在这种情况下,更简单的方法是使用从trusty-updates存储库构建的软件包:linux-lts-vivid

    sudo apt-get install linux-generic-lts-vivid
    

    该元软件包始终依赖于Canonical的v3.19内核分支的最新版本。

    Ubuntu Xenial的v4.4内核分支的等效软件包是linux-generic-lts-xenial(真是个惊喜)。

由于不同分支的内核包不会互相替换,所以几乎没有危险,上述步骤中任何一步都不会导致系统无法启动¹。如果新安装的内核无法运行,您可以在引导过程中的GRUB菜单中选择启动不同/先前的内核。
¹ 最值得注意的例外是破损的GRUB配置。如果update-grub(由内核包的后安装和后删除脚本调用)在没有新内核的情况下无法工作,那么它在有新内核的情况下也无法工作。

谢谢David,我会选择这个方案,在八月份进行ppa-purge清理后再进行升级。 - Degenerate
我想升级内核。不过,如果我的升级失败了,你能写下一些命令(或者指导)来恢复到旧版本吗?目前我使用的是Ubuntu 14.04.2,带有Linux内核3.16。 - Ljiljan Veselinovic
内核更新不会替换先前的内核。您可以在启动期间的GRUB菜单中选择引导不同/先前的内核 - David Foerster
3现在不需要使用这个ppa了。3.19内核已经在trusty-updates仓库中了。可以通过sudo apt-get install linux-generic-lts-vivid来安装。 - Pilot6
这还是最新的吗?Wily呢? - smac89
@Smac89:你可以以类似的方式安装Wily(v4.2)的内核,但这超出了本问题的范围。 - David Foerster
@DavidFoerster 谢谢。没想到会这样,但是...删除了所有那些被划掉的东西后,现在看起来真的很干净。干杯。(如果用户真的想知道之前有什么内容,他们可以查看回答历史。) - syntaxerror

现在你可以直接从软件仓库安装“最新”的Ubuntu内核(版本3.19)。
sudo apt-get install linux-image-generic-lts-vivid linux-headers-generic-lts-vivid

这将为Vivid安装稳定的Ubuntu内核。以及在您的系统上构建多个模块所需的头文件。
希望对您有所帮助!

在Ubuntu 14.04中升级内核到3.19的最简单方法是运行以下命令:
sudo apt-get install linux-generic-lts-vivid

这将安装元包,它会拉取其他所有内容。图像和标题将被安装。

这种方法很好,因为3.19内核将通过常规的更新和升级过程获得安全更新和错误修复。

旧的内核3.13或3.16将不会被删除。它们可以通过grub菜单启动,并且也会获得更新。

如果您不希望更新3.13或3.16内核,您可以删除元包:

对于3.13:linux-image-generic linux-headers-generic

对于3.16:linux-image-generic-lts-utopic linux-headers-generic-lts-utopic


  1. 打开http://kernel.ubuntu.com/~kernel-ppa/mainline/
  2. 进入最新的v3.19目录(今天是v3.19.2-vivid)
  3. 下载3个文件:

    linux-headers-3.19.X-ZZZZZZ_3.19.X-ZZZZZZ.YYYYMMDDHHMM_all.deb
    linux-headers-3.19.X-ZZZZZZ-generic_3.19.X-ZZZZZZ.YYYYMMDDHHMM_ARCH.deb
    linux-image-3.19.X-ZZZZZZ-generic_3.19.X-ZZZZZZ.YYYYMMDDHHMM_ARCH.deb
    

    注意,其中一个linux-headers适用于所有架构(_all.deb)。另一个linux-headerslinux-image必须与您的机器架构匹配(_i386.deb_amd64.deb)。

  4. 从终端运行以下命令安装它们:

    sudo dpkg -i linux-{image,headers}-3.19.*.deb
    

    或者使用TAB自动补全来帮助您输入完整的文件名。


2没有特定的原因,不建议安装主线内核。尤其是当Ubuntu内核可用时。 - Pilot6
2@Pilot6 我猜当有人冒险安装内核时,他们知道自己有特定的理由。 - dezso
此外,linux-generic-lts-vivid 在回答时并不可用。 - Eric Carvalho
据我所知,linux-headers 只在您想要自己编译内核时才是必需的。如果您只想使用内核,linux-image 将完全足够。 - syntaxerror
在我个人的情况下,我确实必须这样做。在我的旧机器上,4.4.0之前的任何版本都无法使我的PATA控制器初始化和驱动器引导(LP_错误编号1536397_)。而且在撰写时,Xenial中最新可用的版本是4.3.4。然而,我现在可以证明从4.2.0到4.4.0之前的任何内核都无法使用。有时Ubuntu的开发团队真的花了太长时间才向公众发布一个内核。4.4.0确实非常出色;但我不指望它会在4月份的16.04正式版中被包含进去。所以错误报告将会迅速积累,而不是他们彻底放弃4.2和4.3版本。 - syntaxerror
@syntaxerror 实际上,如果你想编译任何东西,经常需要linux-headers。特别是如果你需要编译任何内核模块(比如说,你有一个不在主线内核中的USB设备)。此外,4.4.0版本现在已经在Trusty中可用,而linux-image-generic仍然不依赖它。这是怎么回事?所谓的“始终依赖最新版本”就这样了。 - Auspex