CentOS 7 中系统启动进入 Dracut 模式

CentOS 7 中系统启动进入 Dracut 模式

最近尝试启动我的服务器,但出现以下错误。似乎 initramfs 无法生成,我尝试启动到救援模式,发现 fstab 文件为空。更新了文件,但没有运气。我已附上图像,因为我无法复制这些行。

CentOS7 中的 DRACUT 模式

答案1

欢迎来到 Unix&Linux StackExchange!

错误来自initramfs,主要问题显然是由

 dracut-initqueue[217]: Warning: /dev/disk/by-uuid/fea3e633-5380-4b23-86e0-8dd8442b4404 does not exist

换句话说,使用 initramfs 中可用的存储驱动程序,无法找到该 UUID 指定的根文件系统。

GRUB 引导菜单是否包含较旧的内核版本?如果是这样,如果您尝试使用较旧的内核启动会发生什么?

如果使用较旧的内核启动不起作用,您可能需要使用 CentOS 安装介质将系统启动到救援模式,或使用其他实时 Linux 介质启动系统以进行调查。如果该blkid命令在任何磁盘上都找不到错误消息中列出的 UUID,则可能有以下几种原因:

  • 缺少司机?一些现代服务器使用“BIOS RAID”,需要硬件供应商提供特定的驱动程序。您可能需要采取额外的步骤才能在救援/LiveOS 环境中加载此驱动程序。该错误可能是由于更新服务器上的内核但未能安装供应商相应的驱动程序更新而导致的。

  • GRUB/initramfs 配置错误?根文件系统可以使用内核引导参数来指定,编辑 GRUB 配置时的错误可能会导致它引用错误的文件系统。您需要确定根文件系统的正确 UUID 并更正配置。修复实际的 GRUB 配置文件/boot/grub/grub.cfg还是/boot/efi/EFI/centos/grub.cfg不够的;您还需要修复安装内核更新时自动 GRUB 重新配置过程中使用的文件。该文件应该是/etc/default/grub.

  • 根文件系统损坏或被覆盖?你说你尝试以救援模式启动但发现/etc/fstab空了 - 你到底是怎么做到的?如果那是 Dracut Emergency Shell,那么它在 initramfs 环境中运行,并且很可能有一个空/etc/fstab文件。

但是,如果您实际上从单独的介质启动并成功安装了应该包含根文件系统的设备,并发现了一个空/etc/fstab文件,则表明该文件系统可能发生了非常糟糕的情况。在这种情况下,我希望你有良好的备份。

答案2

当我不得不删除 LV 时,我遇到了这个问题/dev/mapper/swap

一旦我删除它,重新启动就会导致 dracut 出现问题

解决方案是编辑2个文件,

vim /boot/efi/EFI/centos/grub.cfg 
vim /etc/default/grub

删除任何对交换的引用,

rd.vlm.lv=centos/swap (从两个文件中删除整个字符串+重新启动)

在此输入图像描述

答案3

重新生成initramfs

更新/etc/fstab/etc/crypttab文件后,您需要使用 dracut 更新 initramfs 映像。

您可以通过运行以下命令从 dracut 紧急 shell 更新 dracut 映像

# dracut --hostonly --regenerate-all --force
参考

相关内容