这是一次踩坑记录
之前在一台【戴尔Inspiron 灵越 15 7000游匣Master 7567】(Intel i7-7700HQ + NVIDIA 1050Ti + 3840*2160高清屏)的笔记本上成功安装Windows 10和Ubuntu 16.04 LTS。其中Windows 10系统分区独占128G固态,Ubuntu 16.04 LTS在机械盘的某个分区里。硬盘都是MBR分区表,启动引导都放在了固态盘里。双系统安装后,在Ubuntu 16.04 LTS里面完成NVIDIA显卡驱动的安装、CUDA及常用深度学习框架的部署。
后来某天,Ubuntu升级显卡驱动,结果悲剧:1、启动Ubuntu 系统时,无限循环登录界面;2、进入纯字符界面(Ctrl+Alt+F1)登陆并且卸载NVIDIA驱动后,能进系统,但4K分辨率显示卡顿,且通过系统的GUI设置不能调分辨率。
一段时间不管,后来某天Windows 10自动更新,把引导覆盖了。从此,连Ubuntu也进不去了,决心想办法修复。遂查阅一些资料,在各大网友的帮助下,成功解决问题。一怒之下,写下经历。以便以后再出问题能快速解决。
- 在此,感谢如下两个帖子,我的主要问题在这两个帖子指引下成功解决。
下面是第一个问题的解决:引导修复
本引导修复仅支持MBR分区表的硬盘,GPT分区表请移步UEFI+GPT下Ubuntu引导恢复
这一步主要参考了前述的第一个帖子
- 先制作一个Ubuntu的LiveCD启动盘,版本我用的18.04(16.04也可以,毕竟系统装的就是16.04)。
- U盘引导启动,开机按F12进行引导选择(不同电脑按键不一样),选择U盘即可。这里注意两点:
1)引导模式,由于是MBR的磁盘分区表,所以不能UEFI引导。而我做的LiveCD在两种模式都可以引导,在这里我选了Legacy方式;
2)可能是屏幕原因,也可能是镜像或者U盘原因,我进18.04的试用时,总会在桌面卡死然后死机,只能长按电源键强制关机。后来在引导的时候,一出现紫色界面,立马按F1,然后会让选择语言,选了English之后,会进行启动选择,我选择Try Ubuntu without installing.进入桌面后,打开一个终端。 - 通过 fdisk 和 blkid命令查看并确定Ubuntu安装所在分区,以及确定引导分区。
sudo fdisk -l
sudo blkid
下面是我这个电脑的截图(主要关注/dev/sdX#
,用于帮助确定相关的分区 )
blkid
从图中可以看出,
/dev/sda
是固态盘(128G大小),/dev/sdb
是机械盘(1TB大小),/dev/sdc
是LiveCD的U盘,/dev/sdd
是我另外接的一个2G的U盘。我的Ubuntu安装分区是/dev/sdb5
,是机械盘倒数第二个分区;引导分区是/dev/sda1
,在固态上。虽然现实我的机械盘包含可引导分区,但实际上不能通过机械盘引导启动系统。
- 挂载Ubuntu分区到一个临时目录,比如挂载到
/mnt/ubuntu
,注意替换下述命令中的/dev/sdXy
为第3步中得到的Ubuntu分区的设备名称:
sudo mkdir /mnt/ubuntu
sudo mount /dev/sdXy /mnt/ubuntu
比如对于我的电脑,就是:
sudo mkdir /mnt/ubuntu
sudo mount /dev/sdb5 /mnt/ubuntu
这里需要注意一点,如果有Ubuntu有单独的boot分区,则应该挂在boot分区到/mnt/ubuntu/boot
下,我的整个Ubuntu都在一个分区上,所以这里可以忽略。
- 重新安装grub,将下面命令中的
/dev/sdX
替换为第3步中得到的引导硬盘的设备名称。省略数字号码。
sudo grub-install --boot-directory=/mnt/ubuntu/boot /dev/sdX
比如对于我的电脑,就是:
sudo grub-install --boot-directory=/mnt/ubuntu/boot /dev/sda
这一步,我第一次运行时报了一个错误,说是没找到软件。连网后,重试一次,问题解决。
接着重启,发现可以引导了。
然后是显卡驱动问题
引导修复并启动系统,在安装NVIDIA驱动后(安装过程如我这篇文章的第一张图),发现在登录界面无限循环。然后只能卸载NVIDIA驱动(Ctrl+Alt+F1进纯字符界面,用sudo apt purge nvidia-*
)。卸载后可以进系统,但是3840*2160分辨率的屏幕,十分卡顿。通过Ubuntu的System Setting下的Display,发现分辨率选项只有3840*2160这一个。
这一步主要参考了前述的第二个帖子
- Ctrl+Alt+F1进纯字符界面(因为图形界面非常卡,不愿意浪费时间等待,如果愿意等待,可以在图形界面下打开终端)。
- 编辑
/etc/default/grub
文件,参考的帖子是让加上nomodeset字样,我发现我的grub
文件已经有nomodeset
,于是我试了下删除nomodeset
。 - 然后
sudo update-grub
更新引导,并重启。发现图形界面不卡顿了,也能把分辨率改到1080P,在Software&Updates的Additional Drivers里面安装NVIDIA驱动,问题解决。
网友评论