1.先来看故障现场:
客户XX一台IBM P550(8204-E8A)小型机CPU、内存扩容完成后,重启主机登陆到系统,发现存储(IBM DS5020)上有部分文件系统无法挂载(此处是应用厂商提供的自动挂载脚本,客户平时启应用都是用这个脚本挂载的,排除脚本问题),报错如下:
# ./mountprd.sh
prdvg是建立在存储映射过来的卷之上,在扩容过程中没有对存储做过任何操作。prdvg能够正常varyonvg和varyoffvg。
尝试手动挂载也挂载不上,机器重启后再试还是不行,报同样的错。
Replaying log for /dev/lvdb2.
mount: 0506-324 Cannot mount /dev/lvdb2 on /db2:The media is not formatted or the format is not correct.
0506-342 The superblock on /dev/lvdb2 isdirty. Run a full fsck to fix.
根据报错信息初步判定是文件系统损坏,需要运行fsck命令修复。分析导致文件系统损坏的原因可能是因为中途有非法关机造成的。
解决过程:
在尝试了重启机器和手动挂载、强制挂载都无果的情况下,最终还是选择使用fsck命令冒险一试,完成修复。过程如下:
# fsck -p /dev/lvdb2The current volume is: /dev/lvdb2
Primary superblock is valid.
*** Phase 1 - Initial inode scan
*** Phase 2 - Process remaining directories
*** Phase 3 - Process remaining files
*** Phase 4 - Check and repair inode allocation map
*** Phase 5 - Check and repair block allocation map
Block allocation map is corrupt (FIXED)
Superblock marked dirty because repairs are aboutto be written.
File system is clean.
Superblock is marked dirty (FIXED)
All observed inconsistencies have been repaired.
# mount /db2
# cd /db2
# ls
PRD archlog db2prd lost+found
成功挂载,也能正常访问文件系统中的数据。另一个文件系统也使用同样的方法修复。
# fsck /dev/lvsapmntThe current volume is: /dev/lvsapmnt
Primary superblock is valid