如何修复安装,意外删除/ 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
否则无法恢复丢失的二进制文件。 initctl
与start
, stop
或restart
不同,它是一个单独的可执行文件,而不是init本身的链接。
如果您没有连接,请查看您有dpkg -l|grep upstart
的Upstart软件包版本,并在另一台计算机上手动将软件包下载到USB记忆棒,然后从记忆棒重新安装。 所有依赖项都是正确的,因为您只是重新安装完全相同的版本。
我遇到了同样的问题,这就是我做的,我的ubuntu 14.04开始正常启动。
- 获得一个实时CD / USB,启动它并选择尝试ubuntu而不安装。
- CTRL + ALT + T到达终端
- 将/ sbin / initctl文件从live CD / USB复制到计算机上已安装的ubuntu的/ sbin 。
- sudo cp / sbin / initctl / media / ubuntu / 你的ubuntu分区 / sbin
注意:将“您的ubuntu分区”替换为安装了原始ubuntu的分区。