www. On IT Road .com

检查确认

上述命令完成后,救援内核的两个新文件应如下所示:

# ll | grep rescue
-rw-------. 1 root root 72164785 Jan 4 00:18 initramfs-0-rescue-a0eaa652c599455aa125077a4167f435.img    <<----Jan 4
-rwxr-xr-x. 1 root root 5925632 Jan 4 00:18 vmlinuz-0-rescue-a0eaa652c599455aa125077a4167f435           <<----Jan 4
如何在 CentOS/RHEL 7 中使用当前内核为 Rescue Kernel 重新生成 initramfs 和 vmlinuz

我们想在 CentOS/RHEL 7 系统中为 Rescue Kernel 重新生成 initramfs 和 vmlinuz。
如何使用启动系统的当前内核来完成此操作?

在启动过程中,当内核镜像和 initramfs 镜像被加载时,initramfs 启动系统上的第一个进程,该进程是 systemd,进程 ID 为 1.
这个 systemd 进程进一步接管系统启动的最后阶段的控制并执行以下操作:

  • 从 /etc/systemd/ 目录读取配置文件
  • 读取由 /etc/systemd/system/default.target 链接的文件
  • 执行 /etc/rc.local 文件

按照以下步骤从当前内核为 Rescue Kernel 重新生成 initramfs 和 vmlinuz。

  1. 查看救援内核的现有文件:
# cd /boot
# ll | grep rescue
-rw-------. 1 root root 72166662 Apr 6 21:37 initramfs-0-rescue-a0eaa652c599455aa125077a4167f435.img    <<----Apr 6
-rwxr-xr-x. 1 root root 5925632 Apr 6 21:37 vmlinuz-0-rescue-a0eaa652c599455aa125077a4167f435           <<----Apr 6
  1. 将现有文件移动到不同的目录(例如“/tmp”):
# mv initramfs-0-rescue-a0eaa652c599455aa125077a4167f435.img  /tmp/initramfs-0-rescue-a0eaa652c599455aa125077a4167f435.img.bk
# mv vmlinuz-0-rescue-a0eaa652c599455aa125077a4167f435  /tmp/vmlinuz-0-rescue-a0eaa652c599455aa125077a4167f435.bk

验证 /boot 目录中是否不存在用于救援内核的文件:

# ll | grep rescue
#
  1. 使用当前内核为救援内核重新生成新的 initramfs 和 vmlinuz。
# /etc/kernel/postinst.d/51-dracut-rescue-postinst.sh  $(uname -r) /boot/vmlinuz-$(uname -r)
日期:2020-09-17 00:13:46 来源:oir作者:oir