CentOS Kernel Upgrade
Kernel Packages
CentOS/RedHat Linux 與 kernel 升級相關的套件清單
- kernel — Contains the kernel for single-core, multi-core, and multi-processor systems.
- kernel-debug — Contains a kernel with numerous debugging options enabled for kernel diagnosis, at the expense of reduced performance.
- kernel-devel — Contains the kernel headers and makefiles sufficient to build modules against the kernel package.
- kernel-debug-devel — Contains the development version of the kernel with numerous debugging options enabled for kernel diagnosis, at the expense of reduced performance.
- kernel-doc — Documentation files from the kernel source. Various portions of the Linux kernel and the device drivers shipped with it are documented in these files. Installation of this package provides a reference to the options that can be passed to Linux kernel modules at load time.
By default, these files are placed in the /usr/share/doc/kernel-doc-kernel_version/ directory.
- kernel-headers — Includes the C header files that specify the interface between the Linux kernel and user-space libraries and programs. The header files define structures and constants that are needed for building most standard programs.
- linux-firmware — Contains all of the firmware files that are required by various devices to operate.
- perf — This package contains the perf tool, which enables performance monitoring of the Linux kernel.
- kernel-abi-whitelists — Contains information pertaining to the Red Hat Enterprise Linux kernel ABI, including a lists of kernel symbols that are needed by external Linux kernel modules and a yum plug-in to aid enforcement.
- kernel-tools — Contains tools for manipulating the Linux kernel and supporting documentation.
Preparing to upgrade
# Current kernel running
uname -a
# Grub2 Info for syatem booting
awk -F\' '$1=="menuentry " {print $2}' /boot/grub2/grub.cfg
grub2-editenv list
# Current kernel packages installed
rpm -qa | grep kernel
# Or
yum list installed "kernel-*"
Downloading the upgraded kernel
從 RedHat Custom Portal 網站下載新版的 kernel 套件
kernel-3.10.0-1062.el7.x86_64.rpm
。linux-firmware-20190429-72.gitddde598.el7.noarch.rpm
(這是第一項安裝的相依性檔案)
Performing the upgrade
升級 kernel 時,系統會自動使用 Dracut 工具來建立新的 initialRAM file system 開機用映像檔。請確定 Dracut 已經有安裝。
升級 kernel
# 先升級 linux-firmware
# NOTE: 安裝指令不能使用 -ivh
rpm -Uvh linux-firmware-20190429-72.gitddde598.el7.noarch.rpm
# 再升級 kernel
# NOTE: 安裝時不要使用 -Uvh
rpm -ivh kernel-3.10.0-1062.el7.x86_64.rpm
其他指令
安裝新 kernel 後會作為下一次開機的預設選單,設定檔在 /etc/sysconfig/kernel
。
# UPDATEDEFAULT specifies if new-kernel-pkg should make
# new kernels the default
UPDATEDEFAULT=yes
# DEFAULTKERNEL specifies the default kernel package type
DEFAULTKERNEL=kernel
Listing the contents of the initial RAM file system image
# To list the files that are included in the initramfs, run the following command as root:
lsinitrd
# To only list files in the /etc directory, use the following command:
lsinitrd | grep etc/
# To output the contents of a specific file stored in the initramfs for the current kernel, use the -f option:
lsinitrd -f filename
# For example, to output the contents of sysctl.conf, use the following command:
lsinitrd -f /etc/sysctl.conf
# To specify a kernel version, use the --kver option:
lsinitrd --kver kernel_version -f /etc/sysctl.conf
# For example, to list the information about kernel version 3.10.0-327.10.1.el7.x86_64, use the following command:
lsinitrd --kver 3.10.0-327.10.1.el7.x86_64 -f /etc/sysctl.conf
FAQ