🕒 1. 问题描述
Ubuntu开机后在登录界面,即使输入正确的用户名和密码,3秒后也会重新跳到登录界面,无法进入系统,一直循环登录。
🕒 2. 分析问题
能登录命令行模式,说明账号密码没问题,排除。
刷到说英伟达驱动,最近没有安装,排除
.Xauthority权限,并非root,是当前登陆用户的,排除
/tmp,删除了,不行
开机有以下提示,后闪过进登陆界面:
搜了下说空间不足,使用df -h
查看,空间还有50%,排除,而且事后发现这个提示其实无影响。
环境变量 .bashrc, .profile , /etc/profile 等等,近期确实有过修改,估计是这个问题。
这个问题是我在安装jdk时对环境变量进行了编辑,在里面加了一些jdk所需要用到的环境变量。配置完重启后发现输入正确的密码之后,它又跳回到原来的的登录界面。这是由于Ubuntu环境变量错误导致无法正常登录。
🕒 3. 解决方法
(1)在登陆界面按 ctrl + alt + F1 (F1~F6任意一个即可)进入进入命令行模式
(2)修改环境变量要编辑/etc/profile,正常情况下使用的命令是:sudo vim /etc/profile
但是,由于Ubuntu环境变量错误导致系统找不到sudo 命令,也找不到vim命令,所以只能人工指定它们的绝对路径了。由于sudo 和 vim都是存放在/usr/bin
目录下的,所以sudo和vim的绝对路径分别是:/usr/bin/sudo
;/usr/bin/vim
因此要编辑/etc/profile要使用的命令应该写:/usr/bin/sudo /usr/bin/vim /etc/profile
如果嫌麻烦,可以使用临时环境变量:
export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
这样就可以临时使用ls
、vim
之类命令
输入完上述命令后,就可以编辑/etc/profile了,对自己所加的环境变量进行检查,把环境变量修改为正确的,然后再保存退出,如果不知道怎么改的话,就把自己之前添加的内容删除掉(实测可行)。
(3)重启系统
正常状态下重启使用命令:sudo reboot
但是现在系统无法执行此命令,所以要使用命令应该是 :/usr/bin/sudo /sbin/reboot
等待系统重启完之后进入到登录页面,再次输入密码就可以成功进入Ubuntu。