Linux(CentOS7.3)虚拟机开机输入用户名密码登录后出现黑屏问题原因

在虚拟机CentOS7.3中安装MongoDB后,为了解决MongoDB服务启动问题,先在/etc/profile文件中添加了如下环境变量:

MONGODB_PATH=/usr/local/mongodb/bin
PATH=$MONGODB_PATH:$PATH

但是,使用service mongod start、systemctl start mongodb.service启动MongoDB一直出现如下异常:

[root@localhostsystem]# service mongod start
Redirecting to /bin/systemctl start  mongod.service
Failed to start mongod.service: Unit not found.
[root@localhostbin]# systemctl start mongodb.service
Job for mongodb.service failed because the control process exited with error code. See "systemctl status mongodb.service" and "journalctl -xe" for details.

之后,又在一些博客中看到MongoDB环境的另一种写法:

export MONGODB_HOME=/usr/local/mongodb
export PATH=PATH:{MONGODB_HOME}/bin

添加之后,mongodb.service仍无法正常启动,而必须以/usr/local/mongodb/bin/mongod -dbpath /usr/local/mongodb/data/db/方式手动启动。

后来发现,重启虚拟机的时候便出现了本文所述的黑屏问题。如下面几幅图所示:

1.选择用户:
选择用户
2.输入用户名、密码:
输入用户名密码
3.出现黑屏,并且过很长一段时间又返回用户选择界面,如此循环往复:
出现黑屏

此前,宿主机Win10系统突然出现显示异常:多个应用(网页、聊天工具等)的界面开始出现显示异常,界面中的文字大面积消失,成了白板,于是就重启了Win10,重启过程中,执行了上次未完的磁盘检查chckdsk操作。Win10重启后,又执行了C盘的磁盘的“磁盘清理”操作。此后,启动虚拟机时,又提示:虚拟磁盘的碎片过多,影响了虚拟机性能。请对以下虚拟磁盘进行碎片整理: scsi0:0。关闭虚拟机,在“虚拟机设置”中选择虚拟磁盘,然后单击“碎片整理”。
于是,又对虚拟机磁盘进行了磁盘“碎片整理”操作。最终启动虚拟机时遇到了黑屏问题。
刚看到Linux登录时出现黑屏,第一个念头就是,上述磁盘操作可能误删了虚拟机的什么文件,于是查看了虚拟机的vmware.log、vprintproxy.log等日志文件,发现其中不乏大量看似异常的记录,如:

vmx| I125: FILE: FileCreateDirectoryRetry: Non-retriable error encountered (C:\ProgramData\VMware): Cannot create a file when that file already exists (183)
vmx| I125: DictionaryLoad: Cannot open file "C:\Users\Administrator\AppData\Roaming\VMware\config.ini": The system cannot find the file specified.
vmx| I125: ConfigDB: Failed to load C:\Users\Administrator\AppData\Roaming\VMware\config.ini
vmx| I125: ConfigCheck: No rules file found. Checks are disabled.
vthread-4| I125: FILE: FileCreateDirectoryRetry: Non-retriable error encountered (C:\Users\ADMINI~1\AppData): Cannot create a file when that file already exists (183)
vthread-4| I125: FILE: FileCreateDirectoryRetry: Non-retriable error encountered (C:\Users\ADMINI~1\AppData\Local): Cannot create a file when that file already exists (183)

然后,就根据上述异常记录寻找线索,看了大量了blog,有人说用netsh winsock reset命令修复LSP可以解决,有人说在BIOS中开启CPU VIRTUALIZATION可使恢复正常,我一一尝试,均不奏效。
终于,有人说到了使用单用户模式登录Linux后,删除/etc/profile文件中最后添加的内容,绝望之际试了一下,居然成功了!
参考的blog为:CentOS7 输入密码登陆之后黑屏

记录一下解决问题的主要步骤吧:

1、开机选择平时正常使用的Core版本,如下图所示:
选择内核版本
2、按照上图界面底部提示,按字母e,进入选项编辑页面,见下图:
按e编辑选项
通过上、下、左、右方向键(或通过组合键:上Ctrl+p、下Ctrl+n、左Ctrl+b、右Ctrl+f)移动光标至linux16开头那一行,进行如下图所示的3处修改:
修改处
修改结果为:
修改结果
修改之后,根据上图底部提示,按Ctrl+x继续启动Linux系统即可进入单用户模式命令登录页面(不需要验证用户名、密码)。登录之后,便可使用vi /etc/profile命令进入该配置文件编辑页面。可以将最后添加的环境变量信息注释掉,示例如下:

#export MONGODB_HOME=/usr/local/mongodb
#export PATH=PATH:{MONGODB_HOME}/bin

之后,保存profile文件,并重启Linux虚拟机。实测结果:可以正常进入图形界面系统了。

此后,又将MongoDB环境变量修改为:

export MONGODB_HOME=/usr/local/mongodb
export PATH=$PATH:$MONGODB_HOME/bin
export PATH=/usr/local/mongodb/bin:$PATH  

虽然,MongoDB的问题依旧:

[root@localhost~]# service mongod start
Redirecting to /bin/systemctl start  mongod.service
Job for mongod.service failed because the control process exited with error code. See "systemctl status mongod.service" and "journalctl -xe" for details.
[root@localhost~]# systemctl start mongodb.service
Job for mongodb.service failed because the control process exited with error code. See "systemctl status mongodb.service" and "journalctl -xe" for details.

但是,起码已经可以继续赶路了。相信MongoDB遗留问题也将很快分崩离析……

--------------------------一条强刷存在感的分割线----------------------------
2020.11.15更新:
早已从MongoDB的天坑中爬出,且已向前走了好远一段距离了,奥利给!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值