ubuntu 安装GPU黑屏 修改GRUB_Ubuntu升级安装最新内核的方法与注意事项(以18.04为例)...

请关注本头条号,每天坚持更新原创干货技术文章。

如需学习视频,请在微信搜索公众号“智传网优”直接开始自助视频学习

前言

本文主要如何安全地升级Ubuntu内核,以18.04 Server版为例纂写本教程。

我们先来了解一下什么是主线内核构建(Mainline Kernel Build)

Mainline Kernel Build是一个从kernel.org开发的一个vanilla内核,作为deb包打包。 Canonical Kernel Team构建和定制Ubuntu的内核源代码,并将其构建为.deb包,以便于apt包管理器进行安装。 只有在需要最新的内核功能的情况下才能使用Mainline内核,因为与Ubuntu一起运行的生产内核可能不太稳定。

我们可以从 Canonical Kernel Team Mainline Kernel Build官方网站查找需要的内核:

https://kernel.ubuntu.com/~kernel-ppa/mainline/

确认升级目标版本

7329a7a7cdbfac211fd5e7a38f36644d.png

确认升级目标版本

可以看出,目前Ubuntu最新的mainline内核版本为4.20.5和v5.0-rc2。确定升级内核的步聚

  1. 把当前系统所有软件包和内核升级到最新
  2. 检查当前内核版本
  3. 下载并安装新内核版本
  4. 删除旧内核

把当前系统所有软件包和内核升级到最新

zcwyou@ubuntu1804:~$ sudo apt update

已下载 61.7 MB,耗时 1分 13秒 (842 kB/s)

正在读取软件包列表… 完成

正在分析软件包的依赖关系树

正在读取状态信息… 完成

有 29 个软件包可以升级。请执行 ‘apt list --upgradable’ 来查看它们。

查询系统更新包

8e64f744417aa0c8a13b61bd4a07a19b.png

查询系统更新包

可以看出,有29个软件包需要升级。

查看哪些软件包需要升级,这个步聚非必要:

zcwyou@ubuntu1804:~$ sudo apt list --upgradable

开始升级系统所有的软件包,类似于Windows系统更新。

zcwyou@ubuntu1804:~$ sudo apt upgrade -y

[sudo] password for zcwyou:

Reading package lists… Done

Building dependency tree

Reading state information… Done

Calculating upgrade… Done

0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

1 not fully installed or removed.

After this operation, 0 B of additional disk space will be used.

Setting up docker-ce (5:18.09.1~3-0~ubuntu-bionic) …

update-alternatives: warning: forcing reinstallation of alternative /usr/bin/dockerd-ce because link group dockerd is broken

34d68bdee0cd5782c5f6d4b332ee17ae.png

系统更新

e38f83468750c13d89198e1e6eba5101.png

正在显示系统更新过程

重启服务器,既然已经决定要升级内核了,服务器应该可以重启吧?

zcwyou@ubuntu1804:~$ sudo reboot

重新登录系统,再次检查可升级包,并使用以下命令。

zcwyou@ubuntu1804:~$ sudo apt list --upgradeable

如果执行命令的结果为:Listing... Done,就说明系统组件已经是最新的,没有需要更新的软件。

检查当前内核版本

zcwyou@ubuntu1804:~$ uname -r

4.15.0-43-generic

可以看出当前的内核版本为4.15.0-43-generic

下载并安装最新的内核

正如上文所说的,主线内核的官方地址为https://kernel.ubuntu.com/~kernel-ppa/mainline/

我们的目标是安装最新稳定的版本v4.20.5,它对应的下载页面是:

https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.20.5/

下载最新内核文件

0d3162487c4754a9b37419f2ddf2ffda.png

下载最新内核文件

选择我们服务器的架构,我们的服务器一般使用AMD64架构吧?注意,由于64位架构是AMD先推出的,所以Intel 64位处理器也被称为AMD64架构。所以这里并不仅仅是指因特尔的64位CPU。

generic表示通用版内核。

lowlatency表示低延迟内核。

我们一般选择通用版内核

先安装下载工具wget

zcwyou@ubuntu1804:~$ sudo apt install -y wget

创建专用目录

zcwyou@ubuntu1804:~$ cd ~ && mkdir newkernel && cd newkernel

我们应该使用wget分别下载4个generic版本的内核文件:

wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.20.5/linux-headers-4.20.5-042005_4.20.5-042005.201901260434_all.debwget https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.20.5/linux-headers-4.20.5-042005-generic_4.20.5-042005.201901260434_amd64.debwget https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.20.5/linux-image-unsigned-4.20.5-042005-generic_4.20.5-042005.201901260434_amd64.debwget https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.20.5/linux-modules-4.20.5-042005-generic_4.20.5-042005.201901260434_amd64.deb

使用dpkg安装最新内核:

zcwyou@ubuntu1804:~$ sudo dpkg -i *.deb

看到如下即表示安装成功:

Replacing config file /run/grub/menu.lst with new version

