答案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
答案3
重新生成initramfs
更新/etc/fstab
和/etc/crypttab
文件后,您需要使用 dracut 更新 initramfs 映像。
您可以通过运行以下命令从 dracut 紧急 shell 更新 dracut 映像
# dracut --hostonly --regenerate-all --force