分区故障是CentOS系统中常见的问题,可能导致系统无法启动、数据无法访问或磁盘空间异常。以下是系统化的排查与解决步骤,覆盖从初步检查到深度修复的全流程:
首先明确故障的具体表现(如无法启动、挂载失败、磁盘空间显示异常),并通过以下命令收集关键信息:
journalctl -n 100
(查看最近100条日志)或检查/var/log/messages
、/var/log/syslog
,定位与分区相关的错误(如“filesystem corruption”“I/O error”)。dmesg | grep -i error
可过滤出内核层的分区或磁盘错误(如“ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0”)。使用以下命令确认分区表类型及磁盘健康状况:
fdisk -l
(适用于MBR分区表)或parted -l
(支持GPT分区表),核对分区数量、大小、文件系统类型(如ext4、xfs)是否与预期一致。smartmontools
(yum install smartmontools
),运行smartctl -a /dev/sdX
(sdX
为磁盘设备,如sda),查看“SMART overall-health self-assessment test result”(若为“FAILED”,说明磁盘存在物理坏道)。若分区表正常但文件系统损坏,需使用对应工具修复(务必先备份数据):
fsck -y /dev/sdXn
(sdXn
为分区,如sda1),-y
参数自动回答“yes”以修复所有错误。xfs_repair -v /dev/sdXn
(若分区为LVM逻辑卷,需先卸载,如umount /dev/mapper/centos-root
)。df -h
检查文件系统是否正常挂载。/etc/fstab
文件定义了开机自动挂载的分区,配置错误会导致系统无法启动:
rw init=/bin/bash
,按“Ctrl+X”启动到单用户模式。mount -o remount,rw /
。vi /etc/fstab
,检查每行的设备名(或UUID)、挂载点、文件系统类型是否正确。若某分区无法挂载,可暂时注释掉该行(添加“#”),保存后重启系统。若系统无法正常启动,需通过以下方式进入修复环境:
/mnt/sysimage
,可通过chroot /mnt/sysimage
切换到原系统环境,再执行修复命令(如fsck
、修改fstab
)。fstab
问题。分区故障可能由硬件问题引起,需通过以下命令排查:
smartctl -a /dev/sdX
,关注“Reallocated_Sector_Ct”(重分配扇区数)、“Pending_Sector”(待修复扇区数),若数值大于0,说明磁盘存在坏道。dd if=/dev/zero of=/dev/sdX bs=1M count=100
(sdX
为磁盘设备,如sdb)写入100MB零数据,再用hexdump
查看写入是否正常(需替换为实际分区,避免误操作)。rsync
、tar
或专业备份工具(如Veeam)备份重要数据,避免分区故障导致数据丢失。smartd
(SMART守护进程)定期检查磁盘状态,设置邮件报警(需配置smartd.conf
)。yum update
,修复已知的文件系统或分区bug。通过以上步骤,可系统排查并解决CentOS中的分区故障。若问题复杂(如LVM配置损坏、GRUB引导失败),建议参考CentOS官方文档或寻求专业人士帮助。