searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

CTyunOS进入紧急模式排查方式

2025-05-26 10:22:32
3
0

当 CTyunOS 系统进入 紧急模式(Emergency Mode) 时,通常是由于关键系统组件(如文件系统、驱动、服务等)无法正常启动导致的。以下是详细的排查和解决方法:


1. 紧急模式常见原因

  • 文件系统损坏/etc/fstab 配置错误或磁盘故障)
  • 关键服务启动失败(如 systemdsshddbus
  • SELinux 策略冲突
  • 硬件故障(如内存、磁盘错误)
  • 内核崩溃或驱动问题
  • / 根分区空间不足
  • GRUB 引导损坏

2. 排查步骤

(1) 查看紧急模式日志

进入紧急模式后,系统通常会显示错误信息。按 Enter 进入 Shell,然后检查日志:

journalctl -xb           # 查看完整启动日志
dmesg | grep -i error    # 检查内核错误
systemctl --failed       # 查看失败的服务

(2) 检查 /etc/fstab 文件

常见问题

  • 挂在点错误(如 UUID 错误)
  • 文件系统损坏(xfs_repair / fsck 修复)
  • 依赖设备未就绪(如 NFS、iSCSI)

修复方法

blkid                  # 查看正确的 UUID
vim /etc/fstab         # 检查并修正错误
mount -a               # 重新mount测试

(3) 检查文件系统

如果 /etc/fstab 没问题,可能是文件系统损坏:

# 检查 ext4 文件系统
fsck -y /dev/sdXN      # 替换为实际分区(如 /dev/sda1)

# 检查 XFS 文件系统
xfs_repair /dev/sdXN

注意

  • 如果 / 根分区损坏,需用 光盘 启动修复。
  • 如果 fsck 提示 “filesystem is mounted”,必须umount后修复(紧急模式可能已自动umount)。

(4) 检查磁盘空间

df -h                 # 查看磁盘使用情况
du -sh /var/log/*     # 检查大日志文件

如果 / 根分区满,删除大文件:

rm -rf /var/log/*.log.*   # 删除旧日志
journalctl --vacuum-size=100M  # 清理 journal 日志

(5) 检查 SELinux

如果 SELinux 导致问题,可以临时禁用:

setenforce 0          # 临时关闭 SELinux
vim /etc/selinux/config  # 永久设置 SELINUX=permissive

(6) 检查关键服务

systemctl list-units --state=failed  # 查看失败服务
systemctl restart sshd dbus systemd  # 尝试重启关键服务

(7) 检查内核和驱动

如果内核崩溃或驱动问题:

uname -r              # 查看当前内核
yum list kernel       # 查看可用内核
yum reinstall kernel  # 重装内核

(8) 检查 GRUB 引导

如果 GRUB 损坏,可以修复:

grub2-mkconfig -o /boot/grub2/grub.cfg  # 重新生成 GRUB 配置
grub2-install /dev/sdX                   # 修复引导(X 为磁盘,如 sda)

3. 常见错误及修复

错误 1:/dev/disk/by-uuid/XXXX does not exist

原因/etc/fstab 中的 UUID 错误或磁盘未识别。
修复

blkid                  # 查看正确 UUID
vim /etc/fstab         # 修正 UUID
mount -a               # 测试mount

错误 2:Dependency failed for /sysroot

原因initramfs 损坏或根分区无法挂在。
修复

dracut --force         # 重建 initramfs
reboot

错误 3:Failed to start Login Service

原因systemd-logind 服务崩溃。
修复

systemctl restart systemd-logind

4. 终极解决方案

如果以上方法无效,可以尝试:

  1. 使用 光盘 启动,mount原系统分区并修复。
  2. 恢复备份(如果有)。
  3. 重装系统(最后手段)。

5. 总结

问题类型 排查命令 修复方法
文件系统错误 fsck /dev/sdXN 修复文件系统或修正 /etc/fstab
磁盘空间不足 df -h 清理大文件或扩容磁盘
服务启动失败 systemctl --failed 重启服务或重装软件包
SELinux 问题 setenforce 0 临时禁用或调整策略
GRUB 引导损坏 grub2-install /dev/sdX 修复 GRUB

如果仍然无法解决,请提供 journalctl -xb 完整日志 进一步分析!

0条评论
0 / 1000
胡建忠
22文章数
1粉丝数
胡建忠
22 文章 | 1 粉丝
原创

CTyunOS进入紧急模式排查方式

2025-05-26 10:22:32
3
0

当 CTyunOS 系统进入 紧急模式(Emergency Mode) 时,通常是由于关键系统组件(如文件系统、驱动、服务等)无法正常启动导致的。以下是详细的排查和解决方法:


1. 紧急模式常见原因

  • 文件系统损坏/etc/fstab 配置错误或磁盘故障)
  • 关键服务启动失败(如 systemdsshddbus
  • SELinux 策略冲突
  • 硬件故障(如内存、磁盘错误)
  • 内核崩溃或驱动问题
  • / 根分区空间不足
  • GRUB 引导损坏

2. 排查步骤

(1) 查看紧急模式日志

进入紧急模式后,系统通常会显示错误信息。按 Enter 进入 Shell,然后检查日志:

journalctl -xb           # 查看完整启动日志
dmesg | grep -i error    # 检查内核错误
systemctl --failed       # 查看失败的服务

(2) 检查 /etc/fstab 文件

常见问题

  • 挂在点错误(如 UUID 错误)
  • 文件系统损坏(xfs_repair / fsck 修复)
  • 依赖设备未就绪(如 NFS、iSCSI)

修复方法

blkid                  # 查看正确的 UUID
vim /etc/fstab         # 检查并修正错误
mount -a               # 重新mount测试

(3) 检查文件系统

如果 /etc/fstab 没问题,可能是文件系统损坏:

# 检查 ext4 文件系统
fsck -y /dev/sdXN      # 替换为实际分区(如 /dev/sda1)

# 检查 XFS 文件系统
xfs_repair /dev/sdXN

注意

  • 如果 / 根分区损坏,需用 光盘 启动修复。
  • 如果 fsck 提示 “filesystem is mounted”,必须umount后修复(紧急模式可能已自动umount)。

(4) 检查磁盘空间

df -h                 # 查看磁盘使用情况
du -sh /var/log/*     # 检查大日志文件

如果 / 根分区满,删除大文件:

rm -rf /var/log/*.log.*   # 删除旧日志
journalctl --vacuum-size=100M  # 清理 journal 日志

(5) 检查 SELinux

如果 SELinux 导致问题,可以临时禁用:

setenforce 0          # 临时关闭 SELinux
vim /etc/selinux/config  # 永久设置 SELINUX=permissive

(6) 检查关键服务

systemctl list-units --state=failed  # 查看失败服务
systemctl restart sshd dbus systemd  # 尝试重启关键服务

(7) 检查内核和驱动

如果内核崩溃或驱动问题:

uname -r              # 查看当前内核
yum list kernel       # 查看可用内核
yum reinstall kernel  # 重装内核

(8) 检查 GRUB 引导

如果 GRUB 损坏,可以修复:

grub2-mkconfig -o /boot/grub2/grub.cfg  # 重新生成 GRUB 配置
grub2-install /dev/sdX                   # 修复引导(X 为磁盘,如 sda)

3. 常见错误及修复

错误 1:/dev/disk/by-uuid/XXXX does not exist

原因/etc/fstab 中的 UUID 错误或磁盘未识别。
修复

blkid                  # 查看正确 UUID
vim /etc/fstab         # 修正 UUID
mount -a               # 测试mount

错误 2:Dependency failed for /sysroot

原因initramfs 损坏或根分区无法挂在。
修复

dracut --force         # 重建 initramfs
reboot

错误 3:Failed to start Login Service

原因systemd-logind 服务崩溃。
修复

systemctl restart systemd-logind

4. 终极解决方案

如果以上方法无效,可以尝试:

  1. 使用 光盘 启动,mount原系统分区并修复。
  2. 恢复备份(如果有)。
  3. 重装系统(最后手段)。

5. 总结

问题类型 排查命令 修复方法
文件系统错误 fsck /dev/sdXN 修复文件系统或修正 /etc/fstab
磁盘空间不足 df -h 清理大文件或扩容磁盘
服务启动失败 systemctl --failed 重启服务或重装软件包
SELinux 问题 setenforce 0 临时禁用或调整策略
GRUB 引导损坏 grub2-install /dev/sdX 修复 GRUB

如果仍然无法解决,请提供 journalctl -xb 完整日志 进一步分析!

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0