/ dev / mapper下的lvm设备丢失


21

我正在使用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

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

我尝试跑步

 /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

我将是第一个在此声明显而易见的人。立即在该盒子上备份您的重要数据,然后诊断盒子是否被胶管。
rfelsburg

4
你应该尝试/etc/init.d/lvm2 start。它为我带来了成功(但我并不完全适合您)。
Totor 2014年

谢谢@Totor的评论;你刚刚救了我的一天!:-)
瓦伦丁

Answers:


16

这些日子/dev在tmpfs上,由每次引导从头开始创建udev。您可以安全地重新启动,这些链接将恢复。

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

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


感谢您的回答。一个澄清的要求:当您说“那些重新创建的节点也可以正常工作”时,您指的是“ / dev / dm-X节点”,对吗?您在这里“重新创建”是什么意思,又在什么意义上“也可以正常工作”?为什么工作正常?不好意思 我假设所有LVM设备都是根据存储在/etc/lvm/archive?中的信息重新创建的。
Faheem Mitha

我的意思是由创建的节点vgscan --mknodes。它们不是原始的符号链接,而是符号链接将指向的块dev节点。例如,您应该找到/dev/olddebian/root与../dm-3的符号链接,该链接将具有与重新创建的相同的major:minor数字/dev/mapper/olddebian-root
camh 2011年

感谢您的澄清。我检查了您所说的内容是否与/ dev / mapper / debian-video正确,这是我的两个完整的符号链接之一。:-)我刚刚阅读了主要/次要设备编号。感谢您的教育性回答。
Faheem Mitha

38

我只是遇到了与您描述的问题类似的问题,尽管对我来说,它是在我尝试将新的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卷并允许我对其进行安装。

在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

我需要执行此操作以使chroot中的网络工作,接下来我将介绍它:

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

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

chroot /target
apt-get install lvm2

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


+1 LVM非常模糊的功能。为什么在地球上,它在一个救援CD上却被视为“激活”(当然没有任何可见的影响),而在另一张救援CD上却被认为是“激活”?
Van Jone 2013年

谢谢。vgchange在撰写问题以及在搜索中找到问题之后,我结束了阅读并使用了6年多的时间。:-)我忘了我写的。就我而言,问题绝对是LV不活跃。
Faheem Mitha

3

这也为我工作。

vgchange -a y -name of volume group-

内核补丁之后,我的RHEL系统无法重启。投诉丢失的/dev/mapper/VG-lv文件。

引导到单用户并从中注释掉/etc/fstab。联机后,我发现使用加密的磁盘显示为“未知设备” pvs

修复了此问题,但仍没有为“卷”组添加任何设备文件。运行上面的命令重新创建了设备映射器文件,并允许我挂载。


2

升级我的debian后,我遇到了类似的问题。在重新启动过程中,此消息向我显示:

Unable to find LVM Volume. 
/dev/mapper/debian-root does not exist.

我在这里找到解决方案:

cryptsetup luksOpen /dev/sda5 lvmsys
lvm
lvm> vgscan        ## scan for volume groups
lvm> vgchange -a y ## activates the volume groups

而且,在此之后,它很好地重新启动了。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.