Ubuntu12.04 不能启动,显示 "Could not write bytes: broken pipe"

Ubuntu启动的时候加载环境变量的过程大致为:

/etc/enviroment

/etc/profile

  -->/etc/bash.bashrc

  -->/etc/profile

    -->/etc/profile.d下的所有.sh文件

~/.profile (或~/.bash_profile 或 ~/.bash_login)

  -->~/.bashrc (如果在运行bash才运行)

    -->~/.bash_aliases

    -->/etc/bash_completion

 

其中前两个是系统环境变量,最后一个是当前用户的局部环境变量。


/etc/enviroment在系统一些核心组件加载完成后最先调用,很多外围的程序都依赖它运行,

如果这里面出现了什么问题,那么很可能导致系统无法正常启动,相当于是系统级别的公共环境变量

/etc/profile 在启动登陆环境时被首先执行,相当于是应用级的公共环境变量

~/.profile在shell被打开时,次于/etc/profile执行,相当于是应用级的用户环境变量


注意~/.profile是在打开shell时执行的,也就是说如果在它或者它会调用的脚本(一般是.bashrc)里面配置的环境变量,在图形界面下是无效的!

如果想要配置在图形界面下依然有效的环境变量,可以放在/etc/prfile.d/下建立一个.sh文件,写入相应内容,例如JAVA_HOME。

 

出现本案例所描述的问题的原因一般是修改了:/etc/enviroment并且出现了一些错误,导致启动异常。

这有可能是:在修改的时候出现了一些逻辑上的错误包括打错字之类的;也有可能是修改的环境变量(如PATH)导致一些系统需要的程序被自定义的替代了。


将/etc/enviroment文件中我添加的东西删除掉之后,一切正常。

所以如果要加入或修改环境变量,还是在~/profile或者/etc/profile(/etc/profile.d/)中进行修改吧。


因为无法登录图形界面所以需要切换登陆模式,使用快捷键:ctrl+alt+f1(ubuntu12.04) 或 ctrl+shift+alt+f1

若登录成功后还是无法使用vi、sudo等命令,出错提示:The command count not be located because '/bin' is not included in the PATH

是由于没有加载到/usr/bin/下的命令,所以要执行export操作:export PATH=/usr/bin/:$PATH

这个时候,就可以sudo vi /etc/enviroment 和 sudo vi /etc/proflie了。


本案例也会出现类似 “Checking battery state” 提示信息。

进入命令行登录模式后:

sudo apt-get install gdm

sudo dpkg-reconfigure gdm  

重新选择显示器,从GDM到LightDM,选lightdm模式,重启即可。

如果已经安装刚 sudo /etc/init.d/lightdm restart 切换即可。

你可能感兴趣的:(Ubuntu)