You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BIOS更新后LVM提示设备文件丢失,如何修复硬件识别问题并更新LV UUID?

BIOS更新后LVM提示设备文件丢失,如何修复硬件识别问题并更新LV UUID?

看起来BIOS更新把LVM的硬件识别数据库给搞乱了,先帮你理清楚问题根源,再一步步彻底解决——你现在的临时 workaround 虽然能用,但还是得把LVM的设备数据库给修正回来,避免后续出问题。

首先先解答你的几个疑惑:

  • 关于dm-0/dm-1的问题:这些是Linux device mapper 生成的映射节点,你的root和swap是LVM逻辑卷(LV),逻辑卷是通过device mapper把物理卷(PV,也就是你的sda3)的存储空间抽象出来的,所以需要dm节点来提供访问入口;而sda3本身是物理分区,是LV的底层存储,自然不需要额外的dm映射~
  • blkid的信息困惑:/dev/sda3显示的UUID是LVM物理卷的PVID,和lsblk里的一致,这个是没问题的;问题出在LVM的设备数据库里记录的磁盘WWID(naa.57c35481cc13b195)和当前磁盘实际的WWID不匹配了——BIOS更新很可能重置了磁盘的硬件识别信息,导致WWID变了,LVM找不到对应的设备。

接下来是彻底修复的步骤:

步骤1:确认当前磁盘的WWID

先看看现在你的sda实际的WWID是什么:

lsblk -o NAME,WWID

或者如果装了sg3_utils包,用更准确的命令:

sg_inq -i /dev/sda

找到sda对应的WWID,对比LVM报错里的旧WWID(naa.57c35481cc13b195),应该已经不一样了。

步骤2:重置并更新LVM设备数据库

你之前重命名system.devices的操作让LVM fallback到用设备名识别,但我们要重新生成正确的设备数据库:

  1. 先备份现有的(如果还没做的话):
    mv /etc/lvm/devices/system.devices /etc/lvm/devices/system.devices.bak
    
  2. 重新扫描并添加当前的物理卷到设备数据库:
    lvmdevices --adddev /dev/sda3
    
    或者更全面的,让LVM重新扫描所有卷组并更新缓存:
    vgscan --cache
    
  3. 验证修复效果:
    执行pvscan,看是否还会弹出设备找不到的报错;再试试之前失败的命令:
    grub2-mkconfig -o /boot/efi/EFI/rocky/grub.cfg
    
    应该能正常执行了。

步骤3:检查LVM配置和BIOS设置

  • 确认/etc/lvm/lvm.conf里的use_devicesfile参数是1(默认值),这样LVM会继续使用设备数据库,避免后续依赖不稳定的设备名。
  • 进BIOS检查磁盘模式(比如AHCI/RAID模式),BIOS更新很可能重置了这个设置,导致磁盘的WWID变化,确保和BIOS更新前的模式一致,防止下次重启再出问题。

为什么临时 workaround 有效?

当你重命名system.devices后,LVM无法读取旧的硬件识别记录,就会按照文档里说的fallback到用设备名(比如/dev/sda3)来识别物理卷,所以系统能正常运行,也能执行grub配置命令。但这种方式不够稳定——如果后续你新增磁盘导致设备名变化(比如sda变成sdb),LVM就会找不到PV了,所以还是建议修复设备数据库。

备注:内容来源于stack exchange,提问作者cogito

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 12:14:35