Updating /boot/grub/menu.lst … done

/etc/kernel/postinst.d/zz-update-grub:

Generating grub configuration file …

Found linux image: /boot/vmlinuz-4.20.5-042005-generic

Found initrd image: /boot/initrd.img-4.20.5-042005-generic

Found linux image: /boot/vmlinuz-4.15.0-43-generic

Found initrd image: /boot/initrd.img-4.15.0-43-generic

Found linux image: /boot/vmlinuz-4.15.0-29-generic

Found initrd image: /boot/initrd.img-4.15.0-29-generic

done

安装最新内核:

393f8010e29fc21f35b3d9750f51184f.png

安装最新内核

更新grub,其实上面一步安装时也会自己更新grub配置。

zcwyou@ubuntu1804:~$ sudo update-grub

重启服务器

zcwyou@ubuntu1804:~$ sudo reboot

进入系统后,重新确认版本。

zcwyou@ubuntu1804:~$ uname -r

4.20.5-042005-generic

已经看到内核已经升级为最新版本4.20.5-042005-generic

验证刚刚安装的内核

3a3f64e819c0b8932861d56ee94b8881.png

验证刚刚安装的内核

删除旧内核

我们需要借助byobu这个工具删除旧内核:

oucanrong@zcwyou:~$ sudo apt install byobu -y

安装byobu用于删除旧内核

67613aa24909b224b737f630deb63e4e.png

安装byobu用于删除旧内核

查看系统已经安装的内核:

oucanrong@zcwyou:~$ dpkg -l | grep linux-image

查询当前系统的内核包

eb98ff8389153126cc54c94c195e41fb.png

查询当前系统的内核包

使用byobu删除旧内核,

oucanrong@zcwyou:~$ sudo purge-old-kernels

默认情况下,byobu将在系统上至少保留2个内核版本,以确保在第一个失败时具有备用内核。

使用byobu删除旧内核

3f3f37fba68c78c6215ffc997d8706e6.png

使用byobu删除旧内核

如果你想保留唯一一个(最新的)内核,那么你可以使用下面的命令除去一个内核以外的所有内核。执行以下命令:

oucanrong@zcwyou:~$ purge-old-kernels --keep 1 -q

正常情况,purge-old-kernels命令会自动更新grub,为了保证安全,我们可以考虑再更新一次。

oucanrong@zcwyou:~$ sudo update-grub

Ubuntu内核现在从主线内核版本升级到最新版本4.20.5-042005-generic,旧的内核版本已从系统中删除,以释放磁盘空间。

总结:内核是Linux系统中最基础最重要的文件,即使你是一个Linux老手,也不建议手工升级和删除,强烈建议使用工具进行操作,避免发生严重后果。

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

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

相关文章

linux配置网卡自动获取的命令,linux 命令行下配置网卡自动获取 IP

linux 下配置网络,最方便的还是用图形界面,然而有时候必须在命令行下操作,我知道可以通过 ifconfig 设置 ip (192.168.1.20) 和掩码,route 添加网关(192.168.1.1), /etc/resolv.conf 中指定 DNS,比如&#…

send tcp char far_TCP/IP之传输层详解

1. 传输层特征传输层位于TCP/IP协议族中的第4层,负责在网络主机中创建虚拟传输控制协议TCP,或用户数据报协议UDP,也叫“Transport Layer”。此层向其主机上运行的应用程序发送和接收数据。传输层将端口号分配给在主机上的应用程序中运行的进程…

linux 从光盘安装数据,LINUX访问光盘数据

实验01:访问光盘数据实验目标熟练linux光盘的安装访问光盘的数据实验步骤[rootlocalhost ~]# umount /dev/cdrom[rootlocalhost ~]# ls /media/[rootlocalhost~]#二.手动挂载1.指定光盘安装位置[rootlocalhost~]# mount /dev/cdrom /media/mount:block d…

python库_Python 基本功: 2. 学会调用库

在完成 基本功教程1 之后:多多教Python:Python 基本功: 1. Hello world​zhuanlan.zhihu.com你已经成功完成了第一个 Python 应用程序,并且运用了三种不同的创作工具。接下来,我们先来从宏观的角度了解一下 Python 宇宙&#xff0…

arm linux 加载.a,如何将libc.a链接到arm-linux中的共享库中使用arm-none-linux-gnueabi-gcc...

在一个项目中,我的同事创建了一个静态库,例如liba.a,它与app链接.在liba.a中,他将libc malloc()覆盖为其所有者版本.我创建了一个共享库libs.so,它也与app链接.问题是当我的libs.so与app链接时,我的libs.so中使用的malloc()将是liba.a中的那个,而不是标准libc.so中的那个,这会导…

抽象工厂模式java_《JAVA与模式》之抽象工厂模式

场景问题举个生活中常见的例子——组装电脑,我们在组装电脑的时候,通常需要选择一系列的配件,比如CPU、硬盘、内存、主板、电源、机箱等。为讨论使用简单点,只考虑选择CPU和主板的问题。事实上,在选择CPU的时候&#x…

