linux误删除分区造成lvm元数据丢失,其pvs\vgs\lvs等命令均无输出

背景

某客户使用fdisk命令进行分区,后误操作删除分区,使其lvm元数据丢失,其pvs\vgs\lvs等命令均无输出。

 

解决办法

一、恢复数据

如果LVM元数据丢失了,可以尝试通过LVM的备份和恢复工具来恢复。LVM会自动备份元数据,这些备份存储在 /etc/lvm/backup 和 /etc/lvm/archive 目录中。

步骤1:检查备份文件

首先,查看备份文件是否存在:


ls /etc/lvm/backup
ls /etc/lvm/archive

你应该能看到卷组名称对应的文件。这些文件包含LVM配置和元数据的备份信息。

步骤2:恢复元数据

可以使用 vgcfgrestore 命令恢复卷组的元数据。假设你的卷组名称为 my_vg,可以使用以下命令恢复:


vgcfgrestore my_vg

这将从默认的备份文件中恢复元数据。如果你需要使用特定的备份文件,可以指定其路径:


vgcfgrestore -f /etc/lvm/archive/my_vg_00000.vg my_vg

步骤3:重扫描物理卷和卷组

恢复元数据后,重新扫描物理卷和卷组:


pvscan
vgscan

步骤4:激活卷组

激活卷组以使其可用:


vgchange -ay my_vg

步骤5:检查逻辑卷和文件系统

此时,你应该能够看到并访问原来的逻辑卷。使用 lvdisplay 命令查看逻辑卷的信息:


lvdisplay

然后,检查文件系统:


fsck /dev/my_vg/my_lv

示例:

以下是一个综合的示例流程:


# 列出备份文件
ls /etc/lvm/backup
ls /etc/lvm/archive

# 从默认备份文件中恢复元数据
vgcfgrestore my_vg

# 或者从特定备份文件中恢复
vgcfgrestore -f /etc/lvm/archive/my_vg_00000.vg my_vg

# 重扫描物理卷和卷组
pvscan
vgscan

# 激活卷组
vgchange -ay my_vg

# 查看逻辑卷信息
lvdisplay

# 检查文件系统(假设逻辑卷名为my_lv)
fsck /dev/my_vg/my_lv

注意事项

  1. 备份现有配置:在执行任何恢复操作之前,建议先备份当前的LVM配置,即使它可能已经损坏,以防万一:

    
    vgcfgbackup
  2. 数据重要性:如果恢复元数据失败,且磁盘上有非常重要的数据,请考虑寻求专业的数据恢复服务。

  3. 小心操作:对LVM元数据的操作需格外谨慎。误操作可能导致数据的永久丢失。

通过这些步骤,你应该能够有效地恢复LVM元数据并恢复系统的正常运行。如果问题仍未解决或出现新的错误,请提供详细信息以便进一步诊断。

 

二、虚拟化原有硬盘扩容

在操作系统内部扩展分区和文件系统

Linux

  1. 扫描新的磁盘大小
    使用如下命令重新扫描磁盘大小:

    
    echo 1 > /sys/class/block/sdX/device/rescan
  2. 查看新的磁盘大小
    确认磁盘的新的大小已经被系统识别。

    
    fdisk -l
  3. 调整分区
    使用 fdisk 或 parted 调整分区以使用新增的磁盘空间。以下是使用 fdisk 的一个示例:

    
    fdisk /dev/sdX

    在交互式提示中删除并重新创建分区(确保类型与之前一致)。

  4. 调整LVM
    如果你的分区是LVM物理卷的一部分,你需要扩展物理卷、卷组和逻辑卷。

    
    pvresize /dev/sdX1
    vgextend my_vg /dev/sdX1
    lvextend -l +100%FREE /dev/my_vg/my_lv
  5. 扩展文件系统
    最后扩展文件系统以使用新的空间。根据你使用的文件系统,可以使用不同的命令。

    • Ext4:
      
      resize2fs /dev/my_vg/my_lv
    • XFS:
      
      xfs_growfs /dev/my_vg/my_lv
posted @ 2024-06-30 17:06  小明123_123  阅读(374)  评论(0)    收藏  举报