温馨提示×

如何修复CentOS分卷

小樊
42
2026-08-19 12:50:24
栏目: 智能运维

在CentOS中,“分卷”通常指LVM(逻辑卷管理)的卷组(VG)、逻辑卷(LV)或物理卷(PV)出现问题,也可能是磁盘分区表损坏导致无法识别分卷。以下按常见场景提供修复方法,操作前请务必备份重要数据!

一、先明确问题:分卷无法识别/激活/挂载?

先通过工具确认当前存储状态,定位问题根源:

# 1. 查看物理卷(PV)状态
pvscan   # 扫描所有PV
pvdisplay  # 详细显示PV信息(是否有损坏、丢失)

# 2. 查看卷组(VG)状态
vgscan   # 扫描所有VG
vgdisplay  # 详细显示VG信息(是否有"missing PV"、激活状态)

# 3. 查看逻辑卷(LV)状态
lvscan   # 扫描所有LV
lvdisplay  # 详细显示LV信息(是否有"inactive"、错误)

# 4. 查看磁盘分区表
fdisk -l  # 列出所有磁盘及分区(确认分区是否存在)
parted -l  # 更直观的分区表检查(支持GPT)

二、常见分卷问题及修复方法

场景1:物理卷(PV)丢失/损坏(如磁盘离线、分区表损坏)

现象vgdisplay 显示 PV missingpvscan 找不到某个PV。

修复步骤

  1. 检查磁盘是否正常连接
    若为物理机,确认磁盘硬件无故障;若为虚拟机,检查磁盘是否挂载。
    lsblk 确认磁盘是否被系统识别(如 /dev/sdb 是否存在)。

  2. 修复分区表(若分区丢失)
    若磁盘存在但分区(/dev/sdb1)消失,可能是分区表损坏:

    • testdisk 恢复分区表(需安装 testdiskyum install testdisk -y):
      testdisk /dev/sdb  # 选择磁盘,按提示扫描并恢复分区表
      
    • 若分区表是GPT,也可用 gdisk 修复:
      gdisk /dev/sdb  # 输入 `r` 进入恢复模式,按提示修复
      
  3. 重新创建PV(若分区恢复后PV仍无法识别)
    若分区已恢复(/dev/sdb1 存在),但 pvscan 无显示,需重新初始化PV:

    pvcreate /dev/sdb1  # 注意:会清除该分区的LVM元数据,仅在确认数据可恢复时操作!
    
  4. 将恢复的PV重新加入卷组
    若VG之前因PV丢失而降级,需重新将PV加入VG:

    vgextend 卷组名 /dev/sdb1  # 例如:vgextend centos /dev/sdb1
    

场景2:卷组(VG)无法激活(如系统启动时VG未激活)

现象vgdisplay 显示VG状态为 inactive,或LV无法挂载。

修复步骤

  1. 手动激活卷组

    vgchange -ay 卷组名  # 激活指定VG(如:vgchange -ay centos)
    # 或激活所有VG:vgchange -ay
    
  2. 检查VG元数据是否损坏
    若激活失败,可能是VG元数据损坏,尝试修复:

    vgcfgrestore -f /etc/lvm/backup/卷组名 卷组名  # 从备份恢复VG元数据(LVM默认备份到/etc/lvm/backup/)
    

    若没有备份,可尝试用 vgck 检查VG一致性:

    vgck 卷组名  # 检查VG元数据,若有错误会提示
    

场景3:逻辑卷(LV)无法挂载(如文件系统损坏)

现象:LV存在但挂载时提示错误(如 mount: wrong fs typesuperblock error)。

修复步骤

  1. 确认LV是否激活

    lvscan  # 若LV显示 "inactive",先激活:lvchange -ay /dev/卷组名/逻辑卷名
    
  2. 检查并修复文件系统
    根据LV的文件系统类型(如ext4、xfs)选择工具:

    • ext4/xfs文件系统
      # 先卸载LV(若已挂载)
      umount /dev/卷组名/逻辑卷名  # 例如:umount /dev/centos/root
      
      # 修复ext4:用fsck
      fsck -y /dev/卷组名/逻辑卷名  # -y 自动确认修复
      
      # 修复xfs:用xfs_repair(注意:xfs不支持离线修复,需先确保LV未挂载)
      xfs_repair /dev/卷组名/逻辑卷名
      
    • 若superblock损坏
      可尝试用备份superblock修复(ext4为例):
      # 查找备份superblock位置
      dumpe2fs /dev/卷组名/逻辑卷名 | grep -i "superblock"
      # 用备份superblock修复
      fsck -b 备份superblock位置 /dev/卷组名/逻辑卷名
      

场景4:LVM元数据损坏(如/etc/lvm/目录丢失)

现象pvscan/vgscan/lvscan 均无输出,LVM完全无法识别。

修复步骤

  1. 从LVM备份恢复元数据
    LVM默认将元数据备份到 /etc/lvm/backup//etc/lvm/archive/,若这些文件存在:

    # 恢复PV元数据
    pvcreate --uuid "PV的UUID" --restorefile /etc/lvm/backup/卷组名 /dev/sdb1
    # 恢复VG元数据
    vgcfgrestore -f /etc/lvm/backup/卷组名 卷组名
    # 恢复LV(自动随VG恢复)
    
  2. 若备份丢失,尝试手动重建LVM
    若无法恢复元数据,需手动重建PV/VG/LV(数据会丢失,仅应急用):

    pvcreate /dev/sdb1
    vgcreate 新卷组名 /dev/sdb1
    lvcreate -L 10G -n 新逻辑卷名 新卷组名
    mkfs.ext4 /dev/新卷组名/新逻辑卷名  # 重新格式化文件系统
    

三、系统启动时LVM无法挂载的紧急修复

若CentOS启动时卡在 dracut 界面,提示LVM相关错误(如 could not find volume group),需进入救援模式修复:

  1. 进入救援模式
    用CentOS安装盘/ISO启动,选择 TroubleshootingRescue a CentOS system → 按提示挂载系统到 /mnt/sysimage

  2. 在救援模式中修复LVM

    chroot /mnt/sysimage  # 切换到原系统环境
    vgchange -ay  # 激活所有VG
    # 若VG激活失败,按上述场景1/2修复PV/VG
    exit  # 退出chroot
    reboot  # 重启
    

四、预防措施

  1. 定期备份LVM元数据
    vgcfgbackup 卷组名  # 手动备份VG元数据到/etc/lvm/backup/
    
  2. 避免强制断电:防止LVM元数据或文件系统损坏。
  3. 监控磁盘健康:用 smartctl(需安装 smartmontools)检查磁盘是否有坏道。

注意事项

  • 修复前务必备份数据,尤其是涉及 pvcreatemkfs 等破坏性操作时。
  • 若不确定操作风险,建议先咨询专业人员,避免数据丢失。

如果问题仍未解决,可提供具体错误信息(如 pvscan/vgdisplay 的输出),以便进一步定位!

0