随笔 - 81  文章 - 0  评论 - 1  阅读 - 15万

Linux 系统无法正常启动——pvs显示unknown device

一 、问题现象

操作系统无法正常启动,可以正常正常查看df -h。发现有一块/dev/sapvg/lv_oracle没有正常加载

查看pvs,vgs,lvs

发现pvs中有一个pvs设备显示unknown device  sapvg

二、unknown的device查找

1、pvs查看

[root@test ~]# pvs

PV VG Fmt Attr PSize PFree
/dev/sda2 system lvm2 a-- 49.51g 17.51g
/dev/sdb1 databackup lvm2 a-- 100.00g 0
/dev/sdc1 sapvg lvm2 a-- 300.00g 0
/dev/sdd1 sapvg lvm2 a-- 50.00g 0
/dev/sde1 databackup lvm2 a-- 100.00g 8.00m
unknown device  sapvg lvm2 a-- 100.00g 12.00m

2、pvdispaly,

查找到丢失的device是/dev/sdf1

二、恢复方案

1、恢复原理

Linux的LVM会默认存储用户对PV/VG/LV的每一步操作,并自动把当前的VG的信息备份到一个文件里面,位置是/etc/lvm/backup/VG名字

这个文件里面记录的东西大概跟vgdisplay/pvdisplay/lvdisplay输出的信息一致,里面也包括了对于恢复VG信息至关重要的PVUUID。

这个文件记录的信息大概就相当于整个VG的元数据,这个文件非常重要,我们就是通过这个文件来恢复整个VG的信息的。(VG卷组centos里面包含的2个PV信息,pv的id device;找到这些信息下面就是通过这些信息来进行恢复;)

2、/etc/lvm/backup/sapvg查看

(1)找到sdf1的uuid:

pv2 {
id = "cMvZI3-WW3f-dbwQ-X9V9-BY5O-ofeR-0qoiDG"
device = "/dev/sdf1" # Hint only

status = ["ALLOCATABLE"]
flags = []
dev_size = 209713152 # 99.999 Gigabytes
pe_start = 2048
pe_count = 25599 # 99.9961 Gigabytes
}

(2)移除/dev/sdf1设备

[root@test~]# vgreduce --removemissing /dev/sdf1

如果提示not found,略过即可,本来也找不到。

(3)查看pvs,没有/dev/sdf1设备了

[root@test~]# pvs

PV VG Fmt Attr PSize PFree 
/dev/sda2 system lvm2 a-- 49.51g 17.51g
/dev/sdb1 databackup lvm2 a-- 100.00g 0 
/dev/sdc1 sapvg lvm2 a-- 300.00g 0 
/dev/sdd1 sapvg lvm2 a-- 50.00g 0 
/dev/sde1 databackup lvm2 a-- 100.00g 8.00m
#If a logical volume contains a physical volume that fails, you cannot use that logical volume. To remove missing physical volumes from a volume group, you can use the --removemissing parameter of the vgreduce command, if there are no logical volumes that are allocated on the missing physical volumes. 
#来自:Red_Hat_Enterprise_Linux-7-Logical_Volume_Manager_Administration-en-US 4.3.7小节。

3、恢复unknown的pv盘

((1)根据/dev/sdf1的UUID号,利用备份文件,重新创建pv

[root@test]# pvcreate /dev/sdf1  -u cMvZI3-WW3f-dbwQ-X9V9-BY5O-ofeR-0qoiDG --restorefile /etc/lvm/backup/sapvg

(2)恢复vg信息

[root@test]# vgcfgrestore sapvg// 恢复sapvg的vg信息

[root@test]# vgs && pvs && lvs

(3)激活一下VG卷或reboot系统即可

[root@test]#vgchange -ay sapvg
或:
[root@test]#reboot
posted on   幽夜卡尔  阅读(1636)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示