如何在RHEL/CentOS 7/8中修复" Pvs显示未知设备"
删除列出为未知设备的物理卷。
pvs在redhat中显示未知设备。
pvs找不到带有uuid的设备。
未知的linux设备映射器。
筛选器未找到或者拒绝用于PV的设备。
过滤器redhat找不到或者拒绝用于PV的设备。
linux pvremove未知。
找不到带有uuid的设备。
无法找到用于物理卷的设备。
vgreduce-选择vgreduce未知。
pvscan-缓存。
如何在Linux中恢复损坏的LVM
在本文中,我将分享从物理卷之一变为未知设备的情况中恢复的步骤。
在设置加密的LUKS分区并扩展逻辑卷时,我发现了此错误。
实验室环境(CentOS/RHEL 7/8):
我正在使用RHEL 8,但相同的步骤将在类似的OS变体上起作用,例如centOS 8,RHEL/CentOS 7,SuSE等。
错误:" pvs显示未知设备"和" pvs无法找到具有uuid的设备"
下面是错误情况。
pvs显示未知设备,而pvs无法找到具有uuid的物理卷之一。
[root@centos-8 ~]# pvs Couldn't find device with uuid Lu7cAF-CUBP-eQ2q-ZR2T-TfJ6-FnzT-EIhheJ. PV VG Fmt Attr PSize PFree /dev/sda2 rhel lvm2 a-- <14.50g 0 [unknown] rhel lvm2 a-m <8.00g <8.00g
我将/dev/sdb1
作为物理卷,但是由于某些原因,现在pvs显示/dev/sdb1
的未知设备。
它还会引发错误,因为" pvs无法使用uuid查找设备"
pvscan记录了系统上可用的PV,并激活了完整的VG中的LV,但无法激活未知设备。
[root@centos-8 ~]# pvscan --cache Couldn't find device with uuid Lu7cAF-CUBP-eQ2q-ZR2T-TfJ6-FnzT-EIhheJ. pvscan[1733] PV /dev/sda2 online.
" vgreduce"命令也无法删除"/dev/sdb1"(现在显示为未知设备),因为它也与" pvs无法使用uuid查找设备"相同。
[root@centos-8 ~]# vgreduce rhel /dev/sdb1 Couldn't find device with uuid pWc1vE-NQS7-4UbM-2n0D-gVvH-uNc2-dlZftM. Cannot change VG rhel while PVs are missing. Consider vgreduce --removemissing. Cannot process volume group rhel Failed to find physical volume "/dev/sdb1".
类似地,pvremove
命令失败,因为它抱怨pvs无法找到带有uuid的设备
[root@centos-8 ~]# pvremove /dev/sdb1 Couldn't find device with uuid Lu7cAF-CUBP-eQ2q-ZR2T-TfJ6-FnzT-EIhheJ. No PV found on device /dev/sdb1.
解决方法
要修复该错误,pvs显示未知设备,而pvs无法使用uuid查找设备,请使用--removemissing
指令执行vgreduce。
从手册页:
如果未在其上分配LV,则从VG中删除所有丢失的PV。
这将恢复VG的正常运行(可能会再次创建,更改新的LV等)。
如果由于LV正在引用缺少的PV而无法执行此操作,则可以将此选项与--force结合使用,以使该命令删除所有部分LV。
[root@centos-8 ~]# vgreduce rhel --removemissing Couldn't find device with uuid pWc1vE-NQS7-4UbM-2n0D-gVvH-uNc2-dlZftM. Wrote out consistent volume group rhel.
现在,我们看不到缺少物理卷UUID的任何错误
[root@centos-8 ~]# vgs VG #PV #LV #SN Attr VSize VFree rhel 1 2 0 wz--n- <14.50g 0
pvs命令不再显示任何未知设备。
[root@centos-8 ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 rhel lvm2 a-- <14.50g 0
恢复丢失的物理卷
如果物理卷基础磁盘未损坏,则仍有可能恢复PV。
我们可以使用" pvcreate"命令重新创建物理卷。
[root@centos-8 ~]# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created.
接下来,使用vgextend扩展卷组,或者我们可以根据需要使用新的物理卷使用vgcreate来创建新的卷组。
[root@centos-8 ~]# vgextend rhel /dev/sdb1 Volume group "rhel" successfully extended
验证vgs
输出
[root@centos-8 ~]# vgs VG #PV #LV #SN Attr VSize VFree rhel 2 2 0 wz--n- 22.49g <8.00g