AIX5.3不能正常telnet 故障处理
系统5.3

# telnet 10.10.10.1

Connected to 10.10.10.1

Escape character is '^]'.
Could not load program telnetd:
        Dependent module libc.a(shr.o) could not be loaded.
Could not load module libc.a(shr.o).
Connection closed.


什么问题啊?


============================
我把现场查看的过程整理到下面:
问题过程:

昨天到现场看了,机器无报错!!面板无报警!asm里没有近期错误日志!

串口连接无反应!!

现场hmc连接,出现原来一样的报错!

无意中重复试了几次,居然连了进去 ,却发现更多问题!

所有命令,除了cd df lsps等简单命令可以使用 其他均无法使用!
报错信息:依赖的模块libc.a不能载入、没有足够的空间!!


df -g 查看 没有问题

lsps -s 没有问题

errpt   什么也没有

ibm沟通想用lppchk -c 检查有无文件集损坏!机器长时间无反应,无果!!

之后 什么命令均无法操作:报错依赖的模块libc.a不能载入、没有足够的空间!!包括上面的命令!

无奈和ibm工程师联系,建议强制关机重启生成dump文件(从前面板操作),结果前面板没有ibm工程师说的选项
据说hmc 启动的时候有生成dump文件的选项,后确认可能是hmcv7的版本有此选项,而现
场为v6版本,没有到

最后:冒险关闭分区(系统无备份),机器无反应!操作面板代码:a200d200

无奈之下通过asm关闭主机!并重启!!

晕!!

关机顺利

自检完成顺利

激活分区

系统启动 顺利


进入系统 没有问题

查看文件系统、lsps使用情况 均正常。查看errpt ,只有三条,为开关机的一些信息!!

到此,系统正常了!!

但。。。。问题到底出在哪里呢? 还是不明白!!

为对付由于libc.a损坏还查询了一些个恢复的文档!,也贴出来大家参考吧!
=============================================
文章地址:www-900.ibm/cn/suppor ... DocId=2811134C29001

恢复被删除或改名的系统库文件libc.a
文件libc.aAIX系统中重要的核心库文件,如果被意外删除或改名,系统的各种命令都将无
法正常运行。本文介绍了在/usr/lib中的链接或/usr/ccs/lib中文件被意外删除的情况下,如何来恢复libc.a文件;另外还介绍了当libc.a文件被改名后,将其更改回原名的方法。本文档适用AIX版本45 恢复/usr/lib中被删除的符号链接
恢复被删除的系统库文件/usr/ccs/lib/libc.a
恢复被改名的/usr/ccs/lib/libc.a

恢复/usr/lib中被删除的符号链接如果从/usr/lib/libc.a/usr/ccs/lib/libc.a的符号链接已经被删除了,但是系统中还存在打开的shell,显示命令提示符,可执行操作,则下面的步骤可用来恢复该符号链接:
1.给系统环境变量 LIBPATH 赋值,将其指向/usr/ccs/lib目录,即执行:
LIBPATH=/usr/ccs/lib:/usr/lib
export LIBPATH
2.这时你将可以重新执行系统命令。运行下面的命令来重置/usr/lib/libc.a/usr/ccs/lib/libc.a,/lib/usr/lib的链接:
ln -s /usr/ccs/lib/libc.a /usr/lib/libc.a
ln -s /usr/lib /lib
3.重置系统环境变量 LIBPATH,现在,系统命令已经可以象以前一样运行了。
unset LIBPATH
另外,如果当前没有一个可用的shell环境来执行这些命令,请遵循下一节中给出的指令来修复。
--------------------------------------------------------------
恢复被删除的系统库文件/usr/ccs/lib/libc.a
要想恢复一个已经被删除的/usr/ccs/lib/libc.a文件,我们必须从外部引导设备(如光盘、磁带)来启动系统,因为在机器当前的状况下,任何命令都无法运行。
我们需要用系统安装光盘或系统的mksysb备份磁带(该磁带不可以是自动安装模式的)来引导系统,还要注意的是,这里用到的光盘和磁带应该是和当前操作系统统一版本的。另外,如果在引导系统的过程中有任何问题,请参阅系统安装手册启动至维护模式的相关内容来解决。从外设启动机器至维护模式后,访问rootvg但不加载文件系统。接着我们就可以从系统最近的备份磁带中重新得到libc.a文件,详细步骤如下:
1.依次执行下列命令:
mount /dev/hd4 /mnt
mount /dev/hd2 /mnt/usr
cd /mnt
2.如果只是需要修复从/usr/lib/libc.a/usr/ccs/lib/libc.a的符号链接,执行下面的命令然后跳至步骤5
ln -s /usr/ccs/lib/libc.a /mnt/usr/lib/libc.a
3.mksysb磁带放入磁带机并执行下面的操作。下列命令中的‘X’代表该磁带机在系统中的设备顺序号。
首先你需要设置磁带机的block size。在默认情况下,系统维护模式会将block size设为512系统变量path修改了怎么恢复。
a. tctl -f /dev/rmtX rewind

b. tctl -f /dev/rmtX.1 fsf 1

c. restbyname -xvqf /dev/rmtX.Y ./tapeblksz


d. cat tapeblksz

e.如果上一条命令输出的值不等于512,请执行:
/etc/methods /chggen -l rmtX -a block_size=[步骤d中输出的数值]
f. tctl -f /dev/rmtX rewind

g. tctl -f /dev/rmtX.1 fsf 3

4.现在我们可以使用‘restbyname’命令来恢复丢失的文件了。同样的,下面命令中的‘X’代表该磁带机在系统中的设备顺序号。
a. tctl -f /dev/rmtX rewind
b. tctl -f /dev/rmtX.1 fsf 3
c.恢复文件/usr/ccs/lib/libc.a,执行
restbyname -xvqf/dev/rmtX.1 ./usr/ccs/lib/libc.a
d.恢复目录/usr/ccs/lib,执行
restbyname -xvqf/dev/rmtX.1 ./usr/ccs/lib
e.恢复目录/usr/ccs/bin,执行
restbyname -xvqf/dev/rmtX.1 ./usr/ccs/bin
5.将改动同步至磁盘:
cd /mnt/usr/sbin
./sync;./sync;./sync

6.卸载/usr文件系统:
cd /
umount /dev/hd2

如果命令失败,重起系统到正常模式。
7.卸载根(/)文件系统:
umount /dev/hd4
如果命令失败,重起系统到正常模式

8.重起系统到正常模式。对于微通道的机型,要先将钥匙扳到‘Normal’位置,再重新给机器加电。
-----------------------------------------------------------

/usr/ccs/lib/libc.a文件被改名后,如何将其更改回原名
在下面的例子中,我们假设libc.a 被改名为ig
要想将ig更改回原名libc.a,我们仍必须从外部引导设备(如光盘、磁带)来启动系统,因为在机器当前的状况下,任何命令都还是无法运行。
我们还是用和操作系统版本一致安装光盘或系统的mksysb备份磁带(该磁带不可以是自动安装模式的)来引导系统,启动机器至维护模式,然后在不加载文件系统的情况下访问rootvg。接着,依次执行下列命令:
mount /dev/hd4 /mnt
mount /dev/hd2 /mnt/usr
cd /mnt/usr/ccs/lib
mv ig libc.a
cd /mnt/usr/sbin
./sync;./sync;./sync

cd /
unmount /dev/hd2
unmount /dev/hd4
exit

‘exit’命令会退出当前shell环境并自动加载rootvg中的文件系统。
最后,重起系统:
shutdown -Fr

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。