CentOS挂载分区表损坏的解决方法
分区表损坏后,需通过救援模式操作以避免系统干扰。使用CentOS安装光盘或U盘启动,进入BIOS设置将启动顺序调整为光盘/USB优先;选择“Troubleshooting”→“Rescue a CentOS system”→“3) Skip to shell”,进入命令行救援环境。
TestDisk是开源分区恢复工具,支持MBR/GPT分区表及ext2/3/4、XFS、NTFS等多种文件系统,操作简便且恢复率高。
sudo yum install testdisk -y(CentOS 7及以下)或sudo dnf install testdisk -y(CentOS 8及以上)。sudo testdisk,选择“Create”创建日志文件;选择目标磁盘(如/dev/sda)并按Enter;选择分区表类型(Intel适用于MBR/GPT,EFI GPT适用于UEFI磁盘);依次选择“Analyse”→“Quick Search”进行快速扫描(若未找到,可选择“Deeper Search”深度扫描)。P键预览分区内的文件(确认文件完整);选中需恢复的分区,按Enter标记为“*”(激活);选择“Write”将新分区表写入磁盘,输入Y确认;退出TestDisk并重启系统。若系统采用LVM(逻辑卷管理),可通过LVM备份恢复逻辑卷:
cat /etc/lvm/backup/centos(默认备份路径),记录物理卷(PV)、卷组(VG)、逻辑卷(LV)的名称及大小。vgcfgrestore -f --test /etc/lvm/backup/centos centos测试备份文件有效性,确认无误后执行vgcfgrestore -f /etc/lvm/backup/centos centos恢复VG配置。vgchange -ay centos激活卷组;挂载逻辑卷(如mount /dev/mapper/centos-root /mnt),若文件系统报错,使用xfs_repair /dev/mapper/centos-root(XFS文件系统)或fsck -y /dev/mapper/centos-root(ext3/4文件系统)修复。若之前备份过分区表,可通过dd命令快速恢复:
dd if=/dev/sda of=/data/dpt.img bs=1 count=64 skip=446(将MBR分区表备份到/data/dpt.img)。dd if=/data/dpt.img of=/dev/sda bs=1 seek=446(将备份的分区表写入磁盘)。分区表恢复后,若仍无法挂载,需修复文件系统错误:
Ctrl+C进入GRUB菜单,编辑启动项(在linux16行末尾添加rd.break),按Ctrl+X启动;执行mount -o remount,rw /sysroot重新挂载根分区为可写;chroot /sysroot切换到系统根环境。fsck -y /dev/sda1(替换为损坏的分区设备名,如/dev/sda2),自动修复文件系统错误;修复完成后执行exit退出chroot,重启系统。rsync或移动硬盘),避免修复过程中数据覆盖。dd命令、parted mklabel等操作会清除磁盘数据,仅在确认数据已备份时使用。