一、前期准备:备份与设备检查
在进行任何分区故障排除前,务必备份重要数据(可使用rsync、tar或图形化工具如Deja Dup),避免操作失误导致数据丢失。接着,使用lsblk命令确认目标分区是否被系统识别(如/dev/sda1是否存在),若设备未显示,可能是硬件连接问题(如SATA线松动)或磁盘故障,需重新连接或更换硬件。
二、常见分区故障类型及解决方法
症状:系统无法启动,提示“Invalid partition table”“Missing operating system”或无法识别分区。
解决方法:
fdisk(MBR分区表)或gdisk(GPT分区表)工具修复:
sudo fdisk /dev/sdX(sdX为磁盘标识符,如sda),通过m命令进入主菜单,选择w保存并退出(需重新创建分区表,需提前备份分区信息);sudo gdisk /dev/sdX,输入r进入恢复菜单,选择recovery & transformation options中的“恢复分区表”功能。testdisk工具恢复丢失分区:sudo apt install testdisk(Debian/Ubuntu)或sudo yum install testdisk(RHEL/CentOS),运行后按向导操作,选择“Analyze”扫描磁盘,找到丢失分区后恢复。症状:无法挂载分区,提示“Corrupt filesystem”“Superblock invalid”或“Input/output error”。
解决方法:
sudo umount /dev/sdXN(sdXN为分区标识符,如sda1);fsck命令修复:
sudo fsck -y /dev/sdXN(-y参数自动修复错误);dumpe2fs查找备用超级块(sudo dumpe2fs /dev/sdXN | grep superblock),再用fsck指定备用超级块修复(如sudo fsck -b 32768 /dev/sdXN,备用超级块编号通常为32768、98304等);sudo xfs_repair /dev/sdXN(需卸载分区,若为根分区,需从Live CD启动修复)。症状:手动或自动挂载失败,提示“mount: unknown filesystem type”“wrong fs type”或“device is busy”。
解决方法:
blkid /dev/sdXN查看文件系统类型(如ext4、xfs),若未格式化,需格式化(sudo mkfs.ext4 /dev/sdXN,注意:格式化会清除分区数据);sudo mkdir -p /mnt/mypartition)且为空(若挂载点非空,需清空或更换目录);/etc/fstab配置:检查自动挂载信息是否正确(格式为“设备 UUID 挂载点 文件系统类型 defaults 0 0”),可使用blkid获取分区UUID,修改后运行sudo mount -a测试配置是否正确;sudo mount -t ext4 /dev/sdXN /mnt/mypartition(替换为实际文件系统类型),若成功则问题出在fstab配置。症状:分区显示大小不正确(如小于实际容量)或磁盘空间不足(df -h显示100%使用)。
解决方法:
parted命令(命令行)或GParted工具(图形化):
parted调整:sudo parted /dev/sdX,输入resizepart 分区号 新结束位置(如resizepart 1 100GB);GParted调整:选择分区,拖动边界调整大小,应用更改;sudo resize2fs /dev/sdXN;sudo xfs_growfs /挂载点(如/mnt/data);sudo find /var/log -type f -name '*.log' -mtime +30 -delete(删除30天前的日志);sudo apt clean(Debian/Ubuntu)或sudo yum clean all(RHEL/CentOS);sudo find /path/to/backup -type f -size +100M -name '*.bak' -delete;lvextend扩展逻辑卷,再用resize2fs扩展文件系统。三、后续预防措施
sfdisk备份(sudo sfdisk -d /dev/sdX > partition_table_backup.txt),便于恢复;shutdown或reboot命令;smartctl工具(sudo smartctl -a /dev/sdX)检查磁盘SMART状态,提前预警硬件故障。