手册:片段/安装/内核/Dist-Kernel
distribution 内核
Distribution 内核是涵盖了解包、配置、编译和安装内核完整过程的 ebuild。这种方法的主要优点是,内核可以作为 @world 的一部分通过包管理器升级到新版本。只需要运行 emerge 命令即可。Distribution 内核默认支持大多数硬件,但是有两种定制的机制:savedconfig 和 config snippets。查看项目页面获取更多配置细节。
安装正确的 installkernel 软件包
在使用 distribution 内核前, 请验证系统已经安装正确的 installkernel 软件包 。当使用 systemd-boot(以前是 gummiboot)作为 bootloader,请安装:
root #
emerge --ask sys-kernel/installkernel-systemd-boot
当使用传统的 /boot 布局(例如 GRUB、LILO 等。), 应该已经默认安装了 gentoo 变量。如果有疑问:
root #
emerge --ask sys-kernel/installkernel-gentoo
安装 distribution 内核
如果用 Gentoo 补丁从源码构建一个内核 ,输入:
root #
emerge --ask sys-kernel/gentoo-kernel
想要避免编译本地内核源代码的系统管理员可以使用预编译的内核镜像:
root #
emerge --ask sys-kernel/gentoo-kernel-bin
更新和清理
内核安装后,包管理器将自动更新到新版本。包管理器清理旧的软件包之前,将保留以前的版本。如果要回收磁盘空间,可以定期运行 emerge 加 --depclean
选项清理过时的软件包:
root #
emerge --depclean
或者,专门清理旧版本的内核:
root #
emerge --prune sys-kernel/gentoo-kernel sys-kernel/gentoo-kernel-bin
安装后/更新任务
Distribution 内核是一种能由其他软件包重新构建安装的内核模块。linux-mod.eclass 提供了 dist-kernel
USE 标记来控制 virtual/dist-kernel 子槽的依赖。
在像 sys-fs/zfs 和 sys-fs/zfs-kmod 这样的软件包上启用 USE 标记后,将允许它们自动根据最新更新的内核重新编译,如果合适的话,还会相应地重新生成 initramfs!
手动重建 initramfs
需要的话, 可以手动重建 initramfs,内核更新后,执行:
root #
emerge --ask @module-rebuild
如果任何内核模块(例如 ZFS)需要提前启动,需要之后通过下面命令重建 initramfs:
root #
emerge --config sys-kernel/gentoo-kernel
root #
emerge --config sys-kernel/gentoo-kernel-bin