{"msg":"操作成功","code":200,"data":{"createBy":"admin","createTime":"2026-02-05 10:05:30","updateBy":"admin","updateTime":"2026-02-15 16:07:47","remark":null,"id":124,"articleTitle":"Linux：LVM分区损坏修复","articleUrl":"lvm_restore","articleThumbnail":"https://www.asumimoe.com/imgfiles/20220908/ee03af4419724d50a127c34d6a588554.png","articleFlag":"0","draftStatus":"1","reprintStatement":"1","articleSummary":"记录生产环境中的一次LVM分区损坏无法识别后的修复过程","articleContent":"记一次生产环境中LVM损坏处置过程。\n\n在一次生产环境的服务器重启过程中，一台服务器在重启时无法正常启动。此服务器为一台虚拟机，在虚拟机管理平台登录发现已进入紧急模式，无法正常进入系统。只能进入单用户模式下查看问题。执行`df -h`命令时发现本该挂载在/data目录的lvm逻辑卷识别不到了，导致服务器无法正常启动。该lvm使用的磁盘为一块单独的磁盘。系统中为sdb。\n\n无奈只得暂时将`/etc/fstab`文件中的这一行挂载配置先注释，再将服务器启动，使服务器可以进入正常模式下操作。\n\n1. 执行`blkid`命令与`lsblk`命令对比发现系统并未正常识别到`/dev/sdb`磁盘。输出结果中不包含该磁盘。\n\n   ```bash\n   /dev/sda2: UUID=\"skOS6f-ZfXO-m5aQ-rAK3-BohK-0RoQ-0zQFFD\" TYPE=\"LVM2_member\"\n   /dev/block/8:2: UUID=\"skOS6f-ZfXO-m5aQ-rAK3-BohK-0RoQ-0zQFFD\" TYPE=\"LVM2_member\"\n   /dev/block/253:0: UUID=\"8e3d6b8c-d715-4906-b157-5562a89fd16f\" TYPE=\"xfs\"\n   /dev/block/8:1: UUID=\"9006bbff-4e4e-43f2-bd72-ad2e6fd35be8\" TYPE=\"xfs\"\n   /dev/block/253:1: UUID=\"36cfab69-ec43-4cbb-bae9-9c79b166667b\" TYPE=\"swap\"\n   \n   NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT\n   fd0 2:0 1 4K 0 disk\n   sda           8:0    0   30G  0 disk\n   ├─sda1        8:1    0    1G  0 part /boot\n   └─sda2        8:2    0   29G  0 part\n     ├─cl-root 253:0    0   27G  0 lvm  /\n     └─cl-swap 253:1    0    2G  0 lvm  [SWAP]\n   sdb \t\t8:16 \t0 \t300G 0 disk\n   └─sdb1 \t\t8:17 \t0 \t300G 0 part\n   sr0 \t\t11:0 \t1 \t1024M 0 rom\n   ```\n\n2. 尝试恢复pv\n\n   查看lvm备份文件中的信息\n\n   ```bash\n   cat /etc/lvm/backup/mysqldata | grep -A 5 \"physical_volumes\"\n   physical_volumes {\n       pv0 {\n           id = \"EFj7RO-GRrr-gOmh-i7Wz-DLcu-Hrje-8IcD7X\"\n           device = \"/dev/sdb1\" # Hint only\n           status = [\"ALLOCATABLE\"]\n           flags = []\n   ```\n\n   根据上面输出结果中的id来重建pv。\n\n   ```bash\n   pvcreate /dev/sdb1 --uuid EFj7RO-GRrr-gOmh-i7Wz-DLcu-Hrje-8IcD7X --restorefile /etc/lvm/backup/mysqldata\n   ```\n\n3. 恢复vg\n\n   ```bash\n   vgcfgrestore mysqldata\n   ```\n\n4. 激活vg\n\n   ```bash\n   vgchange -ay mysqldata\n   ```\n\n5. 重新挂载目录并将`/etc/fstab`文件中注释取消\n\n   ```bash\n   mount /dev/mapper/mysqldata-mysql /data\n   ```\n\n   ","categoryId":1,"viewCount":42,"categoryName":"Linux","author":"球接子","authorAvatar":null,"tagIds":[20],"tagNames":["Linux进阶"]}}