Linux内核编译安装和卸载内核

本文详细介绍了如何根据需求下载并编译Linux内核,包括配置、编译及安装新内核的具体步骤。还提供了卸载内核的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 linux开行版的自带内核不一定能满足linux学习和某些特殊的要求,这时我们就不得不根据自己的需求重新安装内核。这里我介绍一些常用编译内核的步骤。

内核编译安装:​

一、一定是下载满足需求的内核啦。​官网:https://www.kernel.org/

p.s.学习最新的内核,可以克隆linus在github的代码:https://github.com/torvalds/linux

二、选择内核配置:

进入下载好的源码的根目录下,make menuconfig。选择之后保存退出。​之后会有.config文件。这个文件就是配置文件。

p.s.​选择默认选项的话:make defconfig。

p.s. 有时会将补丁打入内核,所有在makemenuconfig之前,先打补丁:​patch -p1 <(PATCH_PATH)/(PATCH_NAME)。参数 p1​:将补丁中的​需要修改或添加的文件的第一级路径省略。如:“a/include/linux/cgroup_subsys.h”和省略 a/。

p.s. 如果需要当前内核的配置文件时,那么就得克隆当前配置文件:zcat /proc/config.gz> .config; make oldconfig。

p.s. make menuconfig可能不能使用,这是因为缺少编译环境。sudo apt-get installlibncurses5libncurses5-dev​ build-essential问题就会迎刃而解

三、如果之后又修改过配置文件,或者在用已用的配置文件配置新的代码树的时候。应该验证和更新配置:makeoldconfig。

四、通过之上四步,内核已经配置好了,这是就可以编译了。

make -j(cpu数×2)

五、安装新内核。注意:必须是root用户!

1、make modules_install--------------->可以把所有编译好的模块安装到正确的主目录/lib/modules下。

2、make install ----------->自动将映像添加到/boot目录下​。

这是已安装新内核了。重新启动就可以选择不同内核了。

p.s. ubuntu 发行版时,系统可能会自动隐藏grub菜单。所以必须修改grub文件:

打开 /etc/default/grub 注释 GRUP_HIDDEN_TIMEOUT = 0 仅在前头加一个#即可。

最后必须更新grub :update-grub。

卸载内核:

一、卸载自己编译的内核:

  • /boot/vmlinuz*KERNEL-VERSION*
  • /boot/initrd*KERNEL-VERSION*
  • /boot/System-map*KERNEL-VERSION*
  • /boot/config-*KERNEL-VERSION*
  • /lib/modules
  • KERNEL-VERSION代表你想卸载的内核的版本号
  • 最后必须更新grub : update-grub。

  • 二、卸载发行版自带的内核。

  • 1、查找内核文件 :dpkg--get-selections|grep linux 。带有image的就是内核文件。
  • 如:linux-image-3.16-amd64                install
  • 2、卸载:sudo apt-get removelinux-image-(接内核版本)

  • 最后必须更新grub:update-grub
第一部分 基础知识 <br>1.1 什么是LKMs <br>1.2 什么是系统调用 <br>1.3 什么是内核符号表(Kernel-Symbol-Table) <br>1.4 如何实现从用户空间到内核空间的转换 <br>1.5 使用用户空间函数的方法 <br>1.6 常用内核空间函数列表 <br>1.7 什么是内核守护进程 <br>1.8 创建你自己的设备 <br><br>第二部分 渐入佳境 <br>2.1 如何截获系统调用 <br>2.2 一些有趣的系统调用 <br>2.2.1 发现有趣的系统调用(strace方法) <br>2.3 迷惑内核的系统表 <br>2.4 文件系统有关的攻击 <br>2.4.1 如何隐藏文件 <br>2.4.2 如何隐藏文件的内容(完全的) <br>2.4.3 如何隐藏文件的某一部分(一个实现原型) <br>2.4.4 如何重新定向或者监视文件操作 <br>2.4.5 如何避免任何文件权限问题 <br>2.4.6 如何使的一个有入侵工具的目录不可存取 <br>2.4.7 如何改变CHROOT环境 <br>2.5 进程有关的入侵 <br>2.5.1 如何隐藏任何进程 <br>2.5.2 如果改变文件的执行结果 <br>2.6 网络(Socket)有关的入侵 <br>2.6.1 如果控制Socket操作 <br>2.7 TTY纪录的方法 <br>2.8 用LKMs写病毒 <br>2.8.1 如何让LKM病毒感染任何文件(不仅仅是模块) <br>2.8.2 如何让LKM病毒帮助我们进入系统 <br>2.9 使我们的LKM不可见,而且不可卸载 <br>2.10 其他的入侵kerneld进程的方法 <br>2.11 如何检查当前的我们的LKM <br><br>第三部分 解决方案(给系统管理员) <br>3.1 LKM检测的理论想法 <br>3.1.1 一个使用的检测器的原形 <br>3.1.2 一个密码保护的create_module(...)的例子 <br>3.2 防止LKM传染者的方法 <br>3.3 使你的程序不可以被跟踪(理论) <br>3.3.1 一个反跟踪的实用例子 <br>3.4 使用LKMs来防护你的linux内核 <br>3.4.1 为什么我们必须允许任何一个程序都拥有可执行的权限 <br>3.4.2 链接的补丁 <br>3.4.3 /proc权限的补丁 <br>3.4.4 安全级别的补丁 <br>3.4.5 底层磁盘补丁 <br><br>第四部分 一些更好的想法(给hacker的) <br>4.1 击败系统管理员的LKM的方法 <br>4.2 修补整个内核-或者创建Hacker-OS <br>4.2.1 如何在/dev/kmem中找到内核符号表 <br>4.2.2 新的不需要内核支持的'insmod' <br>4.3 最后的话 <br><br>第五部分 最近的一些东西:2.2.x版本的内核 <br>5.1 对于LKM作者来说,一些主要的不同点 <br><br>第六部分 最后的话 <br>6.1 LKM传奇以及如何使得一个系统即好用又安全 <br>6.2 一些资源链接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值