ubuntu 内核降级,切换linux内核版本
起因是安装了ubuntu 20.04 版本 其内核是5.8,用该版本内核编译 正点原子 MX6ULL 开发板的4.15版本内核时提示 文件系统报错,无论是NXP原厂还是正点原子的都报错。但是自己下载5.10版本的内核编译则顺利通过。不知道是何种原因,既然不想会重新装ubuntu 16.04 ,只能选择内核降级。
本次安装的是 linux-4.15.0-39 版本内核,其他版本大家自行选择下载
一、添加源镜像,防止出现 “E: 无法定位软件包问题 ”
1、切换到root模式
2、备份镜像源
sudo cp ~/etc/apt/sources.list ~/etc/apt/sources.list.bak
3、编辑镜像源
sudo vim /etc/apt/sources.list
4、增加镜像源,本次添加的是清华的镜像源,也可以添加其他源
在sources.list 最后一行添加以下内容
deb http://security.ubuntu.com/ubuntu trusty-security main
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
5、更新镜像
sudo apt-get update
二、下载linux 内核 (方式1)
1、查询内核列表
sudo apt-cache search linux-image 查询列表中可更新的内核
2、安装4.15.0-39版本镜像
sudo apt-get install linux-image-4.15.0-39-generic
3、安装4.15.0-39版本的内核
sudo apt-get install linux-headers-4.15.0-39-generic
4、安装4.15.0-39版本内核模块
sudo apt-get install linux-modules-4.15.0-39-generic
5、安装4.15.0-39版本的驱动
sudo apt-get install linux-modules-extra-4.15.0-39-generic
6、查询当前当前已安装的内核
dpkg -l |grep linux-image
从上面可以查看内核是否安装成功。
三 安装linux内核(方式二)
1、从内核官网或者其他地方下载linux内核安装包
2、使用cd 命令进入到安装装包目录下
3、安装内核
sudo dpkg -i *.deb
4、查询当前当前已安装的内核
dpkg -l |grep linux-image
如果报错,根据提示查找错误原因,解决后重新执行
四、切换内核版本 (重要)
众所周知,Bootloader是计算机启动时运行的第一个程序。 负责装载和传输控制信息到操作系统内核,而内核负责初始化其余的操作系统。 GNU GRUB是一个非常强大的Bootloader,可以加载很多种免费操作系统以及使用chain-loading的操作系统。
GRUB有两种不同的引导方法,一种是直接加载操作系统,另外一种是链式加载(chain-load)。通常采用的是第一种方式,因为它不需要安装或维护其他引导装载程序,GRUB能够通过这种方式从任意磁盘/分区加载操作系统。但是,后一种方式有时是必需的,因为GRUB并不支持对所有操作系统的直接加载。链式加载只支持PC BIOS和EFI平台。
GRUB由’grub.cfg’文件进行配置,通常位于/boot/grub路径下。这个文件相当灵活,但它通常不需要完全由用户手动写入
1、 查看需要使用的内核位置
gedit /boot/grub/grub.cfg
打开后如下所示,第2行明确的写着 “不要编辑该文件”。
之后我们向下查找,直至看到 menuentry ‘Ubuntu’ ,menuentry表示grub启动选项的显示条目。如下所示。
export linux_gfx_mode
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-0adfee8d-6cc2-4769-8572-b4936f092cc3' {recordfailload_videogfxmode $linux_gfx_modeinsmod gzioif [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fiinsmod part_msdosinsmod ext2set root='hd0,msdos5'if [ x$feature_platform_search_hint = xy ]; thensearch --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 0adfee8d-6cc2-4769-8572-b4936f092cc3elsesearch --no-floppy --fs-uuid --set=root 0adfee8d-6cc2-4769-8572-b4936f092cc3filinux /boot/vmlinuz-5.8.0-48-generic root=UUID=0adfee8d-6cc2-4769-8572-b4936f092cc3 ro quiet splash $vt_handoffinitrd /boot/initrd.img-5.8.0-48-generic
}
submenu 'Ubuntu 的高级选项' $menuentry_id_option 'gnulinux-advanced-0adfee8d-6cc2-4769-8572-b4936f092cc3' {menuentry 'Ubuntu,Linux 5.8.0-48-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.8.0-48-generic-advanced-0adfee8d-6cc2-4769-8572-b4936f092cc3' {recordfailload_videogfxmode $linux_gfx_modeinsmod gzioif [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fiinsmod part_msdosinsmod ext2set root='hd0,msdos5'if [ x$feature_platform_search_hint = xy ]; thensearch --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 0adfee8d-6cc2-4769-8572-b4936f092cc3elsesearch --no-floppy --fs-uuid --set=root 0adfee8d-6cc2-4769-8572-b4936f092cc3fiecho '载入 Linux 5.8.0-48-generic ...'linux /boot/vmlinuz-5.8.0-48-generic root=UUID=0adfee8d-6cc2-4769-8572-b4936f092cc3 ro quiet splash $vt_handoffecho '载入初始化内存盘...'initrd /boot/initrd.img-5.8.0-48-generic}menuentry 'Ubuntu, with Linux 5.8.0-48-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.8.0-48-generic-recovery-0adfee8d-6cc2-4769-8572-b4936f092cc3' {recordfailload_videoinsmod gzioif [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fiinsmod part_msdosinsmod ext2set root='hd0,msdos5'if [ x$feature_platform_search_hint = xy ]; thensearch --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 0adfee8d-6cc2-4769-8572-b4936f092cc3elsesearch --no-floppy --fs-uuid --set=root 0adfee8d-6cc2-4769-8572-b4936f092cc3fiecho '载入 Linux 5.8.0-48-generic ...'linux /boot/vmlinuz-5.8.0-48-generic root=UUID=0adfee8d-6cc2-4769-8572-b4936f092cc3 ro recovery nomodeset dis_ucode_ldr echo '载入初始化内存盘...'initrd /boot/initrd.img-5.8.0-48-generic}menuentry 'Ubuntu,Linux 5.8.0-45-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.8.0-45-generic-advanced-0adfee8d-6cc2-4769-8572-b4936f092cc3' {recordfailload_videogfxmode $linux_gfx_modeinsmod gzioif [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fiinsmod part_msdosinsmod ext2set root='hd0,msdos5'if [ x$feature_platform_search_hint = xy ]; thensearch --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 0adfee8d-6cc2-4769-8572-b4936f092cc3elsesearch --no-floppy --fs-uuid --set=root 0adfee8d-6cc2-4769-8572-b4936f092cc3fiecho '载入 Linux 5.8.0-45-generic ...'linux /boot/vmlinuz-5.8.0-45-generic root=UUID=0adfee8d-6cc2-4769-8572-b4936f092cc3 ro quiet splash $vt_handoffecho '载入初始化内存盘...'initrd /boot/initrd.img-5.8.0-45-generic}menuentry 'Ubuntu, with Linux 5.8.0-45-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.8.0-45-generic-recovery-0adfee8d-6cc2-4769-8572-b4936f092cc3' {recordfailload_videoinsmod gzioif [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fiinsmod part_msdosinsmod ext2set root='hd0,msdos5'if [ x$feature_platform_search_hint = xy ]; thensearch --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 0adfee8d-6cc2-4769-8572-b4936f092cc3elsesearch --no-floppy --fs-uuid --set=root 0adfee8d-6cc2-4769-8572-b4936f092cc3fiecho '载入 Linux 5.8.0-45-generic ...'linux /boot/vmlinuz-5.8.0-45-generic root=UUID=0adfee8d-6cc2-4769-8572-b4936f092cc3 ro recovery nomodeset dis_ucode_ldr echo '载入初始化内存盘...'initrd /boot/initrd.img-5.8.0-45-generic}menuentry 'Ubuntu,Linux 4.15.0-39-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-39-generic-advanced-0adfee8d-6cc2-4769-8572-b4936f092cc3' {recordfailload_videogfxmode $linux_gfx_modeinsmod gzioif [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fiinsmod part_msdosinsmod ext2set root='hd0,msdos5'if [ x$feature_platform_search_hint = xy ]; thensearch --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 0adfee8d-6cc2-4769-8572-b4936f092cc3elsesearch --no-floppy --fs-uuid --set=root 0adfee8d-6cc2-4769-8572-b4936f092cc3fiecho '载入 Linux 4.15.0-39-generic ...'linux /boot/vmlinuz-4.15.0-39-generic root=UUID=0adfee8d-6cc2-4769-8572-b4936f092cc3 ro quiet splash $vt_handoffecho '载入初始化内存盘...'initrd /boot/initrd.img-4.15.0-39-generic}menuentry 'Ubuntu, with Linux 4.15.0-39-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-39-generic-recovery-0adfee8d-6cc2-4769-8572-b4936f092cc3' {recordfailload_videoinsmod gzioif [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fiinsmod part_msdosinsmod ext2set root='hd0,msdos5'if [ x$feature_platform_search_hint = xy ]; thensearch --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 0adfee8d-6cc2-4769-8572-b4936f092cc3elsesearch --no-floppy --fs-uuid --set=root 0adfee8d-6cc2-4769-8572-b4936f092cc3fiecho '载入 Linux 4.15.0-39-generic ...'linux /boot/vmlinuz-4.15.0-39-generic root=UUID=0adfee8d-6cc2-4769-8572-b4936f092cc3 ro recovery nomodeset dis_ucode_ldr echo '载入初始化内存盘...'initrd /boot/initrd.img-4.15.0-39-generic}menuentry 'Ubuntu,Linux 4.8.0-040800-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.8.0-040800-generic-advanced-0adfee8d-6cc2-4769-8572-b4936f092cc3' {recordfailload_videogfxmode $linux_gfx_modeinsmod gzioif [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fiinsmod part_msdosinsmod ext2set root='hd0,msdos5'if [ x$feature_platform_search_hint = xy ]; thensearch --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 0adfee8d-6cc2-4769-8572-b4936f092cc3elsesearch --no-floppy --fs-uuid --set=root 0adfee8d-6cc2-4769-8572-b4936f092cc3fiecho '载入 Linux 4.8.0-040800-generic ...'linux /boot/vmlinuz-4.8.0-040800-generic root=UUID=0adfee8d-6cc2-4769-8572-b4936f092cc3 ro quiet splash $vt_handoffecho '载入初始化内存盘...'initrd /boot/initrd.img-4.8.0-040800-generic}menuentry 'Ubuntu, with Linux 4.8.0-040800-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.8.0-040800-generic-recovery-0adfee8d-6cc2-4769-8572-b4936f092cc3' {recordfailload_videoinsmod gzioif [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fiinsmod part_msdosinsmod ext2set root='hd0,msdos5'if [ x$feature_platform_search_hint = xy ]; thensearch --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 0adfee8d-6cc2-4769-8572-b4936f092cc3elsesearch --no-floppy --fs-uuid --set=root 0adfee8d-6cc2-4769-8572-b4936f092cc3fiecho '载入 Linux 4.8.0-040800-generic ...'linux /boot/vmlinuz-4.8.0-040800-generic root=UUID=0adfee8d-6cc2-4769-8572-b4936f092cc3 ro recovery nomodeset dis_ucode_ldr echo '载入初始化内存盘...'initrd /boot/initrd.img-4.8.0-040800-generic}
}
骑上就是grub开机启动界面显示的菜单结构,可以概括如下:
0 Ubuntu
1 Ubuntu 高级选项 1>0 Ubuntu,Linux 5.8.0-48-generic1>1 Ubuntu, with Linux 5.8.0-48-generic (recovery mode)1>2 Ubuntu, with Linux 5.8.0-45-generic1>3 Ubuntu,Linux 5.8.0-45-generic (recovery mode)1>4 Ubuntu, with Linux 4.15.0-39-generic1>5 Ubuntu, with Linux 4.15.0-39-generic (recovery mode)1>6 Ubuntu, Linux 4.8.0-040800-generic1>7 Ubuntu, with Linux 4.8.0-040800-generic (recovery mode)
因此 我们要切换的内核版本是 Ubuntu 高级选项下的第5个。由于默认从0计算因此 Linux 4.15.0-39-generic的顺序为 1> 4。
之后关闭 grub.cfg文件即可。
2、更改grub默认启动项
该命令需要root模式下操作
sudo gedit /etc/default/grub
3、切换启动内核
打开grub文件后,找到 GRUB_DEFAULT=0
该项定义,将其修改为 GRUB_DEFAULT=“1 > 4”
其中’1>4’就表示选择ubuntu高级选项中的 第4个 内核文件(由于从0计算,实际是第5个文件)。
4、更新开机引导文件
sudo update-grub
5、重启内核
reboot
6、开机后 查看内核等级,验证是否成功
uname
ubuntu 内核降级,切换linux内核版本相关推荐
- 如何在Ubuntu/CentOS上安装Linux内核4.0
如何在Ubuntu/CentOS上安装Linux内核4.0 大家好,今天我们学习一下如何从Elrepo或者源代码来安装最新的Linux内核4.0.代号为'Hurr durr I'm a sheep'的 ...
- Ubuntu 18.04 修复 Linux 内核的 11 个漏洞
百度智能云 云生态狂欢季 热门云产品1折起>>> Canonical 修复 Ubuntu 18.4 LTS Linux 内核的安全性问题,漏洞影响 Ubuntu 和其所有的衍生版 ...
- 【Linux 内核】编译 Linux 内核 ⑦ ( 安装内核模块 | 安装内核 | 重启系统 | 查看当前内核版本 )
文章目录 一.安装内核模块 二.安装内核 三.重启系统 四.查看当前内核版本 一.安装内核模块 确保 Linux 内核编译完成 , 没有任何报错之后 ; 参考 [Linux 内核]编译 Linux 内 ...
- 【Linux 内核】编译 Linux 内核 ① ( 下载指定版本的 Linux 内核源码 | Linux 内核版本号含义 | 主版本号 | 次版本号 | 小版本号 | 稳定版本 )
文章目录 一.下载 Linux 内核 1.下载最新版本 Linux 内核 2.下载指定版本 Linux 内核 二.Linux 内核版本号含义 一.下载 Linux 内核 1.下载最新版本 Linux ...
- linux内核安装教程,Linux内核5.9的最重要功能及安装方法
原标题:Linux内核5.9的最重要功能及安装方法 Linux内核5.9带来了吸引数据中心管理员的诸多性能提升.本文作者着重介绍了改进之处,并介绍了如何安装主线内核. 与5.8一样,Linux内核5. ...
- 编译3.0的linux内核,1-3-编译Linux内核
1-3-编译Linux内核 1.将Linux源码包拷贝到共享文件夹. 2.进入共享文件夹. 3.解压,命令#tar xvfj Kernel_3.0.8_TQ210_for_Linux_v2.2.tar ...
- Linux内核学习之Linux内核“源码目录”
一.Linux内核版本前期知识介绍 : 我们先去Linux官网看看,它的网站是:kernel.org: 我们可以看到最新稳定版本已经来到了5.6.7了,不过在这之前我们稍微了解一下版本号这一串数字的含 ...
- 【Linux 内核】编译 Linux 内核 ⑤ ( 查看 .config 编译配置文件 | 正式编译内核 )
文章目录 一.查看 .config 编译配置文件 二.正式编译内核 一.查看 .config 编译配置文件 在上一篇博客 [Linux 内核]编译 Linux 内核 ④ ( 打开 Linux 内核编译 ...
- 简述arm linux内核启动流程,Linux内核启动过程和Bootloader(总述)
1.Linux内核启动过程概述 一个嵌入式 Linux 系统从软件角度看可以分为四个部分:引导加载程序(Bootloader),Linux 内核,文件系统,应用程序.其中 Bootloader是系统启 ...
- 武汉linux内核好找吗,Linux内核入门
Linux内核入门 收藏 如何获取Linux内核源代码 下载Linux内核当然要去http://www.kernel.org/了,网站提供了两种文件下载,一种是完整的Linux内核,另一种是内核增量补 ...
最新文章
- R语言可视化包ggplot2包设置轴断点位置实战(Axis Breaks)、即自定义X轴和Y轴的数值标记位置
- 微软研究院开源DialoGPT:你有什么梦想?「让世界充满机器人」
- 人工智能其实并不客观,算法会加剧刻板印象
- golang post get 请求 简介
- map.js的编写(js编写一个对象的方式)
- 数百个 HTML5 例子学习 HT 图形组件 – 拓扑图篇
- 如何判断当面的网页加载完成?
- Struts2+Spring+Hibernate step by step 11 ssh拦截验证用户登录到集成
- scp命令密码写命令里_dos命令net图文教程,net user添加删除用户修改密码批处理脚本...
- 【论文解读】IJCAI2019: 面向中文NER 基于lexicon rethinking的CNN模型
- 个人查阅资料-Sql语句
- jsonp和ajax的区别,dataType jsonp和JSON之间的区别
- PHP正则匹配html标签
- iis6.0渗透实战笔记
- 环球电子公司将为新的Virgin TV 360平台提供语音遥控器
- 从零开始的VUE项目-09(vue-alipayer-v视频播放)
- 填核酸采样资料,手机号填错了,身份证号码没错。
- 伦敦国王学院EEM专业介绍
- 程序员幽默:让你笑到抽搐的自黑段子
- 使用nginx实现请求转发的功能
热门文章
- tensorflow和Python关系
- Sqlserver2014远程远程连接
- C语言四种方法求最大公约数
- SQL是什么?SQL能做什么?
- 建筑八大员培训湖北标准员培训工程施工现场标准员的工作导则
- JVM中对象进入老年代的3种情况
- 迪文屏幕T5L平台学习笔记七:RS485测试
- 用包过滤技术实现个人防火墙
- 麦克风阵列技术 三 ( 声源定位 波束形成 去混响 麦克风阵列结构设计 声学结构确认流程)
- notes获取计算机名,在Lotus Notes数据库中获取最近读取的文档(Get recently read document in Lotus Notes Database)...