zoukankan      html  css  js  c++  java
  • (转)ubuntu 黑屏 进入不了图形界面 dev/sda1: clean, 552599/6111232 files, 7119295/24414464 blocks


    一)、修改boot启动项

    开始的时候电脑开不了机(开机之后,先是紫屏,再一直是黑屏),重启了几次发现依旧如此,就修改了boot启动顺序,LEFI启动Leacy启动都试了;之后根据启动的瞬间屏幕亮出的in unsecure boot,也尝试改成不安全启动;

    有了效果,开机画面变了,然后出现了一个黑框,嗯,就是最开头的图,可以输入内容、Enter键,但是不会执行,Ctrl+Alt+F2,居然能用,切换到TTY2界面,长舒了口气,还有救。

    二)、修改grub 引导项(很多人通过这个解决了,但是这招对我没用)

    在黑窗口里面(Ctrl+Alt+F2-7都行,输入用户名、密码),输入

    sudo gedit /etc/default/grub
    找到quiet splash并在后面添加nomodeset;修改前:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
    修改后:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset“


    然后输入

    sudo update-grub
    再重启就行了。

    如果出现无法使用sudo update-grub,比如:/usr/sbin/grub-mkconfig 1 /etc/default/grub i# not found

    解决方法: sudo cp /usr/share/grub/default/grub /etc/default/grub

    如果能进入到grub引导界面,就不用像上面那样胆战心惊了:以下为引用(其实就是照抄了,我单系统,看不到这个)

    附链接:https://blog.csdn.net/Gavinmiaoc/article/details/82968853

    开机后自动显示grub选项,提示要选择哪个操作系统的时候,默认选择光标是在第一行Ubuntu上的(整个第一行为白色)

    根据提示按e(edit的意思),可以看到,中下部分有一处写着“ro“,这才发现端倪所在:

    改成这样的

    ”ro“是”read only“只读的意思,在操作系统的基础知识中,我们知道一个操作系统在开机启动的过程中,有些软件会需要在此时写入一些信息和数据到系统中,才能正常运行,这里写成了”ro“会导致开机的时候一些软件无法写入数据,导致一直等待可以写入的时机否则不进行下一步,从而系统一直等待无法启动。

    这里我的解决方法是把”ro“改成”rw“,即”read & write“,可以读取并且可以写入,

    同时为了排除独立显卡的影响因素也在splash后面加上了nomodeset,然后按F10或者ctrl+x重启。

    我做的在命令行里面的操作,应和他这个效果一样,所以,我就接着他的办法更新了一下:

    然后在命令行用

    sudo apt update,以及

    sudo apt upgrade 更新自己的系统内核,然后用

    sudo apt install -f和

    sudo apt autoremove来无副作用的删除旧内核,
    如果你成功了,恭喜

    我挺苦恼的,我更新不了,因为没有网,虽然我有校园网线,但是那个得输入验证,由此引入了(三)环节。

    三)、ubuntu通过命令行联网

    抄自:https://blog.csdn.net/zhu334974857/article/details/77198545

    1.通过命令行ifconfig命令查看以太网(即网线插口)的名称,如下图,'enp3s0'是网线插口(Ethernet以太网):

    zhuml@zhuml-Latitude-3350:~$ ifconfig
    enp3s0 Link encap:Ethernet HWaddr 14:18:77:a5:24:3d
    inet addr:10.58.101.247 Bcast:10.58.103.255 Mask:255.255.252.0
    inet6 addr: fe80::2883:9232:3f1e:fe3/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:13212 errors:0 dropped:0 overruns:0 frame:0
    TX packets:1696 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:3760852 (3.7 MB) TX bytes:238743 (238.7 KB)

    lo Link encap:Local Loopback
    inet addr:127.0.0.1 Mask:255.0.0.0
    inet6 addr: ::1/128 Scope:Host
    UP LOOPBACK RUNNING MTU:65536 Metric:1
    RX packets:558 errors:0 dropped:0 overruns:0 frame:0
    TX packets:558 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:72352 (72.3 KB) TX bytes:72352 (72.3 KB)

    wlp4s0 Link encap:Ethernet HWaddr a4:02:b9:0a:76:b1
    UP BROADCAST MULTICAST MTU:1500 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
    2.命令行添加或修改网络参数

    zhuml@zhuml-Latitude-3350:~$ sudo gedit /etc/network/interfaces
    当然,如果黑窗口下,操作不了gedit,那就把它换成vi或者vim吧

    sudo gedit /etc/network/interfaces

    弹出一个文本窗,如下:

    # interfaces(5) file used by ifup(8) and ifdown(8)
    auto lo
    iface lo inet loopback
    在里面添加以太网的相关信息

    # interfaces(5) file used by ifup(8) and ifdown(8)
    auto lo
    iface lo inet loopback

    auto esp3s0
    iface esp3s0 inet dhcp
    3.重启网络

    zhuml@zhuml-Latitude-3350:~$ sudo /etc/init.d/networking restart
    如果能上网,就继续按照(二)的最后的更新步骤来,不能的话,咱们最差也是和我一样嘛

    压箱底的老外上网的解决方法:

    I also have same problem. Strangely, the wired network won't work, while the wireless network can connect to a 802.1x network.Anyway, in my case, I can not fix it, but can workaround by modify the interface file Let the NetworkManager bypass the interface.

    In the /etc/network/interface file

    auto enp0s25
    iface enp0s25 inet dhcp
    wpa-driver wired
    wpa-conf /etc/wpa_supplicant/wpa_wired.conf
    and in your /etc/wpa_supplicant/wpa_wired.conf file

    network={
    key_mgmt=IEEE8021X
    eap=PEAP
    phase2="auth=MACHAPV2"
    identity="youridentity"
    password="yourpassword"
    }
    In my case, I can connect to network temporary.

    以上,是带有用户名、密码的网线连接方式,还连不上,嗯嗯,没事,我也没连上

    三)、环境变量

    为什么会相到是这里的问题呢,可能看着跨度比较大,由于能进命令行窗口,于是我按照关键字,“Ubuntu无法进入图形界面”,搜索,发现一篇给力清奇的文章:https://blog.csdn.net/darren2015zdc/article/details/73910766

    如果你配置完ubuntu 然后进不去图形界面,然后你就重启电脑,然后再shift+alt+f1键进入ubuntu的终端模式下面进行操作,然后你就创建一个root用户(如果有就不用了)创建root用户方法:sudo passwd root 创建完root用户 然后就以root身份 进入你之前配置过的环境变量 配置的哪个就把哪个删除掉,用vi操作,然后重启,就完全恢复原来的问题,然后再看下面的文章,究竟是什么东西在作怪。

    查找错误后才发现,原来,ubuntu 再启动的时候读取配置文件,并设置环境变量的顺序是这样的:

    1、在登录时,操作系统定制用户环境时使用的第一个文件就是 /etc/profile ,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。
    2、在登录时操作系统使用的第二个文件是 /etc/environment ,系统在读取你自己的profile前,设置环境文件的环境变量。

    3、在登录时用到的第三个文件是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,,该 文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。/etc/bashrc:为每一个运行bash shell的用户执行此文件.
    当bash shell 被打开时,该文件被读取.
    因此,查看我的配置文件后发现!原来错误就出现在这里,这是我原来的.profile配置文件

    export JAVA_HOME=/usr/jdk1.6.0_21
    export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin
    export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
    因为,系统启动时会先读取/etc/profile , 然后读取 /etc/environment ,最后才是.profile 文件
    这时,如果你在.profile 中也设置了环境变量PATH ,就会覆盖原来/etc/environment 中设置的环境变量PATH !
    所以,问题就出在了这一步!
    那么解决办法就是,在设置.profile 的环境变量时,在PATH=的最前面加上 $PATH
    修改后的.profile 文件如下:

    export JAVA_HOME=/usr/jdk1.6.0_21
    export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
    export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib


    重启之后,还是冰冷的黑窗口;赞同他的方法是因为,我是前一天也安装了java,修改了环境变量,虽然没解决,但是挺好的

    四)、锁定nvidia显卡自动更新

    按照关键字sda1: clean、nvme0n1 : clean好多都指向显卡的问题,打算卸载显卡再安装

    由于之前安装nvidia显卡驱动的时候,其中有一步,是把nouveau关闭:

    ubuntu 16.04默认安装了第三方开源的驱动程序nouveau,安装nvidia显卡驱动首先需要禁用nouveau,不然会碰到冲突的问题,导致无法安装nvidia显卡驱动。

    编辑文件blacklist.conf

    sudo vim /etc/modprobe.d/blacklist.conf
    在文件最后部分插入以下两行内容

    blacklist nouveau
    options nouveau modeset=0
    更新系统

    sudo update-initramfs -u
    接下来就是常规的安装nvidai驱动的步骤了,但有些细节得注意:

    1)现在黑窗口,电脑没网

    2)外接存储设备,得挂载;有挂载,就会有卸载

    五)、安装nvidia驱动

    1、挂载存储设备:

    获取挂载权限

    sudo -i

    #输入密码
    找到待存储设备的目录(Linux系统中设备即文件)

    fdisk -l
    # /dev/sdb1
    将存储设备挂载到系统某个位置

    mount /dev/sdb1 /mnt/wang
    现在设备所有文件被挂载到了/mnt/wang目录中,进入目录查看内容,找到下载好的相应的nvidia驱动

    cp /mnt/wang/NVIDIA*.run ~/
    意思就是把储存设备什么的驱动拷贝到你经常使用的目录,建议用户名的根目录,因为进入TTY黑窗口界面,开始的时候,就是这里
    然后就可以卸载设备了

    sudo umount /dev/sdb1
    注意不能够在/media/wang目录下输入卸载命令,因为你正在访问设备

    接下来干正事了,进入到刚才拷贝了驱动的文件夹

    赋予驱动执行权限
    sudo chmod a+x NVIDIA*.run

    执行安装驱动
    sudo ./NVIDIA-Linux-x86_64-384.59.run –no-x-check -no-nouveau-check -no-opengl-files
    –no-opengl-files:表示只安装驱动文件,不安装OpenGL文件。这个参数不可省略,否则会导致登陆界面死循环,英语一般称为”login loop”或者”stuck in login”。
    –no-x-check:表示安装驱动时不检查X服务,非必需。
    –no-nouveau-check:表示安装驱动时不检查nouveau,非必需。
    过程中会可能出现一下:

    The distribution-provided pre-install script failed! Are you sure you want to continue?
    读懂的话,挺吓人的,还好我看不懂;一切都是paper tiger 选择“yes”

    Nvidia's 32-bit compatibility libraries?
    安装32链接库吗, No

    Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up.
    不知道会不会是更新驱动的意思,第一次安装的时候,选择了yes导致我捣鼓了一天,现在果断no;当然是不是,我不确定哈

    挂载:

    modprobe nvidia
    查看nvidia驱动:

    nvidia-smi
    成功的话,进入图形界面:

    sudo init 5
    ctrl + alt + f7 (具体是f几不知道了,有的ubuntu的f1是图形化界面,有的是其它)
    sudo service lightdm restart
    这三种都可以,不过我没试,我还是喜欢 reboot
    ————————————————
    版权声明:本文为CSDN博主「王20133」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/u013862444/article/details/103005800

  • 相关阅读:
    迅雷极速版 2020年 防止升级方法
    微PE WEPEMENU.INI CDLINUX BEINI 启动菜单
    tcping 0.39
    海康威视楼宇可视对讲解码器拨码规则计算器-安卓版
    博客园-文字互动插件
    WSL-Ubuntu 安装Xubuntu-Desktop 记录
    html css的冷门相关基础知识整理
    git hub 的冲突解决方案
    css实现垂直居中的方式
    js中BOM相关知识
  • 原文地址:https://www.cnblogs.com/answerThe/p/15587392.html
Copyright © 2011-2022 走看看