经历了ubantu18.04卸载显导致装不回去的问题,一定不要自己一直执着于修复,因为你修复好了还有其他问题。把资料备份好,不要担心环境了重装就是了。
重装并不会把你的资料给删除,除非你重新分区了。
以下是我经历总结的指令:
🕐备份:无法进入图形页面,在tty界面,其实跟终端是一样的,不用害怕紧张。
按住ctrl +F3,就能进入。
1. 确定好自己要拷贝的文件
# cd /home/用户名/Desktop 等不同目录中查看文件
2. 挂载U盘
# fdisk -l 查看一下U盘被接入在哪个位置,以/dev/sdb1为例
# mount /dev/sdb1 /mnt 挂载U盘在/mnt下
# cd /mnt 进入U盘
# ls 查看U盘中的内容
3. 复制文件到U盘中
# cp 源文件 /mnt
# cp -r 源目录 /mnt
🕑系统自动更新,显卡掉了。不要卸载内核,卸载了会有新的出现。
解决方法:查看内核/更换到之前的内核/关机,再打开电脑(不是重启):在进入的时候选择高级选项,会出现电脑的内核选择,直接选择就行。还有一种进入grub更改,我的不管用。/更改后固定内核,不要更新。
以下是以我的为例子的指令总结。
一、内核
1.当前内核版本查看:uname -r
5.4.0-132-generic(我的电脑)
linux-headers-5.4.0-132-generic
linux-image-5.4.0-135-generic
linux-image-5.4.0-131-generic
2.已安装的系统内核版本查看: dpkg --list | grep linux-image
dpkg --get-selections |grep linux-image(包含deinstall)
3.安装指定版本的内核:sudo apt-get install linux-headers-5.4.0-135-generic linux-image-5.4.0-135-generic
4.固定系统内核版本:sudo apt-mark hold linux-image-5.4.0-132-generic
sudo apt-mark hold linux-image-generic linux-headers-generic
linux-image-generic set on hold.
5.查看当前内核启动顺序:
grep menuentry /boot/grub/grub.cfg
6.进入grub修改内核版本的顺序(不管用,最好是在启动电脑进如grub模式在高级选项哪里选择内核的版本)
sudo gedit /etc/default/grub
sudo update-grub
7.卸载内核:sudo apt-get remove --purge linux-headers-4.4.0-22
sudo apt-get remove --purge linux-image-4.2.0-22-generic123
vim 查看一些指令:
i:编辑
Esc:退出编辑
按“ :”,这个符号,然后输入q是不保存退出,输入wq是保存退出,输入q!是强制推出
🕒显卡版本下载在官网下载就行,直接用指令下载就像,不要搞那些很复杂的操作。现在的20.04以上在正常安装时候就直接给你装好了。不要再沉迷老东西,要自己关掉什么自带驱动还要进入图像界面这些操作,老掉牙咯都。
一些指令总结:
二、显卡
查看显卡版本:lspci |grep NVIDIA
01:00.0 VGA compatible controller: NVIDIA Corporation GP102 [TITAN Xp] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GP102 HDMI Audio Controller (rev a1)
查看合适的显卡版本:ubuntu-drivers devices
增加显卡安装的源:sudo add-apt-repository ppa:graphics-drivers/ppa #填加显卡安装源
sudo apt-get update
安装显卡驱动:sudo apt-get install dkms
sudo dkms install -m nvidia -v 535.146.02
sudo apt install nvidia-535(不管用)
自动安装推荐的显卡版本:sudo ubuntu-drivers autoinstall(系统推荐我电脑是470)
查看显卡安装报错日志:vim /var/lib/dkms/nvidia/535.146.02/build/make.log
卸载显卡驱动:sudo /usr/bin/nvidia-uninstall
🕒系统内核编译出问题,重装!重装!重装!
以下是我尝试的方法,没用!
三、内核编译
1.错误:ERROR: Kernel configuration is invalid.
include/generated/autoconf.h or include/config/auto.conf are missing.
Run 'make oldconfig && make prepare' on kernel src to fix it.
2.自己配置内核:make menuconfig/make oldconfig/make prepare/make scripts(报错)
四、报错
1.nvidia-smi:(驱动装了,查看有535驱动,应该是没挂上)
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
2.重新安装旧的5.4.135内核(应该是内核源码问题)
Building module:
cleaning build area...
unset ARCH; [ ! -h /usr/bin/cc ] && export CC=/usr/bin/gcc; env NV_VERBOSE=1 'make' -j16 NV_EXCLUDE_BUILD_MODULES='' KERNEL_UNAME=5.4.0-135-generic IGNORE_XEN_PRESENCE=1 IGNORE_CC_MISMATCH=1 SYSSRC=/lib/modules/5.4.0-135-generic/build LD=/usr/bin/ld.bfd modules.....(bad exit status: 2)
ERROR: Cannot create report: [Errno 17] File exists: '/var/crash/nvidia-kernel-source-535.0.crash'
Error! Bad return status for module build on kernel: 5.4.0-135-generic (x86_64)
Consult /var/lib/dkms/nvidia/535.146.02/build/make.log for more information.
3.vim ../log(日志报错内容,应该是上面的问题导致这个)
ERROR: Kernel configuration is invalid.
include/generated/autoconf.h or include/config/auto.conf are missing.
Run 'make oldconfig && make prepare' on kernel src to fix it.
4.make prepare(内核编译配置报错)
这里报错:(报错:make[1]: *** 没有规则可制作目标“arch/x86/tools/relocs_32.c”,由“arch/x86/tools/relocs_32.o” 需求。 停止。
arch/x86/Makefile:236: recipe for target 'archscripts' failed
make: *** [archscripts] Error 2)
五、解决方法
1.删除崩溃的log旧日志
2.下载对应的内核源码
3.编译内核源码
4.重新下载显卡驱动
尝试在下载显卡的位置,也就是usr/var/那里查看自己下载的源码包是不是旧的。
重装系统注意:
正常安装,不然输入法,显卡都没有。后期自己装问题又很多。
直接把就系统清理了重新安装:资料还在;如果你选择分区安装并重新划分,资料没有。无论哪种操作,资料提前备份好。