免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 15196 | 回复: 5
打印 上一主题 下一主题

linux不能启动,提示lib//libc.so.6 error,file is too short [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-05-31 15:34 |只看该作者 |倒序浏览
今天我在用linux系统时,碰到一个难题,向你请教一下,linux系统在启动时,
大概是在运行initab的东西的时候吧,提示“/lib//libc.so.6 error,file is too short”,然后运行了:企图kill libc.so.6,然后就不响应了。
  我于是重新启动了计算机,进行了text界面,输入linux single,系统继续运行,但
仍然提示“/lib//libc.so.6 error,file is too short”,然后运行了:企图kill libc.so.6,然后就不响应了。
  我又试着输入linux rescue,也是运行在该处就停住了;
  我曾经做了张启动盘,用之启动到boot:提示时,输入linux rescue时,竟然不让
这个命令,真是没有办法,:_(,如果打回车的话,启动时也会转到硬盘的设置启动,
仍然在该处错误,不知有没有办法,运行软盘的内核,出现#符,然后mount上硬盘,把
那该死的libc.so.6 文件删除掉?在这里向你请教了!
  唉,这是我无知所造成的,在原来的turbo linux机器上不是没有iptraf软件,我
就拷了个RPM包,解压时提示,缺少“/lib//libc.so.6“文件,我没想后果,从另
一台redhat9 拷了个此文件,还没copy完了,turbo linux机器就不能通过网络访问
了,我想出问题了,果然就起不来了,:_(

论坛徽章:
0
2 [报告]
发表于 2004-06-01 15:19 |只看该作者

linux不能启动,提示lib//libc.so.6 error,file is too short

大家有什么办法没有啊?

论坛徽章:
0
3 [报告]
发表于 2004-06-01 20:49 |只看该作者

linux不能启动,提示lib//libc.so.6 error,file is too short

尝试找个相同的版本拷贝过去吧。

论坛徽章:
0
4 [报告]
发表于 2004-06-02 16:22 |只看该作者

linux不能启动,提示lib//libc.so.6 error,file is too short

谢谢啦!
我终于找到了类似的方案文章,现摘录如下,一起分享:
Linux共享链接库错误解决一例

发布日期:2002-06-04
文摘内容:
--------------------------------------------------------------------------------
作者:四川省成都市体育学院 刘纪恩

不久前,笔者一位在银行工作的网管朋友给笔者打电话,说他的一台安装有数据库的Linux服务器无法启动,这台Linux服务器存储着银行非常重要的数据,请帮助解决。他告诉笔者这台Linux服务器(安装的是Red Hat 5.1,内核为2.0.34)一直运行得很好,不巧UPS出了问题,电源断电,再启动服务器,当启动到init,出现如下错误提示:
INIT:2.74 version booting
can’t find libc.so.6


然后就无法启动系统了。

投石问路

Linux下的共享链接库主要放在/lib目录下,以lib*.so.*为典型的文件名。Linux下的共享链接库对于Linux非常重要,几乎所有的程序都要调用共享链接库,类似于Windows下的*.dll文件。

笔者先进入单用户模式,在“LILO:”提示符下输入:Linux single,结果同样提示libc.so.6文件找不到!看来Linux调用共享链接库是在读取/etc/inittab文件之前。在这里笔者简单地介绍一下Linux的启动过程: Linux的启动首先要引导内核,然后进行设备检测,紧接着调用一个称为init的进程,该进程按照一定的规则,读取/etc/inittab文件的内容并且执行文件中的相关进程,指引系统进入某一特定的运行规则进程,也就是大家众所周知的6种模式:0为待机,1为单用户,2为多用户本机模式,3为多用户网络模式,4为系统保留,5为XWindows,6为重启。init进程首先调用共享链接库,由于共享链接库发生错误, 所以现在单用户模式也进不去,看来只有用启动盘和修复盘进入Linux的急救模式去试一试。于是笔者在另一台机器的DOS下,利用Linux光盘dosutils目录下的rawrite.exe程序制作了一张启动盘和一张修复盘,笔者先用启动盘引导系统,在“LILO: ”提示符下输入:rescue,直至系统提示笔者插入修复盘,进入急救模式。由于处于急救模式状况下,许多常用的命令不能用,而且由于只是将软盘中的内核映射到内存中,连根分区也没有挂上,而/lib目录正是在根分区上。笔者先挂上了根分区: mount -ext2 /dev/hda1 /mnt/hda1,进入/lib目录用ls命令查看,libc.so.6存在,于是怀疑是否是超级块或者节点出了问题,于是便用fsck命令(在急救模式状况下常规的ext2文件系统的检查命令e2fsck不可用):fsck -b 8193 /dev/hda1,然后退出重启,结果故障依旧,反复用fsck命令检查也无法解决。

柳暗花明

反复了几次之后笔者耐下性子,又到/lib目录下去仔细看了一下libc.so.6: ls -l libc.so.6,注意到:

lrwxrwxrwx 1 root root 13 Mar 10 03:32 libc.so.6 ->; libc-2.?.7.so

原来libc.so.6文件只是libc-2.?.7.so文件的一个链接,看来此前笔者大意了。指向的链接名有一个“?”号,问题可能就出在这儿,init进程运行首先要调用libc-2.?.7.so所指向链接文件libc.so.6,init进程真正调用的是libc-2.?.7.so,而libc-2.?.7.so文件肯定是不存在的,那么到底应该是那个文件呢?再用ls查看,lib目录下有一个libc-2.0.7.so文件,这个文件才是真正指向libc.so.6的文件。笔者执行“rm -f libc.so.6, ln -s libc-2.0.7.so libc.so.6”,重新做了指向libc.so.6的正确链接,然后退出重启,结果故障仍然存在。

水落石出

可笔者总觉得判断是对的,又到lib目录下去仔细看了一下libc.so.6这个文件:ls -l libc.so.6,结果如下所示:

lrwxrwxrwx 1 root root 13 Mar 10 03:32 libc.so.6 ->; libc-2.?.7.so

看来刚才笔者所做的操作并没有写进磁盘,于是笔者又重新做了刚才的操作。可这一次笔者老老实实地“umount /dev/hda1”,然后退出重启,系统又重新正常启动了,再到lib目录下去看了一下libc.so.6这个文件:ls -l libc.so.6,结果如下:

lrwxrwxrwx 1 root root 13 Mar 10 03:32 libc.so.6 ->; libc-2.0.7.so

这回所做的修改写进了磁盘。看来问题归根结底是出在libc.so.6文件的链接问题上,问题总算解决了!

后 记

为什么非要做umount?在正常模式下没做umount,所做的操作也能写进磁盘的。笔者查了一下资料才明白: Linux文件系统更新是一个复杂的过程,当用户程序对文件系统进行修改以后,例如进行了写操作,文件数据将修改记录在内核缓冲中,在数据没有写到磁盘的时候,依然能够执行用户进程,所有数据的改变都在inode的内容中得到反映。磁盘的数据更新实际上是异步进行的,很有可能在写操作已经完成很长时间以后才真正对磁盘的数据进行更新。sync命令强制将磁盘缓冲的所有数据写入磁盘,如果在没有将磁盘缓冲区的信息写入磁盘之前终止系统,则磁盘的文件系统就会处在一个不稳定的状态。而在正常模式下即使没有对分区进行umount的操作,在重启之前系统会调用sync命令强制将磁盘缓冲的所有数据写入磁盘,而在急救模式下必须对所挂的分区进行umount的操作,系统才会调用sync命令强制将磁盘缓冲的所有数据写入磁盘,请在急救模式下的朋友注意这个问题。其实“reboot -n(Don’t sync before reboot or halt)”在重启之前不用sync命令强制将磁盘缓冲的所有数据写入磁盘,就很能说明问题。

论坛徽章:
0
5 [报告]
发表于 2004-06-02 19:32 |只看该作者

linux不能启动,提示lib//libc.so.6 error,file is too short

呵呵,也曾看过这篇文章。

论坛徽章:
208
巨蟹座
日期:2013-09-02 09:16:36卯兔
日期:2013-09-02 20:53:59酉鸡
日期:2013-09-05 21:21:45戌狗
日期:2013-10-15 20:51:17寅虎
日期:2013-10-18 21:13:16白羊座
日期:2013-10-23 21:15:19午马
日期:2013-10-25 21:22:48技术图书徽章
日期:2013-11-01 09:11:32双鱼座
日期:2013-11-01 20:29:44丑牛
日期:2013-11-01 20:40:00卯兔
日期:2013-11-11 09:21:32酉鸡
日期:2013-12-04 19:56:39
6 [报告]
发表于 2004-06-02 20:09 |只看该作者

linux不能启动,提示lib//libc.so.6 error,file is too short

c运行库被破坏,rescue应该可以的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP