深度好文:解决Ubuntu 18.04安装nvidia显卡驱动,导致内核不匹配:无需重装系统修复内核

news2024/9/29 12:56:54

深度好文:解决Ubuntu 18.04安装nvidia显卡驱动,导致内核不匹配:无需重装系统修复内核

目录

        • 一、问题描述
        • 二、尝试修复
        • 三、安装Nvidia驱动和CUDA并配置cuDNN
        • 四、总结

一、问题描述

昨天打算更新一下Ubuntu 18.04的显卡驱动,以支持更新版本的cuda和Pytorch。结果在安装新版本驱动的时候,显卡驱动和系统内核版本不一致,导致进不去系统了。后来参考解决Ubuntu 显卡驱动升级导致的 显卡驱动和内核版本不匹配的问题,非但没有解决问题,反而把系统里面原本的内核损坏了。(这个博客中的写得巨烂,首先排版就很烂,其次注意事项也不写清楚。事实上,对于Linux内核,最好别去动它。一个内核文件也不大,几百兆,就留着也不占什么空间,没有必要卸载旧的内核。装新的内核之后,配置启动方式就行了。)这下完蛋了,重启之后彻底进不去系统了。

二、尝试修复

进入终端模式(ctrl+alt+F1),尝试使用sudo apt install按照我以前的教程安装指定版本(5.11.0-34)的内核,结果一直失败。并且由于系统语言设置的中文,在终端模式下报错信息一直是乱码**,完全没办法定位错误。(事后复盘,我发现5.11.0-34的内核版本是针对Ubuntu 20.04LTS的,所以Ubuntu 18.04用apt install就会找不到匹配的软件包,如下图所示。)

image-20240327120301853

既然是内核的问题,还有一种方法是离线安装内核,下载指定版本内核相关文件到本地,然后安装。但是由于此前内核损坏,进系统的时候出现了bus error,导致无法识别插入的U盘。这个方法也行不通。

所以这个时候,我们需要正常显示报错信息和提示,这样我们才方便定位排查错误。具体做法可以参考:Ubuntu系统误删内核后修复方法。流程总结如下:

  1. 准备一个空的U盘,下载Ubuntu镜像制作启动盘。这里推荐使用国产开源软件ventoy。ventoy超级好用,有了它就无需反复格式化U盘,可以同时保存多个不同类型的镜像文件,并且正常使用U盘。
  2. 更改bios启动方式,进入时选择”try Ubuntu without installing“。
  3. 在进入的Ubuntu系统内挂载原系统根目录,boot目录和必要的系统目录。这一步需要用到fdisk -lmount命令。
  4. 使用chroot命令更改根目录到挂载的原系统根目录,这样就可以进入原系统了。
  5. 在原系统内使用apt(在线安装)或者dpkg(离线安装)命令安装新的内核。
  6. 安装完成之后,使用sudo update-grub来更新一下引导。
  7. 重启,进入Ubuntu高级选项,选择安装的新内核,即可进入系统。
  8. 进入系统后,别忘了更改默认启动内核。具体方法可以参考我之前的教程,提供了三种方法修改启动内核。

在这个过程中,我遇到的坑如下:

  1. 在挂载原系统目录时,根目录在一个分区上,/usr目录在另一个分区上。一开始我只挂载了根目录所在分区,没有挂载/usr目录的分区。导致我使用chroot命令之后,一直使用不了aptdpkg命令。后来,询问GPT-4才发现问题所在。(GPT is all you need!!!)

    image-20240327140310348

  2. 使用apt-get install linux-image-generic时,下载安装的内核版本时4.15.0,这个版本也比较老了。我通过这个内核进入系统之后发现无法上网,没有深究。后来通过离线方式安装了5.15.0的内核版本,离线安装的方式可以参考Linux系统-Ubuntu安装指定版本的内核。需要注意的是,下载的文件应该是不带low-latency的四个文件,而不是参考教程里面说的3个,可参考下图中GPT给出的建议。具体安装流程总结如下:

    image-20240327151404877

  3. 选择内核版本的时候,不能太高也不能太低,亲测5.8.0可用。如果版本太高,例如:5.15.0版本,可能因为依赖问题(5.15.0的内核头文件需要libc6>= 2.34,但是Ubuntu18.04里面libc6版本为 2.27)无法安装headers文件,导致后续安装显卡驱动的时候报错。ERROR: Unable to find the kernel source tree for the currently running kernel. 出现这个错误就是说明没有安装成功headers文件。关于这一点,有个博客写得蛮好的。不过,他的解决方式在我的环境里面没有work。我是直接手动安装了5.8.0的headers才成功。

