作者:yasden

我的笔记本电脑是神舟笔记本,cpu是i5-9400,带一个英伟达GTX1650-4G的显卡(见下图),加上i5-9400这款cpu是自带核显的,相当于有核显和独立显卡,本来有双显卡的笔记本是很好的,奈何这个英伟达的驱动比较难搞,经常ubuntu系统更新后,英伟达显卡要么经常掉驱动,要么直接黑屏,无法进入系统了。一开始我以为是笔记本双显卡的问题,后来发现我的台式机也这样(台式机是英伟达独立显卡,无cpu核显)。网上一搜索,发现出现和我一样问题的人特别多。本文介绍一种你没有看过的解决方案。

我就是因为更新了英伟达显卡驱动(见下图),导致黑屏,无法进入系统界面:

我就是更新了英伟达显卡驱动后,导致黑屏,无法进入下图所示的系统登陆界面:

解决问题的方法,网上很多,大部分说开机的时候,按Ctrl+Alt+F1键,或者Ctrl+Alt+F2键,Ctrl+Alt+F3键,反正一路试过去,直到Ctrl+Alt+F12键,全部12个键我都试过了,发现没有用。进不了那个命令行界面,我就无法敲命令来卸载英伟达显卡驱动呀,所以网上说的怎么办的方法,对于我来说,根本行不通。我折腾到凌晨2点,能进入类似下图的界面,但是无法输入命令执行(键盘上面敲几个字母就死机了,见下图),这种情况你们怎么解决的呢?网上找不到适合我的修复解决方案。

于是我自己开发了一个解决方法,这个方法全网首发于“什么值得买”网站,其他地方你找不到的,因为是我自己开发的方法。

第一步、用另外一台电脑,下载ubuntu的iso安装文件,将iso安装文件写入一个u盘里面,用写好的u盘启动神舟笔记本电脑。

神舟笔记本电脑启动进入bios界面的方法是按F1键或者F2键,有些电脑是按Del键,如果你不知道你的笔记本电脑是按什么键进入bios,就F1键、F2键、Del键都逐个试一遍,即可进入bios界面了(bios无论你的windows还是linux系统崩溃成什么样了,都是能进入的,只是每台电脑的进入方式不一样,如果开机时显示屏上有提示如何进入bios,就按照显示屏提示的方法进入即可)。神舟笔记本电脑的bios界面见下图:

第二步、选择u盘为第1启动盘来启动电脑

将u盘插到usb接口上,开机进入bios,点上图的Boot Manager按钮,设置成u盘启动电脑。我就不贴图了。

第三步、将u盘上面的ubuntu系统安装在笔记本电脑上,千万记得不要覆盖安装(要保留那个因为更新英伟达驱动而系统崩溃掉的ubuntu老系统,后面可以恢复这个老系统的),要将新的ubuntu系统和崩溃掉的老系统同时共存(不要抹掉原来崩溃掉的老ubuntu系统,我的老系统用了大半年了,抹掉重装软件太麻烦,无需抹掉,看我怎么修复)

因为过程没有拍照,大家自己看文字吧。修复过程中,我也不知道这个方法行不行,所以当时没拍照。

第四步、将新的ubuntu系统安装在原来崩溃掉的老ubuntu系统上的时候,需要左右拖动鼠标选择新系统和老系统的硬盘大小,新系统可以选择10GB即可(左边的那个容量就是新系统的磁盘容量,右边的容量是旧系统的容量)。为什么选10GB这么小呢?因为新安装的系统只是起个救援的作用,老系统要借助新系统重新修复重新启用的,所以新安装的ubuntu系统只要10GB左右即可,没必要搞太大浪费硬盘空间。

过程我没有拍照,大家自己看文字吧。修复过程中,我也不知道这个方法行不行,所以当时没拍照。

第五步、在旧硬盘划分的10GB空间上重新安装一个新的ubuntu系统(好像最小只能设置成20GB),借助这个新系统,才会出现一个类似下图的界面,在这个界面,终于可以用终端来输入命令修复老的ubuntu系统了。

新系统安装好之后,会出现类似下图的界面,第一个选项是进入新的ubuntu系统的选项,下面有进入旧ubuntu系统的选项,选择进入旧的ubuntu系统后,会出现下图的界面,我选的是进入(recovery mode on /dev/sda2),每台电脑的界面不一样的,你的电脑的旧的崩溃掉的系统,不一定是sda2,有可能是sda1或者sda3,自行选择即可。

