Ubuntu tty下无法输入密码 / Ubuntu 内核安装

编程入门 行业动态 更新时间:2024-10-28 01:23:30

1. 问题

在安装Nvidia驱动时,需要按 ctrl+alt+F1 切换到纯命令行模式,然后输入用户名密码登录。
但是出现了一个很诡异的问题,当时没有截图,我描述一下:

  • 输入用户名并且回车以后,正常来讲会叫你输入密码,但是我这里直接跳到了输入密码的下一行,过几秒钟后,显示 login incorrect,并且让你重新输入用户名登录,然后无限循环。
  • 我试着在输入用户名以后快速输入密码,大家都知道在Linux下输入密码是不显示的,但是这里会在输入密码的下一行明文显示你的密码,然后依然是 login incorrect

搜了一下,网上的很多问题都是出在使用小键盘输入啊什么的,跟我的问题完全不一样,找了半天终于找到了问题所在。
我使用命令:

uname -sr       # 查看当前内核版本

发现我的内核版本是 linux-images 4.15.0-45,这个版本下面就会出现上述问题。同时,在 linux-images 4.15.0-44 也是一样的。

2. 解决方法

既然是内核出现了问题,那就是要更换内核了,大部分选择的是退回到 linux-images 4.15.0-43,我一开始升级到了 linux-images 4.16.1,后面因为 linux-images 4.16.1 使用 gcc 7.2 ,与显卡驱动不匹配,所以我还是选择退回到了 linux-images 4.15.0-43

3. 更换内核(方法一)

下载
到Linux Kernel下载对应版本的内核。
比如我要下载内核版本是 4.16.1,点进以上网址后先找到 v4.16.1 这个文件夹,点进去。
因为我的系统是64位的,所以下载 Build for amd64 succeeded(see BUILD.LOG.amd64) 下的三个 .deb 文件:

linux-headers-4.16.1-041601_4.16.1-041601.201804081334_all.deb
linux-headers-4.16.1-041601-generic_4.16.1-041601.201804081334_amd64.deb
linux-image-4.16.1-041601-generic_4.16.1-041601.201804081334_amd64.deb

安装
进入以上文件的目录,打开终端,运行:

sudo dpkg -i *.deb

切换
重启电脑,在选择系统的界面选择 Ubuntu高级选项 进入,选择刚刚安装的内核启动。如果能正常启动,一般就没有问题了。
启动后,可以运行:

uname -sr

查看内核版本。
然后按 ctrl+alt+F1 进入 tty1,应该就可以正常登录了。

4. 更换内核(方法二)

因为 4.16.1 是用 GCC 7.2 编译的,而我要安装的 Nvidia 驱动是用 GCC 5.4 编译的,会有冲突,所以我还是选择退回 4.15.0-43。
使用以下命令看到当前内核使用的编译器版本:

cat /proc/version

我按照之前的方法去安装,但是下载页面中找不到 4.15.0-43 版本的内核,所以就采用了另一种安装方法。

添加软件源

sudo gedit /etc/apt/sources.list

在文件最后一行添加:

deb http://security.ubuntu/ubuntu trusty-security main

然后更新软件源:

sudo apt-get update

安装内核

sudo apt-get install linux-image-extra-3.15.0-43-generic

5. 设置默认启动内核

降级了内核以后,因为Linux默认是使用比较新版本的内核启动,虽然可以在开机的时候选择启动的内核,但是这样太麻烦了,万一哪一天忘了选择,指不定出什么问题,所以我们通过更改 /etc/default/grub 文件来更换启动选项。

在启动的时候进入 grub 界面,比如我的是这样的:

Ubuntu
Advanced options for Ubuntu # 找到这一行,记住在第几行,从0开始数,假设为第 x 行
Memory test (memtest86+)
Memory test (memtest86+, serial console 115200)
Windows 10 (loader) (on /dev/sda1)
system setup

一般来说,Advanced options for Ubuntu 或者 Ubuntu高级选项 在第 1 行(从0开始数)。

然后进入 Advanced options for Ubuntu ,我的界面是这样的:

Ubuntu, with Linux 4.15.0-45-generic
Ubuntu, with Linux 4.15.0-45-generic (upstart)
Ubuntu, with Linux 4.15.0-45-generic (recovery mode)
Ubuntu, with Linux 4.15.0-43-generic #我想默认启动的内核,在第3行(从0开始数)
Ubuntu, with Linux 4.15.0-43-generic (upstart)
Ubuntu, with Linux 4.15.0-43-generic (recovery mode)

也是从上往下数,从0开始数,看你想要启动的内核在第几行,假设为第 y 行。

启动后在命令行输入:

sudo gedit /etc/default/grub

找到:

GRUB_DEFAULT = 0

改为:

GRUB_DEFAULT = "x> y"		# x, y是上面要你记住的行号

比如我改成了:

GRUB_DEFAULT = "1> 3"

然后使配置生效:

sudo update-grub

重启电脑即可。

6. 卸载内核

如果需要卸载不需要用到的内核,先查看系统已安装的内核:

sudo dpkg --get-selections |grep linux

然后使用以下命令卸载内核:

sudo apt purge linux-headers-4.15.0-45 linux-image-4.15.0-45-generic

参考:
tty不给输入密码机会怎么办
ubuntu 16.04 tty登录显示 login incorrect,输入用户名后无法输入密码
Ubantu 16.04升级内核版本和还原到升级之前的内核版本的方法
Ubuntu 16.04 内核降级
Ubuntu 设置内核版本的GRUB默认启动

更多推荐

Ubuntu tty下无法输入密码 / Ubuntu 内核安装

本文发布于:2023-06-13 23:23:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1414128.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:内核   输入密码   Ubuntu   tty

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!