三、安装Nvidia驱动和CUDA并配置cuDNN

这一部分安装我之前的教程来就可以了,没什么可说的。安装驱动的时候,记得加上--no-x-check --no-nouveau-check --no-opengl-files

这里需要注意一下,修改/etc/profile文件来添加cuda的环境变量时,一定要仔细检查,不然出啥问题了,在进系统时会出现输入密码循环登录的情况。解决方案也很简单,进入终端模式,输入用户名,密码,把/etc/profile修改回去,再重启即可。如果是个人用户使用,在~/.bashrc这种个人级别的配置文件添加cuda路径是最好的。

四、总结

折腾上面这些东西,花了我一个下午+一个晚上。中途一度想放弃重装系统,但是数据丢失的代价太大了,还是坚持下来了。以后可以多问问GPT,把情况描述清楚,GPT-4给出的答案都很靠谱,基本和自己上网搜的解决方案差不多,可以显著提升效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1550421.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

element-ui checkbox 组件源码分享

简单分享 checkbox 组件,主要从以下三个方面来分享: 1、组件的页面结构 2、组件的属性 3、组件的方法 一、组件的页面结构 二、组件的属性 2.1 value / v-model 属性,绑定的值,类型 string / number / boolean,无…

存储的过程

一、存储过程 1.1 概述 存储过程可以轻松而高效的去完成这个需求,有点类似shell脚本里的函数 1.2 特点 存储过程在数据库中创建并保存,它不仅仅是 SQL 语句的集合,还可以加入一些特殊的控制结构,也可以控制数据的访问方式。存储过…

web前端面试题----->VUE

Vue的数据双向绑定是通过Vue的响应式系统实现的。具体原理: 1. Vue会在初始化时对数据对象进行遍历,使用Object.defineProperty方法将每个属性转化为getter、setter。这样在访问或修改数据时,Vue能够监听到数据的变化。 2. 当数据发生变化时…

【R语言从0到精通】-1-下载R语言与R最基础内容

在本科,没有人教的情况下,艰难的自学了R语言,因此我想能出一个R语言系列教程,在帮助大家的同时,温故而知新,特别如果你是生物或者医学从业者,那本教程正好合适,因为我也是生物人&…

Microsoft .NET 应用程序性能监控

什么是 .NET监控 Microsoft .NET 监视在确保可以开发和部署应用程序而不必面对性能滞后或中断方面发挥着重要作用。它使用警报、增长趋势报告和数据可视化技术来帮助管理员确保 Microsoft .NET 平台的全天候可用性。Microsoft.NET 性能监视是一种检测性能异常的先发制人方法&a…

2024年腾讯云4核8g服务器并发数、优惠价格、支持多少人在线?

腾讯云4核8G服务器价格:轻量4核8G12M优惠价格646元15个月、CVM S5服务器4核8G配置1437元买1年送3个月。腾讯云4核8G服务器支持多少人同时在线?支持30个并发数,可容纳日均1万IP人数访问。腾讯云百科txybk.com整理4核8G服务器支持多少人同时在线…

动手学机器学习笔记

初探机器学习 “两只手”代表的是人工智能可以做的两大类任务,即预测与决策。 “四条腿”则代表支撑人工智能的四大类科学技术,包括搜索、推理、学习和博弈。 非参数化模型(nonparametric model):与参数化模型相反&…

四川易点慧电子商务抖音小店:安全购物,无忧体验

在当今这个电子商务飞速发展的时代,线上购物已成为人们日常生活中不可或缺的一部分。然而,随着网络交易的日益频繁,安全问题也逐渐成为了消费者最为关注的问题之一。四川易点慧电子商务抖音小店深知消费者的担忧,始终将安全保障放…

2024消息预知在线客服系统php网站源码

新增消息预知&#xff0c;消息撤回&#xff0c;消息已读未读&#xff0c; 修复需要刷新才能收到消息 修复客户来源地址 修复消息提示音 修复桌面推送提醒 要求服务器环境&#xff1a; 宝塔面板 &#xff0c;Nginx1.16-1.18&#xff0c;7.2.23<php<7.3&#xff08;因…

