每当我尝试启动我的 CentOS 服务器时,它都会以紧急模式启动,并在使用命令挂载分区后:
$ mount -t ext4 --source /dev/sda4 --target /sysroot
服务器启动正常。
我如何永久安装/dev/sda4
它/sysroot
以便不需要一次又一次地安装它?
答案1
Sysroot 在启动过程的早期就被挂载了,所以这个消息往往表明你的 initrd 出现了问题。
这里概述了一个可能的解决方案,它可能对您有用,也可能没用:https://access.redhat.com/solutions/4008331(需要登录)。基本上,它涉及从 initrd 中删除 /usr/sbin 中的挂载程序,然后在紧急模式下重建 initrd,同时将挂载放入 /usr/bin。
rm -f /usr/sbin/mount
dracut -v --install /usr/bin/mount -f /boot/initramfs-<release_version_of_kernel>.el7.x86_64.img <release_version_of_kernel>
然而,也可能存在导致类似症状的其他问题。
我遇到了同样的症状,但始终无法进入紧急模式 shell。在 systemd 调试模式下运行时,我看到一系列错误消息“kmem_realloc 中可能存在内存分配死锁大小 XXXX(模式:06002c0)”。虽然我还没有完全解决这个问题,但乍一看这看起来像是 XFS 文件系统损坏。
在这种特殊情况下,系统没有任何有价值的数据,并且重建是完全自动化的,所以我可能只是重新格式化并重新开始。
答案2
添加要在启动时挂载的文件系统的最佳方法是 /etc/fstab。
有关更多信息,请参阅此链接:fstab(5)
/dev/sda4 /sysroot ext4 默认值 0 2