/dev/mapper 下的 lvm 设备丢失

Fah*_*tha 27 software-raid debian lvm

我正在使用 Debian 挤压,并在​​软件 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
Run Code Online (Sandbox Code Playgroud)

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

但是,我的系统上有相当多的 VG,对应于分布在 4 个磁盘上的 4 个 VG。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
Run Code Online (Sandbox Code Playgroud)

我试过跑步

 /dev/mapper# vgscan --mknodes
Run Code Online (Sandbox Code Playgroud)

并且创建了一些设备(请参阅下面的输出),但它们不是应有的 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
Run Code Online (Sandbox Code Playgroud)

Lau*_*low 47

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

apt-get install lvm2
vgscan --mknodes -v
Run Code Online (Sandbox Code Playgroud)

现在lvscan -v表明我卷,但他们都不在/dev/mapper,也不在/dev/<vg>/。我终于发现我需要激活卷组,像这样:

vgchange -a y <name of volume group>
Run Code Online (Sandbox Code Playgroud)

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

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

尽管不是问题的一部分,但为了完整起见,我将在上述情况下(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
Run Code Online (Sandbox Code Playgroud)

我需要这样做才能使 chroot 中的网络工作,接下来我将谈到:

cp /etc/resolv.conf /target/etc/
Run Code Online (Sandbox Code Playgroud)

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

chroot /target
apt-get install lvm2
Run Code Online (Sandbox Code Playgroud)

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


cam*_*amh 19

这些天/dev是在 tmpfs 上,并且每次启动都由udev. 您可以安全地重新启动,这些链接将返回。

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

您可能还可以udev使用udevadm trigger适当的匹配重新创建符号链接,并进行测试--dry-run直到正确为止。尽管重新启动也会修复它,但似乎不值得付出努力。


小智 7

这也对我有用。

vgchange -a y -name of volume group-
Run Code Online (Sandbox Code Playgroud)

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

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

修复了这个问题,但仍然没有卷组的设备文件。运行上面的命令重新创建了设备映射器文件并允许我挂载。