LabVIEW单片机的废气再循环EGR检测系统

LabVIEW单片机的废气再循环EGR检测系统 实现了一种基于LabVIEW和STM32F103VET6单片机的EGR&#xff08;废气再循环&#xff09;检测系统&#xff0c;监测和控制船用二冲程柴油机的EGR运行状态。通过替代传统的NI采集卡&#xff0c;系统不仅降低了成本&#xff0c;同时也提升了数…

居家办公:职场新趋势与挑战

随着科技的飞速发展&#xff0c;互联网和智能设备的普及&#xff0c;居家办公逐渐成为职场新趋势。近年来&#xff0c;受疫情影响&#xff0c;许多企业纷纷采取居家办公模式&#xff0c;以保障员工健康安全。然而&#xff0c;居家办公在带来便利的同时&#xff0c;也带来了一系…

基于Pytorch的验证码识别模型应用

前言 在做OCR文字识别的时候&#xff0c;或多或少会接触一些验证码图片&#xff0c;这里收集了一些验证码图片&#xff0c;可以对验证码进行识别&#xff0c;可以识别4到6位&#xff0c;纯数字型、数字字母型和纯字母型的一些验证码&#xff0c;准确率还是相当高&#xff0c;需…

机器学习——聚类算法-KMeans聚类

机器学习——聚类算法-KMeans聚类 在机器学习中&#xff0c;聚类是一种无监督学习方法&#xff0c;用于将数据集中的样本划分为若干个簇&#xff0c;使得同一簇内的样本相似度高&#xff0c;不同簇之间的样本相似度低。KMeans聚类是一种常用的聚类算法之一&#xff0c;本文将介…

【秒杀】网课视频播放速度太慢,js提升网页视频播放速率,在浏览器中修改视频播放速度

目录 前言&#xff08;写这篇文章的缘由&#xff09; 问题描述 解决方法 1、打开开发者工具 2、点击控制台 3、输入下面这行代码 番外 自定义视频速度 番外的番外&#xff08;这块可以不看&#xff09; 结语 前言&#xff08;写这篇文章的缘由&#xff09; 作为一名2…

看一遍就理解:IO模型详解

大家好&#xff0c;今天我们一起来学习IO模型。在本文开始前呢&#xff0c;先问问大家几个问题哈~ 什么是IO呢&#xff1f;什么是阻塞非阻塞IO&#xff1f;什么是同步异步IO&#xff1f;什么是IO多路复用&#xff1f;select/epoll跟IO模型有什么关系&#xff1f;有几种经典IO模…

备考ICA----Istio实验9---熔断Circuit Breaking 实验

备考ICA----Istio实验9—熔断Circuit Breaking 实验 1. 环境准备 创建httpbin环境 kubectl apply -f istio/samples/httpbin/httpbin.yaml kubectl get svc httpbin2. 创建测试用客户端 kubectl apply -f istio/samples/httpbin/sample-client/fortio-deploy.yaml3. 创建Ht…

企业文件交换怎样进行有效防泄密管控?选对方案才能事半功倍

一、数据防泄密面临的挑战 数据流转才能释放价值&#xff0c;在企业生产经营中&#xff0c;数据和文件交换是业务有序开展的基础。文件交换会涉及不同的网络、系统及人员角色&#xff0c;存在泄露的安全风险&#xff1b;为此&#xff0c;不少企业采用或规划采用终端DLP、网络D…

C语言文件操作详解

文件是什么 在我们日常使用的电脑上我们在电脑磁盘上会看到许许多多的文件夹&#xff0c;那里面的东西其实就是文件&#xff0c;为什么我们要使用文件&#xff1f;那是因为我们的电脑肯定会要用来存储东西的&#xff0c;如果没有文件&#xff0c;那么我们的东西都全部存放在内…

ruoyi-nbcio-plus基于vue3的flowable其它元素(目前主要是元素文档)的升级修改

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 http://122.227.135.243:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a…

借助剪映软件生成原创视频(真人人声,免VIP)

civilpy&#xff1a;借助各大模型的优点生成原创视频&#xff08;真人人声&#xff09;Plus0 赞同 0 评论文章​编辑 是的&#xff0c;剪映也出了声音克隆了&#xff0c;只需要十几秒的录音就可以克隆自己的声音&#xff0c;虽然微瑕&#xff0c;但是对于不习惯机器音的很多创…