我正在运行 Citrix XenServer 4.1。在这台服务器上,我安装了 Debian Etch,用作我们的 Web 开发服务器。我设置了 Virtualmin 来管理域(MySQL、Apache 等)。服务器只能通过 HTTP 从外部访问,不能通过 SSH 或 FTP 访问。
两天前,我们突然无法在服务器上运行任何命令。我尝试重新启动,但失败了。虽然能够进入登录屏幕,但无法登录。出现以下形式的启动错误:
init: cannot execute "/etc/init.d/rc"
我以前从未见过这些。搜索表明它找不到/bin/sh
脚本顶部的引用。这导致进一步搜索,返回大量有关磁盘故障等的结果。这对我来说真的没有多大意义,因为 Xen 主机很好,并且在其上运行的另一个 Debian 安装也很好。
最后,我挂载了损坏的安装的磁盘,发现/bin
目录不见了。这解释了到目前为止发生的一切。我粗略地浏览了一下日志,看看是否有什么东西突然出现。什么也没有。我/bin
从另一个 Debian Etch 安装中复制了目录,看看是否可以恢复服务器。没有运气,像 aptitude 这样的东西不起作用,等等。我决定重新安装,因为这样不会花太多时间,现在我已经恢复了一切。
我一直在查看日志,但没有找到任何表明迄今为止发生了什么的信息。
有人能建议或指出一个方向来帮助解释为什么关键目录(例如)/bin
突然消失了吗?我不希望这种情况再次发生。
提前致谢。
答案1
我只是碰巧在文件系统损坏的机器上看到了这样的症状......或者转储根用户做了某种事情(不要在家尝试)
# rm -rf /bin
代替
# rm -rf ./bin
在他的任何应用程序目录中......
因此,问问自己、问问您的用户,然后检查您的(文件)系统。通常,文件系统挂载配置为在发生错误时以只读方式重新挂载,这会导致想要将任何内容写回磁盘的命令崩溃(想想 .lock、.pid 或 .log)。但如果您的 /bin 真的消失了……我假设:
- 文件系统崩溃
- 以 root 权限运行的恶意脚本/守护进程/应用程序
- 有人以 root 身份登录犯了一个大错误
或者...墨菲先生
答案2
您还可以检查 root 用户的历史记录