ubuntu 18.04.6 使用内核源码安装内核

本文阅读 4 分钟
首页 Linux,系统 正文

上一篇我在ubuntu 18.04 更换内核版本后,这篇我们在ubuntu 18.04上用内核源码编译其它版本的内核,并进行安装。ubuntu 18.04.4我用起来体验感很差,我便卸载了,换成了18.04.6,体验感舒服了很多。 上一篇文章地址链接: ubuntu18.04.4更换内核版本

内核版本: img

随便选择一个内核版本,我选择 5.0 ,官网下载太慢,这里给出个链接: http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/v5.x/ img

(1)解压内核:

sudo tar -xavf linux-5.0.tar.xz

img (2)安装各种依赖,由于我是刚安装的虚拟机,所以需要安装依赖较多(编译内核时根据提示所需要的依赖进行安装,不同的环境可能稍有差异):

sudo apt-get install gcc make libncurses5-dev openssl
sudo apt-get install build-essential 
sudo apt-get install pkg-config
sudo apt-get install libc6-dev
sudo apt-get install bison
sudo apt-get install flex
sudo apt-get install libelf-dev
sudo apt-get install libncurses-dev
sudo apt-get install libssl-dev

img

(3)配置需要编译的内核 在编译内核之前,拷贝当前内核的配置文件到需要编译的内核目录的.config文件下,即把5.4.0 的内核配置拷贝到 5.0 的内核版本中,直接用当前内核的配置。

cd linux-5.0
sudo cp /boot/config-$(uname -r) .config
vim .config

img

sudo make menuconfig

打开Kernel的配置程序,可以进行相关的配置,在这里可以选择启用或者禁用一些模块,我在这里没有进行任何修改,直接保存退出。 img (4)编译 为了加快编译速度,我给我的虚拟机分配8核,磁盘分配时最好大一些,不然磁盘大小不够,会导致编译失败,不知道速度提升大不,这一步时间很长。

make -j8

在编译的过程出现如下错误(有的可能不会出现如下错误,没出现则不用管):

make[1]: *** No rule to make target 'debian/canonical-certs.pem', needed by 'certs/x509_certificate_list'.  Stop.
vim .config

将 CONFIG_SYSTEM_TRUSTED_KEYS改为空值,如下所示:

CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem"

改为:

CONFIG_SYSTEM_TRUSTED_KEYS=""

编译完成: img

我们可以看到编译出来的原始vmlinux和System.map文件。 img vmlinux是一个包括linux kernel的静态链接的可执行elf格式的文件,由编译内核源码得到的最原始的内核文件,未压缩,比较大,由于是二进制文件,该文件可以用objdump查看。 img img

System.map是编译内核时产生的一个文件,存放着内核符号表信息。每次编译一次内核,就会产生一个新的System.map文件。符号表时所有内核符号及其对应地址的一个列表,如下图所示: img

(5)安装模块 编译完成之后安装模块,位置为 /lib/modules/5.0.0:

sudo make modules_install

img

执行之前: img 执行之后: img

(6)安装内核 安装内核到/boot目录,该命令会自动更新grub,在启动时候看到可选的内核了5.0.0了:

sudo make install

根据输出我们可以得知,执行update-grub 命令,更新启动配置 img

执行之前: img 执行之后: img (7)重启 有两者方式选择内核启动版本: 第一种:修改 vim /etc/default/grub

vim /etc/default/grub
 sudo update-grub
 reboot

img img

第二种:启动时按shift键,选择 Linux 5.0.0版本启动: img 可以看到通过编译内核的方式启动新内核成功: img img

img

img 可以我们的内核源码没有在 /usr/src 目录下: img 因此我们可以在编译内核完成后:

sudo mv linux-5.0/ /usr/src/
cd /usr/src/linux-5.0/
sudo make modules_install
sudo make install

使用内核源码安装内核到此结束。

https://blog.csdn.net/hoopertsau/article/details/119962827 https://blog.csdn.net/qq_37748570/article/details/108118284 https://blog.csdn.net/qq_41037945/article/details/91352418 https://www.jianshu.com/p/061ec6c81ecf https://blog.csdn.net/qq_36393978/article/details/118157426

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/weixin_45030965/article/details/124904119
-- 展开阅读全文 --
BUUCTF Web [极客大挑战 2019]Knife
« 上一篇 06-24
安全面试之XSS(跨站脚本攻击)
下一篇 » 07-24

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复