我的机器有两个相同的磁盘,采用镜像模式,使用(软件)raid,然后使用 lvm。
重新启动时(例如断电后),机器无法识别 lvm 分区并进入 initramfs / busybox shell。
有一次,我手动输入lvm vgchange -ay
后continue
一切正常。我该如何更改或更新我的启动配置以使其自动化?
答案1
我在 16.04 上解决了这个问题。我的设置是从镜像启动,然后 / 是 LVM,其中多个分区位于同一卷组中的单独 lv 内。
我遇到的问题(让我抓狂不已)是,重新启动后它会将我抛到 initramfs shell。
从那里我需要运行 vgchange -ay 和 ctrl-d 然后系统就会启动。
我搜索了网络并发现了一些建议,包括:
bugs.launchpad.net/ubuntu/+source/lvm2/+bug/147216
2) Adding this to /etc/udev/rules.d/85-lvm2.rules solved the problem.
SUBSYSTEM=="block", ACTION=="add|change", ENV{ID_FS_USAGE}="raid", \
RUN+="watershed sh -c '/sbin/lvm vgscan; /sbin/lvm vgchange -a y'"
到:
bugs.debian.org/cgi-bin/bugreport.cgi?bug=616689
但对我来说,解决方案是删除这个家伙的建议
https://bugs.launchpad.net/ubuntu/+source/lvm2/+bug/147216/comments/22
并进行以下更改。
添加/sbin/lvm vgchange -a y
到 /usr/share/initramfs-tools/scripts/local-block/lvm2
(我还将其复制到 /etc/initramfs-tools/scripts/local-block/)
然后我跑了#update-initramfs -u -k `uname -r`
重新启动并最终恢复理智。
答案2
好消息是,这个问题在 16.10 中已经修复。实际上,自从发布问题以来,我并没有重启过(而且伊利诺伊州的电网一直保持运行了那么长时间……)
今天(迟来的)升级到 16.10 后,我也重新阅读了互联网上的一些帖子。有关此问题的长错误报告帖子位于Debian 错误报告 #616689在下面某处包含此建议:
cat /boot/grub/device.map
sudo grub-mkdevicemap
cat /boot/grub/device.map
我认为这很重要。第一个cat
显示了两个条目,对应于我最初两个驱动器的旧设置。其中一个坏了,被替换了(是的,lvm 拯救了一切,让这一切变得简单!)但该条目从未更新。运行grub-mkdevicemap
可能已经修复了它。
无论如何,16.10 不再需要手动重启。