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

在Ubuntu中遇到tty登录时无法输入密码的问题,原因可能是内核版本导致。本文提供了更换内核的两种方法,包括下载对应版本内核,安装,设置默认启动内核,并详细解释了解决过程。
部署运行你感兴趣的模型镜像

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.com/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默认启动

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值