CentOS 文件系统启动失败的定位与修复
一、常见现象与快速判断
二、进入救援或单用户环境的两种方式
chroot /mnt/sysimage 即可在原系统环境操作。init=/bin/sh 或 systemd.unit=rescue.target,按 Ctrl+X 启动;若已进入紧急模式,可先 mount -o remount,rw / 获取读写权限。三、按场景修复步骤
场景 A:文件系统不一致(ext2/ext3/ext4)
mount | grep "on /"(如 /dev/sda2 或 /dev/mapper/centos-root)。umount /dev/sda2 → fsck -y /dev/sda2(必要时对 /boot 分区也执行)。reboot。场景 B:XFS 文件系统(CentOS 7 常见)
xfs_check /dev/mapper/centos-root(或实际设备)。xfs_repair -n /dev/mapper/centos-root。xfs_repair /dev/mapper/centos-root。xfs_repair -L /dev/mapper/centos-root(会清空日志,可能导致数据丢失)。reboot。场景 C:/etc/fstab 配置错误导致无法挂载
mount / -o remount,rw。blkid,对照 /etc/fstab 的 UUID/设备名/文件系统类型 是否一致。/dev/vda1 等临时方式保证能启动)。reboot。场景 D:VFS 无法挂载根或 initramfs 损坏
chroot /mnt/sysimage 后,查看可用内核:ls /lib/modules。dracut initramfs-<kernel_ver>.img -k /lib/modules/<kernel_ver>/ -vmount /dev/sda1 /boot → cp initramfs-<kernel_ver>.img /boot/initramfs-<kernel_ver>.img。四、修复后的验证与注意事项
mount、df -h、journalctl -b 是否有异常。xfs_repair -L 会清空日志,仅在常规修复失败且可承受数据丢失时作为最后手段。/etc/fstab 曾改动,修复后可再改回 UUID 方式,保持与 blkid 输出一致。