几天前,我发现我的 vps 丢失了 /etc/init.d/ 中的文件,而这些文件完全是空的。所以我决定全新安装操作系统(OPENVZ 上的 ubuntu 10.04)
我恢复了 VPS 上的 OS 模板,重新安装了基本内容,htop、nginx、php5、php5-fpm、phpmyadmin、mysql、nano 和 vsftpd。我创建了我的用户,并将其添加为 SU 用户。/etc/init.d 已满并且正常,除了那些守护进程配置之外没有更改任何内容,每次更改后都重新启动它们,所以一切正常,我可以通过 SSH 以我的用户身份进行访问,非常完美。我重新启动 VPS,砰,我被锁定了!内存似乎使用了大约 38MB(好吧,也许有些东西没有启动)但是 sshd 和 webserver 没有启动,所以网站无法加载,我什么也做不了!我让我的提供商(spacerich)告诉我是否有办法访问 vps,所以我在等他们回复。在这种情况下要遵循的具体程序是什么?
无论如何,现在我想起来,我想我找到了原因:我做了“apt-get upgrade”,你认为这可能是问题所在吗?我永远不应该在 OPENVZ 上这样做吗?SolusVM 控制台是否应该授予我访问权限?(目前已禁用)
答案1
使用 Xen 和新的虚拟机安装时,很容易在 Debian 安装映像中遇到类似的错误;默认情况下udev尚未安装,但这是启动 ssh 服务器所必需的。
所以在我的情况下,一个简单的apt-get install udev
技巧就成功了。检查您的进程列表,看看 udev 是否正在运行。
答案2
如果他们可以确定 RAM 使用情况,则听起来它已启动。如果无法 PING 它,则很可能无法启动网络配置。很难说为什么,/etc/init.d/network 可能做错了(不知道是什么),或者 VM 在重新启动后最终位于 eth2 或 3 而不是 eth0(我以前见过这种情况)。
如果您可以访问,请执行 ifconfig - 如果 lo 不存在,则您可能根本没有启动网络。如果它存在但 eth* 不存在,请执行ls -al /etc/sysconfig/network-scripts/ifcfg-eth*
ifup eth[whatever_number_it_returned]。如果您尝试执行该操作并且它显示“网络适配器不存在”或类似信息,请执行该操作dmesg | grep eth
并查看它是否显示,例如,它已移至 eth4 - 然后将 /etc/sysconfig/network-scripts/ifcfg-eth0 移至 ifcfg-eth4,在文本编辑器中打开它并将标签更改为 eth4,然后尝试ifup eth4
答案3
我看到 apt-get 是您的包管理器。
如果您使用的是 Debian Sid 或 Testing,它们几乎会不断破坏 OpenVZ 与其核心软件包(内核、systemD 内容)的兼容性。经过第三次尝试后,我转而使用 Fedora。