如何处理SUSE11虚拟机中手动创建逻辑卷并在fstab中设置成自动挂载后无法启动

发布时间:  2015-01-26 浏览次数:  579 下载次数:  3
问题描述
某计算云环境中,客户反馈多台SUSE11虚拟机重启后无法通过网络连接,通过VNC登录发现这些SUSE11虚拟机都进入了维护模式,在进入维护模式前的打印日志中有如图1所示错误信息。
图1 错误信息

处理过程
(1) 已经重启进入维护模式的虚拟机,在维护模式中执行如下命令后重启即可。
chkconfig boot.lvm on
(2) 已经创建了逻辑卷且在fstab中设置为开机自动挂载但尚未重启的虚拟机中直接执行如下命令即可。
chkconfig boot.lvm on
根因
(1) 查看/etc/fstab文件,发现其中有指定检查并挂载/dev/vg00/lv00设备的操作(如图2所示),而在维护模式中检查发现不存在/dev/vg00/lv00设备(如图3所示)。因此该问题是由于虚拟机启动时未识别到/dev/vg00/lv00设备,导致启动过程中按照fstab中的设置检查挂载此设备时操作失败,最终导致启动失败,系统自动进入维护模式。
图2 维护模式1

图3 维护模式2

(2) 查看history,发现lv00设备是由客户手动创建并写入到fstab文件中的,系统原有的系统盘和逻辑盘都未使用逻辑卷的方式。
在修复模式中执行如下命令,手动激活卷之后能够生成/dev/vg00/lv00设备,说明用户的卷已经创建成功且未被破坏,只是虚拟机启动时无法自动激活。
modprobe dm_mod
vgchange -a y
(3) 查看SUSE11虚拟机的开机服务,发现一个boot.lvm服务是用来激活所有逻辑卷的,网上查阅资料确认在SUSE11系统中使用逻辑卷需要设置boot.lvm服务为开机启动状态。该服务启动时会执行“vgchange -a y”激活所有卷,只有激活后的逻辑卷才能在/etc/fstab中自动挂载。
检查问题虚拟机,发现未将boot.lvm服务设置为开机自启动。在问题虚拟机的修复模式中执行如下命令后重启,虚拟机可正常进入系统。
chkconfig boot.lvm on
因此本案例中SUSE11虚拟机无法启动是由于用户在fstab中设置了开机自动检查并挂载逻辑卷,但没有将boot.lvm服务设置成开机自启动,导致系统启动时无法自动激活逻辑卷,最终导致系统启动失败。
建议与总结
SUSE11虚拟机中要在fstab中自动挂载逻辑卷需要boot.lvm服务支持,其它Linux系统
遇到此类问题也可参考此案例解决。

END