/dev/mapper 下的 lvm 设备丢失

/dev/mapper 下的 lvm 设备丢失

我正在使用 Debian squeeze,并在软件 RAID 1 之上运行 LVM。我只是偶然发现下面的大多数链接/dev/mapper都丢失了,尽管我的系统似乎仍然正常运行。

我不确定发生了什么事。我唯一能想象到的原因是我尝试让 LXC fedora 容器工作失败。我最终删除了/cgroup/laughlin与容器相对应的目录,但我无法想象为什么这会导致问题。 /dev/mapper看起来(我做了一些改变,见下文)大约像

orwell:/dev/mapper# ls -la
total 0
drwxr-xr-x  2 root root     540 Apr 12 05:08 .
drwxr-xr-x 22 root root    4500 Apr 12 05:08 ..
crw-------  1 root root  10, 59 Apr  8 10:32 control
lrwxrwxrwx  1 root root       7 Mar 29 08:28 debian-root -> ../dm-0
lrwxrwxrwx  1 root root       8 Apr 12 03:32 debian-video -> ../dm-23

debian-video 对应于我刚刚创建的 LV。

但是,我的系统上有相当多的 VG,相当于 4 个 VG 分布在 4 个磁盘上。vgs给出

orwell:/dev/mapper# vgs
  VG         #PV #LV #SN Attr   VSize   VFree  
  backup       1   2   0 wz--n- 186.26g  96.26g
  debian       1   7   0 wz--n- 465.76g 151.41g
  olddebian    1  12   0 wz--n- 186.26g  21.26g
  testdebian   1   3   0 wz--n- 111.75g  34.22g

我尝试跑步

 /dev/mapper# vgscan --mknodes

并且创建了一些设备(请参阅下面的输出),但它们不是应有的 dm 设备的符号链接,所以我不确定这是否无用或更糟。它们会妨碍重新创建正确的链接吗?我应该再次删除这些设备吗?

我相信 udev 创建了这些链接,所以重新启动会解决这个问题,还是会得到一个无法启动的系统?我应该怎么做才能解决这个问题?我是否应该运行任何诊断/健全性检查以确保不存在我没有注意到的其他问题?预先感谢您的任何帮助。

orwell:/dev/mapper# ls -la
total 0
drwxr-xr-x  2 root root     540 Apr 12 05:08 .
drwxr-xr-x 22 root root    4500 Apr 12 05:08 ..
brw-rw----  1 root disk 253,  1 Apr 12 05:08 backup-local_src
brw-rw----  1 root disk 253,  2 Apr 12 05:08 backup-video
crw-------  1 root root  10, 59 Apr  8 10:32 control
brw-rw----  1 root disk 253, 15 Apr 12 05:08 debian-boot
brw-rw----  1 root disk 253, 16 Apr 12 05:08 debian-home
brw-rw----  1 root disk 253, 22 Apr 12 05:08 debian-lxc_laughlin
brw-rw----  1 root disk 253, 21 Apr 12 05:08 debian-lxc_squeeze
lrwxrwxrwx  1 root root       7 Mar 29 08:28 debian-root -> ../dm-0
brw-rw----  1 root disk 253, 17 Apr 12 05:08 debian-swap
lrwxrwxrwx  1 root root       8 Apr 12 03:32 debian-video -> ../dm-23
brw-rw----  1 root disk 253, 10 Apr 12 05:08 olddebian-etch_template
brw-rw----  1 root disk 253, 13 Apr 12 05:08 olddebian-fedora
brw-rw----  1 root disk 253,  8 Apr 12 05:08 olddebian-feisty
brw-rw----  1 root disk 253,  9 Apr 12 05:08 olddebian-gutsy
brw-rw----  1 root disk 253,  4 Apr 12 05:08 olddebian-home
brw-rw----  1 root disk 253, 11 Apr 12 05:08 olddebian-lenny
brw-rw----  1 root disk 253,  7 Apr 12 05:08 olddebian-msi
brw-rw----  1 root disk 253,  5 Apr 12 05:08 olddebian-oldchresto
brw-rw----  1 root disk 253,  3 Apr 12 05:08 olddebian-root
brw-rw----  1 root disk 253, 14 Apr 12 05:08 olddebian-suse
brw-rw----  1 root disk 253,  6 Apr 12 05:08 olddebian-vgentoo
brw-rw----  1 root disk 253, 12 Apr 12 05:08 olddebian-wsgi
brw-rw----  1 root disk 253, 20 Apr 12 05:08 testdebian-boot
brw-rw----  1 root disk 253, 18 Apr 12 05:08 testdebian-home
brw-rw----  1 root disk 253, 19 Apr 12 05:08 testdebian-root

答案1

我刚刚遇到了与您所描述的类似的问题,但对我来说,当我尝试将新的 Ubuntu 11.10 Oneiric Ozelot 安装到 LVM 卷时,就发生了这种情况。我已完成以下操作以在实时启动系统上设置 lvm(我需要的逻辑卷已存在):

apt-get install lvm2
vgscan --mknodes -v

现在lvscan -v展示了我的书,但它们既不在/dev/mapper也不在/dev/<vg>/。我终于发现我需要启用卷组,如下所示:

vgchange -a y <name of volume group>

上面的命令为我创建了所有丢失的设备文件。现在我可以启动安装程序,它会找到 lvm 卷并允许我安装到它们。

在谷歌上找到这些信息很困难,所以我写这个答案是希望其他人能更轻松地找到它——因此有深入的背景和命名。

虽然不是问题的一部分,但为了完整起见,我将补充一点,在上述情况(Ubuntu LVM 安装)中,您需要在安装完成后将 lvm2 添加到新安装系统的 initrd 中,否则它将无法启动。您的新系统应该在 /target 中设置,但如果没有,请像这样手动设置:

mount /dev/vg/new_root /target
mount /dev/sdx1 /target/boot       # important
mount -o bind /proc /target/proc
mount -o bind /sys /target/sys
mount -o bind /dev /target/dev
mount -o bind /dev/pts /target/dev/pts

我需要这样做才能使网络在 chroot 中工作,接下来我将介绍这一点:

cp /etc/resolv.conf /target/etc/

现在 chroot 到新系统并安装 lvm2:

chroot /target
apt-get install lvm2

请注意,它运行 update-initramfs。现在只需输入 exit 并重新启动,您的系统就会正确启动。

答案2

现在/dev是在 tmpfs 上,并且是在每次启动时从头开始创建的udev。您可以安全地重新启动,这些链接将会恢复。

您还应该在目录/dev/dm-X中找到指向节点的 LVM 符号链接/dev/<vg>,每个卷组对应一个目录。然而,那些重新创建的节点vgscan --mknodes也将正常工作,假设它们具有正确的主/次编号 - 并且可以安全地假设它们被正确创建。

您可能还可以使用适当的匹配项udev重新创建符号链接,并进行测试,直到正确为止。不过,当重新启动也能解决问题时,这似乎不值得付出努力。udevadm trigger--dry-run

答案3

这对我也有用。

vgchange -a y -name of volume group-

打完内核补丁后,我的 RHEL 系统无法重新启动。抱怨/dev/mapper/VG-lv文件丢失。

启动到单用户并注释掉/etc/fstab.上网后,我发现我的加密磁盘使用pvs.

修复了此问题,但仍然没有卷组的设备文件。运行上述命令重新创建了设备映射器文件并允许我安装。

答案4

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=616689在这里相关。这与超时有关,导致 lvm root 没有及时出现。

相关内容