c语言关键用法大全,c语言关键字的用法详解

《c语言关键字的用法详解》由会员分享,可在线阅读,更多相关《c语言关键字的用法详解(10页珍藏版)》请在人人文库网上搜索。1、最新 料推荐1. Static 用法1.1 static 声明的变量在 C语言中有两方面的特征:1) 、变量会被放在程序的全局存储区中…

java架构师_什么样的经历,才能领悟成为Java架构师?

最近我发现,无论是博客也好,还是我写的技术专栏也好,经常会收到很多朋友的留言,留言的内容除了讨论技术问题以外,问的最多的,莫过于职业生涯规划相关的了。例如:我刚毕业,如何入行Ja…

c语言实验报告9 四川师范大学,四川师范大学c语言实验报告.docx

四川师范大学c语言实验报告.docx下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。2.下载的文档,不会出现我们的网址水印。3、该文档所得收入(下载内容预览)归上传者、原创作者…

c语言位运算八进制转二进制,C语言十进制转换二进制八,十六进制。二进制转十进制。...

C语言十进制转换二进制八,十六进制。十进制转二进制有个计算公式,就是除以2取余再倒序显示余数就是了。可以根据公式写。八制进公式也同理。十六进制有点不一样,大于9的要转为字母。A,B,C,D,E,F。#include void totwo();void toeight();void …

浏览器崩溃_微软最新系统再迎“喜报”:更多用户的浏览器开始崩溃

Windows 10又闯祸了。事实上,新浪VR最近已接二连三地道了该系统的严重Bug问题,而这一次又跟浏览器有关。有很多用户在升级到最新版Windows 10 v2004之后发现,每次只要重启计算机,自己正常使用的Chorme就会被强制注销,而…

用python画画简单代码_震撼!用Python开发网站如此简单

Flask是一个基于Python语言的微型Web框架。之所以被称为微型,是因为其核心非常小,但是该Web框架简约而不简单,具有很强的扩展能力。本文介绍如何编写和运行第一个Flask Web应用程序。当然,阅读本文之前,需要读者有一定…

c语言中char函数返回值,用于返回char的C函数的PInvoke

我正在尝试编写一些从非托管DLL调用方法的C#代码。dll中的函数原型为:extern "C" __declspec(dllexport) char *foo(void);在C#中,我首先使用:[DllImport(_dllLocation)]public static extern string foo();…

电脑有摄像头吗_网络答辩来了,我摄像头呢???

我们学校已经确定要网络答辩了。今明两天是预演答辩,就是指导老师带着我们一起熟悉下钉钉的使用流程,模拟一下答辩的过程,以免因为自己的不熟练而影响答辩的成绩。我们老师的意思,正式网络答辩过程中,因为自己的不熟练…

grubbs检测c语言,Grubbs算法检测离群值

▲概述:一组测量数据中,如果个别数据偏离平均值很远,那么这个(这些)数据称作“可疑值”。如果用统计方法—例如格拉布斯(Grubbs)法判断,能将“可疑值”从此组测量数据中剔除而不参与平均值的计算,那么该“可疑值”就称…

将十个数进行从大到小的顺序进行排列_如何进行商品ABC分类管理

​ ABC管理法是根据事物的经济、技术等方面的主要特征,运用数理统计方法,进行统计、排列和分析,抓住主要矛盾,分清重点与一般,从而有区别地采取管理方式的一种定量管理方法。又称主次分析法 、ABC分析法、分类管理法、…

c语言around用法,KET基础语法:介词among和around的用法及例句

孩子们开始学习KET考试后,标志着他们开始系统地学习语法,对孩子们来说是不小的挑战。复杂的语法时态、不同类型的介词、短语等,都要求他们掌握正确的复习方法,才能避免学习语法后,而不知道如何运用的误区。而学会错题整…

vue函数如何调用其他函数?_python函数调用的四种方式

第一种:参数按顺序从第一个参数往后排#标准调用运行结果:第二种:#关键字调用注意:关键调用从哪开始的,从哪以后都必须使用关键字调用除了‘*’收集参数。不能写成这样的:keyword_invoke(y1, 2),…

c语言酒店管理系统设计目的,C语言酒店管理系统设计.doc

《C程序设计》课程设计报告《C程序设计》课程设计报告班级 计科101班 学号 37 姓名 毛翔 得分一 目的加深对C/C语言知识的理解,扩大相关知识面,培养对这些知识的应用能力。通过一个实际问题的C/C语言源程序的编写和调试,提高综合运用C/C语言、…

android 基类封装用法,Android 基类封装之Fragment【原创】

现在的Android开发中,Activity和Fragment都是必不可少的,正如上篇博客所写,我们都会封装一个基类的Activity来做一些公共基础的操作。对于Fragment应用的越发广泛,在实际开发中,我们也应当封装一个基础的Fragment&…