Linux|系统管理|WEB开发

关注Linux,系统管理,WEB开发以及开源世界

起死回生

| Comments

一台服务器,上面跑的还是Fedora Core 2,算是很久远的操作系统了,现在连更新都找不到更新源了,于是打算升级,一开始是打算升级到Fedora 10的,但是作为服务器,我对Fedora还是持怀疑态度,于是决定上CentOS 5.2,首先下载了所需要的ISO镜像文件。

因为服务器不在身边,没法通过正常的方式安装,于是我想通过远程,直接升级RPM的方式看看能不能搞定,至少我以前这么干过,只是版本跨度没有这么大。

首先升级了yum相关的RPM包,没有问题。接着把新的kernel安装了,当然没有重启,接着升级最重要的glibc库包,就是这一个步骤出问题了,强制安装后,执行任何命令都会出现 FATAL: kernel too old 的错误信息。 除了bash内置的命令不会报错,lvm.static这个静态可执行文件也不会报错,其他都不行了。
SSH也无法登录了。幸好我升级之前带开了VNC服务服务,目前还能通过VNC登录到系统上。
到目前为止,能够正常运行的服务有VNC,Apache,MySQL。其中Apache对DocumentRoot目录有完全操作权限。对MySQL的管理能通过phpMyAdmin来操作,也有管理员帐号。
于是想出了下面的一个办法来恢复原来的系统:

  1. 利用MySQL的select into outfile 特征,导出一个php文件,用来做为文件上传工具
  2. 找一个相似版本的系统,静态编译busybox程序,上传到服务器
  3. 下载FC2的glibc*.rpm文件到一台服务器上,启动匿名FTP服务
  4. 利用busybox 的ftpget程序从服务器上下载glibc*.rpm
  5. 利用busybox的rpm程序强制安装glibc*.rpm

Comments