我正在使用 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 没有及时出现。