逻辑卷引起的Linux启动失败
如图所示:
这台Linux在启动的时候失败。
通过反馈信息可以知道,由于找不到/dev/sddlmaa,于是逻辑卷/dev/vgdata/lvdata的启动失败。
导致文件系统检查(File system check)失败。
以下为/var/log/messages中记录的信息片段:
Mar 15 10:28:36 sdms01 kernel: end_request: I/O error, dev sda, sector 2823815568
Mar 15 10:28:36 sdms01 kernel: Buffer I/O error on device dm-2, logical block 352976898
Mar 15 10:28:36 sdms01 kernel: lost page write due to I/O error on dm-2
Mar 15 10:28:36 sdms01 .dlmmgr_exe: KAPL08019-E The path (0x000A0000) detected an error (0x00000000). (0x00000000)
Mar 15 10:28:36 sdms01 .dlmmgr_exe: KAPL08022-E A path error occurred. ErrorCode = 00000000, PathID = 0, PathName = 0001.0000.0000000000000000.0000, DNum = 0, HDevName = sddlmaa
Mar 15 10:28:36 sdms01 .dlmmgr_exe: KAPL08026-E An error occurred on all the paths of the LU. PathID = 0
Mar 15 10:29:04 sdms01 kernel: end_request: I/O error, dev sda, sector 2982275680
Mar 15 10:29:04 sdms01 kernel: Buffer I/O error on device dm-2, logical block 372784412
Mar 15 10:29:04 sdms01 kernel: lost page write due to I/O error on dm-2
Mar 15 10:29:04 sdms01 kernel: Buffer I/O error on device dm-2, logical block 372784413
Mar 15 10:29:04 sdms01 kernel: lost page write due to I/O error on dm-2
Mar 15 10:29:09 sdms01 kernel: Aborting journal on device dm-2.
Mar 15 10:29:09 sdms01 kernel: end_request: I/O error, dev sda, sector 12744
Mar 15 10:29:09 sdms01 kernel: Buffer I/O error on device dm-2, logical block 1545
Mar 15 10:29:09 sdms01 kernel: lost page write due to I/O error on dm-2
Mar 15 10:30:10 sdms01 kernel: ext3_abort called.
Mar 15 10:30:10 sdms01 kernel: EXT3-fs error (device dm-2): ext3_journal_start_sb: Detected aborted journal
Mar 15 10:30:10 sdms01 kernel: Remounting filesystem read-only
最后,该Linux的根系统(/)被切为了只读模式。
————
其实/dev/sddlmaa为远端存储挂接到本地系统的一块磁盘。
导致上面错误的原因是存储那边打算回收磁盘的时候,在系统中仅仅做了“umount /data”的命令。
而没有清掉LVM中依赖于/dev/sddlmaa的卷组vgdata,以及逻辑卷lvdata的信息,并且没有修改/etc/fstab文件,注释掉无用的关于“/data”目录的挂载点信息。
导致Linux开机的时候,读取/etc/fstab文件加载文件系统的时候发现需要挂载到/data目录上的逻辑卷/dev/vgdata/lvdata所依赖的底层存储/dev/sddlmaa并不存在,因此抛出了错误:文件系统检查失败,根分区不得不重新以Read-only的方式挂载。
只读方式挂载根分区又导致了后续的多个服务的启动失败。
————
为了修复这个系统,需要以安装介质(安装光盘的ISO)进入救援模式下操作。
首先,插入光盘介质:
Type:linux rescue。
如上图所示,用救援模式进入Linux后,硬盘上的Linux的根分区实际上是在“/mnt/sysimage”中的。
修改文件“/mnt/sysimage/etc/fstab”即原系统的:/etc/fstab。
将有关“/dev/vgdata/lvdata”的部分注释掉,则加载文件系统的过程中将不会对逻辑卷lvdata做出设定,就避开了前面没有删除掉依赖磁盘的逻辑卷就清掉了磁盘而留下的漏洞。
接下来“reboot”,系统便会正常启动了。
需要注意的是,下次清理磁盘的时候需要连带的清掉依赖它们的逻辑卷组和逻辑卷。
——
To be continue.