资讯专栏INFORMATION COLUMN

恢复/lib误删手记

libin19890520 / 2202人阅读

摘要:而且还要考虑恢复数据库什么的。然而问题又来了虽然不会了,但恢复得并不完整。由于这台服务器经常有小白来管理,因此它装了图形界面,。问题找到,重装,一切恢复正常。系统交给小白之前一定要对他们进行认真的培训。

起因和舞台

学校机房采用一台IBM小型机作为OJ服务器,现在浙江大学的马宏菩学长给它装了CentOS 6.4,做了精密的配置,目标是它能正常工作十年以上。事实也证明他的工作何其卓越:从配置好到现在一年多时间从来没有遇到过任何系统问题,性能一直稳定得像放射性同位素的半衰期一样,作为一台OJ简直棒极了。他毕业后由我负责维护。

而我其实也即将毕业,自然需要未来的学生学习维护。然而新的信息组学生并没有在初中用过Linux操作系统的,就算高中开始用,也都只是玩玩Ubuntu的图形界面,至少没有一个会用Vim/Emacs的,就知道水平如何了。

前几天,他们将一组数据送上OJ,因为cp命令参数弄反,然后sudo rm * -r,不知道怎么回事就把/lib给删掉了……不久rm就崩溃了,停止运行。然后系统就废掉了,开机不久Kernel就因为动态库调用失败panic。

准备工作

向马宏菩学长请教后我准备了两套方案:
1.用CentOS 6.4 LiveCD进入系统,把LiveCD的/lib复制给系统,先让系统基本的功能能够运行,然后再安装失去的功能
2.重装

显然我是不想重装的,一是这台机器数据很多,二是这样一台机器相当难装机,尽管马宏菩学长已经做到了RAID5磁盘阵列区块对齐(请点击这里看他如何实现对齐的文章),解决了最难的问题,但重装还是让人觉得可怕的。而且还要考虑恢复MySQL数据库什么的。所以我还是希望方案1可用。

因此我刻录了CentOS6.4的LiveDVD和安装DVD,然后开进去。开进去干的第一件事就是备份数据。最初我让学弟们给我格式化一块空置的原本是NTFS的1TB移动硬盘为ext4,结果他格式化成了exFAT……而我只是开启了复制就去上晚自习了,下课回来一看才发现不妙,还是自己去格式化,然后扔在那里备份了一个晚上,到第二天中午下课,过去看已经备份完了。

诊断

我最担心的是他们不仅仅删了/lib,结果仔细一看,除了lib找不到,其他都在,还把用于存放数据的目录移动到了根底下。进去一看,居然有个目录叫lib,大喜,赶紧将其复制出来,重启,然后依然Kernel panic,依然是动态库调用错误。

这下比较郁闷了。仔细看了看复制出来的/lib目录,发现里面有一些失效的链接,都是库的特定版本命名。看来他们可能确实删掉了一些库。

治疗

这时强大的Shell工具就派上用场了。先用ls生成系统的/lib目录内容以及LiveDVD的/lib目录内容,然后用diff比对一下,就知道/lib缺少了哪些文件了。将它们逐个复制过去,大功告成,成功开机。

然而问题又来了:虽然Kernel不会panic了,但恢复得并不完整。由于这台服务器经常有小白来管理,因此它装了图形界面,gdm+gnome2。刚开始进入系统时,gdm正常,但一log out出来,gdm就无法加载用户列表了。CentOS的诊断系统报告只是缺少gvfs,不太可能造成这样的问题。

再问马宏菩学长,他提示我考虑看看日志。翻开日志,里面全是pluseaudio的报错……好吧你作为一台服务器有图形界面已经够bug了,居然还有pluseaudio……无视它,翻了越200行,终于看到一行特别的:dbus加载错误。问题找到,重装dbus,一切恢复正常。

原本计划这次维修用时在3天~5天,但仅仅用了一个中午就结束了。

启示

这是我第一次遇到一台弄到无法开机的Linux,给了我许多启示。
1.会尽可能避免重装,是一个系统管理员和街边修电脑的人遇到故障时最大的差别。重装是以破坏用户数据和使用习惯为代价的,能避免一定要避免。而避免的方法就是认真分析发生的故障或问题。
2.遇到问题请看日志,日志能给你最重要的提示。
3.系统交给小白之前一定要对他们进行认真的培训。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/7534.html

相关文章

  • 恢复/lib误删手记

    摘要:而且还要考虑恢复数据库什么的。然而问题又来了虽然不会了,但恢复得并不完整。由于这台服务器经常有小白来管理,因此它装了图形界面,。问题找到,重装,一切恢复正常。系统交给小白之前一定要对他们进行认真的培训。 起因和舞台 学校机房采用一台IBM小型机作为OJ服务器,现在浙江大学的马宏菩学长给它装了CentOS 6.4,做了精密的配置,目标是它能正常工作十年以上。事实也证明他的工作何其卓越:...

    xcold 评论0 收藏0
  • 恢复/lib误删手记

    摘要:而且还要考虑恢复数据库什么的。然而问题又来了虽然不会了,但恢复得并不完整。由于这台服务器经常有小白来管理,因此它装了图形界面,。问题找到,重装,一切恢复正常。系统交给小白之前一定要对他们进行认真的培训。 起因和舞台 学校机房采用一台IBM小型机作为OJ服务器,现在浙江大学的马宏菩学长给它装了CentOS 6.4,做了精密的配置,目标是它能正常工作十年以上。事实也证明他的工作何其卓越:...

    phodal 评论0 收藏0
  • MySQL增量备份与恢复实例

    摘要:增量备份的原理就是使用了的日志。本次操作的版本为。增量备份要确保打开了二进制日志,参考的日志系统首先对数据库做一个完整备份这时候就会得到一个全备文件。 小量的数据库可以每天进行完整备份,因为这也用不了多少时间,但当数据库很大时,就不太可能每天进行一次完整备份了,这时候就可以使用增量备份。增量备份的原理就是使用了mysql的binlog日志。 本次操作的MySQL版本为5.5.40 fo...

    vvpvvp 评论0 收藏0
  • Mongodb数据库误删后的恢复

    摘要:转载方法一通过恢复如果部署的是复制集,这时还有一线希望,可以通过来尽可能的恢复数据复制集的每一条修改操作都会记录一条,所以当数据库被误删后,可以通过重放现有的来尽可能的恢复数据。 转载:http://forum.foxera.com/mongo... 方法一:通过 oplog 恢复如果部署的是 MongoDB 复制集,这时还有一线希望,可以通过 oplog 来尽可能的恢复数据;Mong...

    cjie 评论0 收藏0
  • msyql数据库按需备份-binlog配合全备

    摘要:按需备份数据一备份提要通过在配置实现操作日志的记录,并配合的全备份来实现全备和按需恢复数据的数据备份方案。本文章实现单机备份方案,主从备份,后续再补充。最大缓存区大小文件最大的大小二进制日志自动删除的天数。 Mysql按需备份数据 一. 备份提要 通过在my.cnf配置bin-log,实现操作日志的记录,并配合mysqldump的全备份来实现全备和按需恢复数据的数据备份方案。再以实例来...

    archieyang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<