如何修复安装,意外删除/ sbin / initctl

我在VirtualBox上运行Ubuntu 12.04。 我试图用rsyslog创建一个中央日志服务器。 在某些时候,我对conf文件进行了更改,并尝试重新启动rsyslog,但开始收到以下错误:

无法连接到Upstart:无法连接到socket / com / ubuntu / upstart:连接被拒绝

按照这个问题建议http://ubuntuforums.org/showthread.php?t=1997229

我发出了以下命令

dpkg-divert --local --rename --add /sbin/initctl ln -s /bin/true /sbin/initctl 

但是这并没有解决问题,因为运行以下内容实际上并没有重新启动rsyslog。

service rsyslog restart

所以我尝试通过执行来撤消初始命令

 dpkg-divert --local --remove /sbin/initctl rm /sbin/initctl 

但是,删除initctl会导致其他问题。 所以我重新启动机器,机器无法正常启动。 我进入恢复模式,在显示恢复菜单之前,它打印/proc/self/fd/9: 5: /proc/self/fd/9: initctl: not found

有谁知道如何恢复initctl?

编辑:我还使用12.04的iso映像启动了VM并转到恢复菜单,但似乎没有恢复已删除文件的方法。

尝试重新安装Upstart:

 sudo apt-get --reinstall install upstart 

否则无法恢复丢失的二进制文件。 initctlstartstoprestart不同,它是一个单独的可执行文件,而不是init本身的链接。

如果您没有连接,请查看您有dpkg -l|grep upstart的Upstart软件包版本,并在另一台计算机上手动将软件包下载到USB记忆棒,然后从记忆棒重新安装。 所有依赖项都是正确的,因为您只是重新安装完全相同的版本。

我遇到了同样的问题,这就是我做的,我的ubuntu 14.04开始正常启动。

  1. 获得一个实时CD / USB,启动它并选择尝试ubuntu而不安装。
  2. CTRL + ALT + T到达终端
  3. / sbin / initctl文件从live CD / USB复制到计算机上已安装的ubuntu的/ sbin
  4. sudo cp / sbin / initctl / media / ubuntu / 你的ubuntu分区 / sbin

注意:将“您的ubuntu分区”替换为安装了原始ubuntu的分区。