Vmware虚拟机上如何编译与安装linux内核

写在前面

最近一直想找一些linux内核调试教程,在网上找了一下,有基于qemu的,但是需要自己制作文件系统,而且用的是busybox,很不方便;然后有看到基于vmware的,但是这些教程又有些晦涩难懂,耽误了很多时间,因此在这里总结一下,最起码在我自己的机器上是跑起来了,希望对大家有所帮助。部分操作采纳以下两位大佬的主页:
如何修改Linux源码并重新编译? - 知乎 (zhihu.com)
(9条消息) 001 如何获取、编译、安装Linux内核源代码_tiandh987的博客-CSDN博客

一、 设备信息

Vmware版本:16.0
linux操作系统版本:ubuntu20.04
想要安装的内核版本:linux-5.15.69

二、操作步骤

  1. 下载想要的linux源码,解压后进入内核文件目录
    (1)下载地址:
    https://mirrors.edge.kernel.org/pub/linux/kernel/

  2. 安装依赖文件
    由于我是在全新的系统上配置的内核,有很多依赖文件我没有安装,在配置过程中发现如下依赖是需要自己安装的:
    sudo apt-get install libncurses5-dev libelf-dev openssl libssl-dev flex bison dwarves zstd

  3. 保持源码干净
    make mrproper(此操作会将历史编译过程中配置的内核功能配置文件清除掉,只有第一次执行内核编译前才进行此操作)
    make clean((仅删除编译过程产生的中间文件和目标文件,而不会删除历史配置))

  4. 指定硬件体系结构
    export ARCH=x86

  5. 配置内核
    这里我想说一下,按照网络上一些博主的说法,需要自己配置内核,即执行make menuconfig,然后保存默认配置直接退出,但是我这么操作后发现编译完内核后我无法进入桌面系统,只能进去busybox里进行操作,很不方便,因此在这里我直接采用vmware上运行的内核的配置文件,运行以下代码:
    (1)cp /boot/config-(你已有的配置文件版本,通常情况下按一下tab就会自动补全) ./config
    (2)执行 make menuconfig,然后直接退出就好

  6. 编译内核
    scripts/config --set-str SYSTEM_TRUSTED_KEYS ‘’
    scripts/config --set-str SYSTEM_REVOCATION_KEYS ‘’
    sudo make CC=‘ccache gcc’ -j8(8指的是用8个核来跑,快一点,我自己测编译大概需要半个小时)

  7. 安装内核
    sudo make INSTALL_MOD_STRIP=1 modules_install -j8(安装内核模块,INSTALL_MOD_STRIP=1保证生成的initrd.img较小)
    sudo make install -j8(安装整个内核)
    依次执行上述两个命令

  8. 修改默认启动菜单的配置文件
    sudo vim /etc/default/grub
    (1)注释 GRUP_TIMEOUT_STYLE=hidden 列。
    (2)修改 GRUB_TIMEOUT 的值为10 。(可修改为其它数值)
    (3)GTUB_DEFAULT=0,表示从第一个内核启动。

  9. 更新启动项列表
    sudo update-grub2
    在这里插入图片描述

  10. 保存系统,重新启动,可看到菜单项,选择advance,进入刚刚编译好的内核就好
    在这里插入图片描述
    在这里插入图片描述

  11. 执行uname -r,即可显示最新版本:
    在这里插入图片描述

写在最后

作为非计算机专业出身的人,这是我能够给大家提供的一种比较简略的解决方案,其中若干原理我也还没有搞懂,期望能给大家带来一点便利

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
虚拟化架构中良好的隔离性、相对于操作系统来说更高的抽象层次以及更小的可信计算基等特性为解决安全领域中的旧难題提供了新思路。但是虛拟化技术在为用户带来方便的同时,也为恶意程序提供了更多的攻击路径以及攻击面,虚拟化安全问题亟待解Rootkit攻击是虚拟化安全面临的主要威胁之一,恶意程序利用 Rootkit技术隐藏自身来躲避安全工具的监测,并且利用系统的缺陷攻击系统。而内核级 Rootkit运行内核空间,具备更高的权限,它通过对虚拟机内核完整性的破坏试图控制整个系统运行严重威胁着虚拟机内核的安全。   针对虚拟机内核完整性保护问题,提出了一种被动保护的方式,利用硬件虚拟化扩展机制截获特权指令、敏感指令和中断。为了保护内核数据、代码以及关键寄存器方面为关键的内核数据与代码创建隔离的IEPT页表并设置页表的访问权限,使其运行在独立隔离的地址空间内。一方面利用硬件虚拟化的“陷入”机制使得关键寄存器一旦被篡改便下陷到VMM,阻止内核级 Rootkit的恶意攻击,保障内核数据的完整性在虛拟机内核完整性检测方面,提出了一种主动检测隐藏进程的方法,通过监控内核动态数据的内存分配与释放,构建内棱对象的映射关系,通过截获系统调用,构建目标虚拟机的进程视图,通过交叉对比的方式发现隐藏进程。   本文提出的虚拟机内核数据完整性保护与检测模块从被动监控与主动检测两方正保障了运行时的虛拟机内核数据的完整性。实验结果表明本文方法能够检测出常见的内核级 Rootkit,并能阻止其对系统的恶意篡改,性能开销控制在6%以内,在提升安全性的同时,不会对性能产生明显的影响

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值