点击上图的(recovery mode)恢复模式后,就会出现类似下图的界面,你可以选择dpkg-Repair broken packages,完了之后选择grub-Update grub bootloader,这些都可以在下面的菜单进行:

最重要,一定要做的,是选择root:Drop to root shell prompt,这是进入终端界面的方法:

在上图选择root:Drop to root shell prompt,之后,在屏幕左下角,会出现下图的英文,在下图的界面回车就行:

回车之后,root@yasden的标志出来了(见下图),这时候,你可以用终端来修复你崩溃的旧系统了。

我用下面的命令来卸载已经崩溃的旧linux系统的英伟达驱动:

sudo apt-get --purge remove nvidia*

修复方法非常简单,建议先是进入bios禁用英伟达显卡(不禁用估计也可以,我反正是禁用了),然后在终端下分别输入下面的两条命令,并回车,卸载英伟达驱动。

sudo apt-get --purge remove nvidia*

sudo apt autoremove

进入bios禁用英伟达显卡的方法是,选择Adwanced > Advanced Chipset Control > GPU Performance Scaling选择Disabled(见下图)。禁用之后,下次系统修复好了,可以重新打开enabled,毕竟英伟达的显卡,禁用了太可惜。

sudo apt-get --purge remove nvidia*

sudo apt autoremove

这两条命令回车后,输入reboot并回车,然后重启电脑,就可以登陆并看见熟悉的已经崩溃的linux系统的登陆界面了(见下图),这样就修复好旧系统的登陆问题了:

第6步、重新安装英伟达驱动

因为上面已经卸载了英伟达驱动了,所以登陆旧linux系统后,你的系统信息变成只有核显了:

终端输入nvidia-smi是会报错的,见下图。大家仔细看下图的倒数第3行,ubuntu22.04.2的推荐的显卡驱动是nvidia-utils-530,由于我更新的显卡驱动选的是525的驱动,所以更新驱动才会报错崩溃无法进入系统吧!系统崩溃原因找到了,就按照它推荐的方法来安装530显卡驱动吧。

用下面的命令来安装530驱动:

sudo apt install nvidia-utils-530

或者“软件更新器-软件和更新”那里,选择“nvidia-dirver-530(专有)”显卡,之后点击“应用更改”来安装530驱动(见下图),完成后点击“重新启动”:

重新启动后,你的英伟达显卡终于出来了(见下图):

nvidia-smi也显示正常了:

总结

本文借助于在同一个硬盘上安装第2个ubuntu系统来修复崩溃的旧ubuntu系统(该方法适合其他的Linux系统发行版,不一定非要是ubuntu),该方法关键是千万不要覆盖安装崩溃的旧系统(旧系统一定要保留),要将旧系统和新系统共存于同一个硬盘上。借助新系统产生的登陆界面来终端登陆修复旧系统。该方法适合无论怎么折腾,都无法调出崩溃系统的终端界面的用户。Ctrl+Alt+F1到Ctrl+Alt+F12都无法调出终端界面,你们怎么调出来的呀,欢迎留言探讨。

最后一个问题:旧系统每次启动都要方向键进行选择,怎么将旧linux系统设置为默认启动的系统呢?方法如下:

终端输入:

sudo vi /etc/default/grub

之后就会看见下图的界面:

上图的信息里面,其中GRUB_DEFAULT=0是默认的启动项,也就是说GRUB_DEFAULT=0代表的是下图的第一行的那个启动项,我要将它改成下图的第3行的Ubuntu 22.04.2 LTS (22.04) (on /dev/sda2), 从上往下数,第三行是0、1、2, 所以我要改成数字2, 将GRUB_DEFAULT=0改成GRUB_DEFAULT=2, 这样, 下次启动就会从Ubuntu 22.04.2 LTS (22.04) (on /dev/sda2)启动并进入你的旧的linux系统。

用vi修改/etc/default/grub文件并保存退出后,执行下面的命令保存并退出:

sudo update-grub

这样就修改了默认启动项了。

全文完,谢谢观看。

查看文章精彩评论,请前往什么值得买进行阅读互动