Linux启动报/lib/libblkid.so.1:no version information available解决办法

今天领导让我给ESXI上的机器装个lscpu,因为centos6.0貌似默认都有,所以只需要安装5.x版本即可。百度了下,得到如下安装方法:

# uname-r    先确定内核

# wgethttps://www.kernel.org/pub/linux/utils/util-linux/v2.18/util-linux-ng-2.18.tar.gz    下载对应内核的版本。

# tarxzvf util-linux-ng-2.18.tar.gz

# cd util-linux-ng-2.18

# ./configure

# make

# makeinstall

装好后能够成功使用lscpu命令,安装过程中系统也没报任何异常。所以一下子就装了6台。结果这时候开发把其中一台重启了。然后过了一会跑过来说这服务器咋还没启动成功,让我看看啥原因。然后就发现系统显示如下信息:


8435e5dde71190ef6caecae8cd1b9d16fdfa60ab

fsck:/lib64/libblkid.so.1:no version information available(required by fsck)

fsck:relocaton error:fsck:symbol blkid_evaluate_tag,version BLKID_2.15 not defined in file libblkid.so.1 with link time reference

 

*** An error occurred during the file system check

*** Dropping you to a shell; the system will reboot

*** when you leave the shell, Give root password for maintenance。

这感觉倍爽,经GOOGLE(百度是个渣),从这个地址找到答案

http://forums.gentoo.org/viewtopic-t-808255.html


解决办法如下:

在当前窗口输入root密码,然后使用sudo mount -o rw,remount /命令重新挂载根分区,要不然后面执行修改和删除操作会提示是只读没法操作。


然后使用nm -C -D $(locate libblkid.so.1)|head -n 5命令查看哪一个的返回结果有0000000000000000 A BLKID_2.15这种的就是正确的文件。当然locate libblkid.so.1的结果主要是寻找/lib和/lib64目录下的libblkid.so*相关文件。你也可以使用nm -C -D /lib/libblkid.so.1.0|head -n 5这种方法查找。


找到后,将其它文件后面加上.bak,如libblkid.so.1.0.bak这种,然后删除链接文件,最后将正确的文件如/lib/libblkid.so.1.1.0文件进行链接到/lib和/lib64目录。即ln -sv /lib/libblkid.so.1.1.0 /lib64/libblkid.so.1。


最后使用ldconfig -v |grep libblkid和fsck命令查看是否还有报错的文件,如果有,则使用上面的命令加以修改。



如果ldconfig -v |grep libblkid和fsck命令都没提示错误的话,可以使用下面的命令确认下。

# nm -C -D $(locate libblkid.so.1)|head -n 5

/lib/libblkid.so.1:

0000000000000000 A BLKID_1.0

0000000000000000 A BLKID_2.15

0000000000000000 A BLKID_2.17



你可能感兴趣的:(百度,服务器,version,available,required)