本次是在win10自带的hyper-v上安装Ubuntu 16.04 server虚拟机进行试验(desktop版本类似),ubuntu的系统源代码编译后大概需要15G的内存空间,加上压缩包,及编译之后安装modules, kernel等等,大概需要20G空间.

1, 下载Ubuntu Server

http://releases.ubuntu.com/16.04/ubuntu-16.04.7-server-amd64.iso

镜像大概800多M,国内下载比较慢,可以用迅雷(2M/s还是没问题的)等下载工具加速下载.

2, 安装Ubuntu server

2.1, 设置hyper-v虚拟机环境,存储空间不小于25G;

2.2, 安装Ubuntu server,具体安装步骤百度.

3, 编译并安装

有两种替换内核的方式.

3.1, 编译安装(方式一)

# 查看系统当前kernel版本
$ uname -a
Linux ubuntu 4.4.0-142-generic #168-Ubuntu SMP Wed Jan 16 21:00:45 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux# 查看可用linux source
$ sudo apt-get update
$ apt-cache search linux-source
linux-source - Linux kernel source with Ubuntu patches
linux-source-4.4.0 - Linux kernel source for version 4.4.0 with Ubuntu patches
linux-source-4.10.0 - Linux kernel source for version 4.10.0 with Ubuntu patches
linux-source-4.11.0 - Linux kernel source for version 4.11.0 with Ubuntu patches
linux-source-4.13.0 - Linux kernel source for version 4.13.0 with Ubuntu patches
linux-source-4.15.0 - Linux kernel source for version 4.15.0 with Ubuntu patches
linux-source-4.8.0 - Linux kernel source for version 4.8.0 with Ubuntu patches# 我们下载上面结果种最新的4.15.0
$ sudo apt-get install linux-source-4.15.0# 下载完成之后,文件存放在/usr/src下面
$ ls -l /usr/src
drwxr-xr-x 27 root root 4096 Sep 27 14:02 linux-headers-4.4.0-142
drwxr-xr-x  7 root root 4096 Sep 27 14:02 linux-headers-4.4.0-142-generic
drwxr-xr-x  4 root root 4096 Sep 27 14:34 linux-source-4.15.0
lrwxrwxrwx  1 root root   47 Sep  9 00:19 linux-source-4.15.0.tar.bz2 -> linux-source-4.15.0/linux-source-4.15.0.tar.bz2# 复制一份到我们的工作目录,解压和编译
$ sudo cp /usr/src/linux-source-4.15.0/linux-source-4.15.0.tar.bz2 ~/linux# 解压
$ cd ~/linux
$ tar -xvf linux-source-4.15.0.tar.bz2# 搭建编译环境
$ sudo apt-get install -y gcc g++ vim flex bison libssl-dev libelf-dev openssl bc libncurses5-dev# 编译
$ cd ~/linux/linux-source-4.15.0
$ cp /boot/config-${version} .config   #使用ubuntu原本的配置作为编译的.config
$ make menuconfig    #不进行任何操作,保存退出
$ make -j2# 安装
$ sudo make modules_install
$ sudo make install# 不用做任何操作,重启自动进入新编译的内核,也可以在grub启动时配置advance选项指定内核启动
$ sudo reboot# 进入系统验证,就会看到是新编译的版本信息
$ uname -a
Linux ubuntu 4.15.18 #1 SMP Sun Sep 27 14:46:06 +08 2020 x86_64 x86_64 x86_64 GNU/Linux

3.2, 镜像安装(方式二)

需要注意的是,ubuntu 16.04默认使用的是4.4的内核,/boot中的config也是4.4的,那么有些配置和我们使用的4.15的就可能有些差异,我们通过如下方法获取4.15的config, 原理很简单,除了3.1中编译内核源码,然后安装的方式之外,我们还可以使用ubuntu已经编译好的镜像,直接下载安装指定版本,就可以得到指定版本的镜像和.config文件.

参考: https://jingyan.baidu.com/article/17bd8e527a915085ab2bb89c.html

# 查看可用的镜像
$ apt-cache search linux | grep linux-image# 选择一个进行安装,这里我们安装4.15的,安装image和headers
sudo apt-get install linux-image-4.15.0-99-generic linux-headers-4.15.0-99-generic# 安装后重启,在grub的advance选项选择内核即可
sudo reboot

我在这里提供了4.15的config,所以,3.2步骤可以不做,直接用我提供的config套在3.1中使用.

点击下载: https://pan.baidu.com/share/init?surl=gLEIyHrucgrQ_4wrFBHpNA  提取码: n1mk

文件名: config-4.15.0-99-generic, 下载之后,3.1中的复制.config那一步直接用这个config即可.

$ cp config-4.15.0-99-generic .config

4, 卸载多余内核

在第3步已经安装了新的内核,那么旧的内核我们就可以卸载了,常见的有两种方式.

方式一:

# 查看已安装内核
$ sudo dpkg --get-selections | grep linux
console-setup-linux                             install
libselinux1:amd64                               install
linux-base                                      install
linux-firmware                                  install
linux-generic                                   install
linux-headers-4.4.0-142                         install
linux-headers-4.4.0-142-generic                 install
linux-headers-generic                           install
linux-image-4.4.0-142-generic                   install
linux-image-extra-4.4.0-142-generic             install
linux-image-generic                             install
linux-libc-dev:amd64                            install
linux-source-4.15.0                             install
util-linux                                      install# 卸载旧内核
$ sudo apt-get purge -y linux-headers-4.4.0-142 linux-headers-4.4.0-142-generic linux-image-4.4.0-142-generic linux-image-extra-4.4.0-142-generic# 更新grub
$ sudo update-grub# 重启可以在grub的advance或者启动后在/boot中可以看到已经卸载了上面的文件.
$ sudo reboot

