问题现象
lvm分区全部无法挂载,且使用mount会报错设备不存在。次问题依靠ChatGPT得以解决。
问题分析
[rootQibms-plat ~] mount -a
mount: /home: special device /dev/mapper/rl-home does not exist
mount: /opt: special device /dev/mapper/rl-opt does not exist
mount: /var: special device /dev/mapper/rl-var does not exist
/dev/mapper/rl-home: Can't open blockdev
/dev/mapper/rl-opt: Can't open blockdev
/dev/mapper/rl-var: Can't open blockdevdoes not exist和Can't open blockdev同时出现,表示系统无法识别和访问这些 LVM 逻辑卷对应的设备节点。原因为系统中的 udev 组件损坏或其依赖库版本不匹配,导致 udevadm 命令无法正常运行,错误信息如下:
udevadm: symbol lookup error: undefined symbol: device_rename, version SD_SHARED由于 udev 无法正常加载,设备管理机制失效,LVM 激活后的逻辑卷未能自动在 /dev/mapper/ 下创建相应的设备节点(如 /dev/mapper/rl-home ),导致挂载失败。
问题修复
手动创建设备节点(临时过渡)
如果你暂时不能修复 udev,但 LVM 的逻辑卷已经激活了,可以先用 dmsetup 或 mknod 手动创建挂载点:
# 查看设备映射
ls -l /dev/mapper/
dmsetup ls如果如 /dev/mapper/rl-home 不存在但 dmsetup 显示了,可以尝试:
dmsetup mknodes这条命令可以强制重新创建设备映射节点(不依赖 udev)。
ls /dev/mapper/rl-home
mount /dev/mapper/rl-home /home挂载好分区之后先备份数据。
重新安装 udev 工具
Rocky 9 系列系统可以用下面方式重装:
dnf reinstall systemd-udev或者离线修复(需准备好 RPM 包):
rpm -Uvh --replacepkgs systemd-udev-*.rpm
注意:不要删除 udev,否则系统可能无法启动。
ChatGPT分析解决过程
https://chatgpt.com/share/686a3f8a-0c78-800d-96cf-3815de4341c6