上个星期在实验室工作,将一个库文件 /lib/libpthread.so.0 给mv到其它地方。
一开始并没有意识到严重性。 后来重启系统时出现错误且无法开机了。:
/sbin/init : error while loading shared library : libpthread.so.0
心想,这种状况原来也遇到不少。用livecd 挂载在把这个库补上去应该就没问题了。
没想到的是, 实验室的ubuntu10.10是用wubi安装的。如何把原系统的硬盘挂载上去成了一个问题。
在windows下。 wubi采取的是虚拟空间策略,它用一个文件root.disk指向了ubuntu所需要的空间,在这方面与vmware(虚拟机)有些相似。
而在ubuntu下, 这个文件是可见的(实际上windows的所有文件都是可见的)。那么将非wubi情况下挂载 硬盘操作改为 挂载root.disk文件即可解决问题。
接下来提供具体解决方案:
1 。使用livecd并选择 try ubuntu ** , 进入ubuntu界面。
2. 。找出wubi在windows中所在盘和分块号
sudo fdisk -l
3 。 将这个盘挂载好(假设找到wubi在 /dev/sda5 上)
sudo mkdir aa
sudo mount /dev/sda5 aa
4 . 此时你可以进入aa目录下查看 root.disk在哪( 一般是在 ubuntu/disks/root.disk ) ,并把它挂载上
sudo mkdir /bb
sudo mount -o loop /bb/ubuntu/disks/root.disk /bb
此时 /bb目录 下就是你原来的待修复的ubuntu系统了 , 接下来怎么修复就是你自己的事情了。
我遇到的问题是移除了一个动态库文件 /lib/libpthread.so.0
它实际上是 /lib 下另外一个库文件的symbolic link file
重新为那个库文件生成一次符号链接文件即可解决问题。