方式二:

# 查看存在哪些内核
$ cd /boot/
$ ls# 根据需要删除多余内核
$ sudo rm config-5.3.18 initrd.img-5.3.18 System.map-5.3.18 vmlinuz-5.3.18# 更新grub
$ sudo update-grub# 重启可以在grub的advance或者启动后在/boot中可以看到已经卸载了上面的文件.
$ sudo reboot

<Linux> Ubuntu kernel 源码编译 替换相关推荐

  1. Ubuntu下源码编译VirtualBox六 —— 源码编译(5)

    接前一篇文章<Ubuntu下源码编译VirtualBox五 -- 源码编译(4)>,链接如下: Ubuntu下源码编译VirtualBox五 -- 源码编译(4)_蓝天居士的博客-CSDN ...

  2. Ubuntu下源码编译VirtualBox五 —— 源码编译(4)

    接前一篇文章<Ubuntu下源码编译VirtualBox四 -- 源码编译(3)>,链接如下: Ubuntu下源码编译VirtualBox四 -- 源码编译(3)_蓝天居士的博客-CSDN ...

  3. orangepi升级linux内核,orangePi源码编译教程

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? #环境 ubuntu 12.04.5 64位 8G内存 jdk-6u45-linux-x64.bin 64位JDK6 板 ...

  4. Linux学习日记——源码编译Apache

    [本文为笔者在学习Linux 下的软件安装时,尝试使用源码安装Apache 的过程,事后进行一个小小的总结,发现错误望指正.] 一.典型的源码编译安装软件的过程包括以下3步: 1) 运行 config ...

  5. 01 linux 下tcl源码编译安装和tcl手册使用

    标签(空格分隔): 源码编译安装 2020.7.7 1 下载安装包.tar.gz 2 解压压缩包 3 进入configure文件所在文件夹,执行./configure ./configure 注解: ...

  6. linux的安卓源码编译提示版本不匹配,编译Android源码致命错误解决方案

    相信各位和我一样正在研究Android内核的朋友们在经过漫长的源码下载的等待后,喜悦的拿到了源代码开始编译.可是在编译过程中,也会和下载一样出现各种各样的不顺.在这里我记录了一下本人在编译过程中的所有 ...

  7. Ubuntu下源码编译VirtualBox一 —— 源码下载

    VirtualBox想必大家都不陌生,做Linux开发的尤其是嵌入式Linux开发的人应该基本都知道或玩过VMware和VirtualBox.但通常都是为了在Windows电脑上能够使用Linux环境 ...

  8. Linux下Poppler源码编译安装

    Poppler Poppler是用于呈现可移植文档格式(PDF)文档的免费软件实用程序库.它的开发得到freedesktop.org的支持.它通常在Linux系统上使用,并被开源GNOME和KDE桌面 ...

  9. (转)linux上nginx源码编译安装

    亲测有效: 转:  https://segmentfault.com/a/1190000007116797https://segmentfault.com/a/1190000007116797 ngi ...

最新文章

  1. 双系统(xp+ubuntu)删除ubuntu(好用)
  2. 基于DataTables实现根据每个用户动态显示隐藏列,可排序
  3. h5页面的写法_8. 开始构建我们的 index.hbs 页面
  4. 关于每年一次的社会保险缴费基数核定说明
  5. 天天象棋 残局闯关 第9关
  6. scanf中的%[^\n]%*c格式
  7. [你必须知道的.NET] 第五回:深入浅出关键字---把new说透(转载)
  8. Linux Shell脚本入门教程系列之(一)Shell简介
  9. ef 批量保存 oracle,mybatis-oracle与mysql批量添加
  10. 【Oracle】sqlplus中 删除键backspace时出现^H
  11. SD-WAN(软件定义WAN)
  12. memberfieldRedis操作 hash sort String sorted_set list help @String @list
  13. Java To CSharp源代码转换
  14. 有哪些免费的绘画软件比较好用?
  15. mysql 局域网数据库共享,SQL Server 2005 在局域网中共享数据库
  16. 在未知社交网络中最大化影响力(论文翻译)
  17. 插入安装光盘并重新启动计算机,电脑开机时显示 插入windows安装光盘并重新启动计算机 怎么解决 急救...
  18. 金融总结八---多头/空头平仓/开仓
  19. Unity热更新之AssetBundle打包篇
  20. python绘制人物肖像(词云)

热门文章

  1. eNSP模拟下的vlanif配置实现(一个汇聚交换机,两个接入交换机)通过三层交换机实现vlan间的三层通信
  2. OFGP 协议跨链解决方案
  3. 一款轻、快、无广告的杀毒安全软件(火绒5.0)
  4. 记录和“异地恋女友”的第一次相见
  5. android 输入法 sd卡,关于安卓手机内置或外置SD卡中各文件夹的名称和作用
  6. (困难)SQL练习25:获取员工其当前的薪水比其manager当前薪水还高的相关信息
  7. mysql查看定时备份_mysql定时备份
  8. 报头压缩-ROHC压缩系统
  9. linux内核配置cpu相关,Linux内核配置
  10. 从李子柒到张同学,田园乡村成创业热土?