CentOS 7.4下

  • 原内核版本: 3.10.0-693.el7.x86_64

  • 改后内核版本: 4.16.2

  • 系统版本: CentOS-7-x86_64-Minimal-1708.iso

  • 运行环境: VMware14.0 Pro虚拟机

刚好学到内核这里, 做了两个实验:

  1. 最小化最小系统, 开机仅启动bash

  2. 更换内核

    1. 更换CentOS6的2.6.32至3.10.67, 据说过了这个内核就编译不了了, 试过编译4.16.2, 各种缺包缺库就放弃了
    2. CentOS 7 编译内核并更换

最小化最小系统, 开机仅启动bash:

新建硬盘并添加, 新建分区格式化

fdisk /dev/sdb //新建分区
n-->p-->1-->+100M  //放grub启动
n-->p-->2-->+2G    //swap   t  2  82
n-->p-->3-->+5G   // /
mke2fs -t ext4 /dev/sdb1         //格式化,做boot
mke2fs -t ext4 /dev/sdb3      //做根分区
mkswap /dev/sdb2        
partx -a /dev/sdb         //刷新识别
partx -a /dev/sdb

mkdir /tmp/boot        //创建dir
mount /dev/sdb1 /tmp/boot   //挂载
grub-install --root-directory=/tmp /dev/sdb       //至关重要, 指明boot目录, 创建Bootloader, MBR前446个字节
cp /boot/vmlinuz-2.6.32-696.23.1.el6.x86_64 /tmp/boot/vmlinuz    //复制内核
cp /boot/initramfs-2.6.32-696.23.1.el6.x86_64.img /tmp/boot/initramfs.img   //复制ramfs
vim /tmp/boot/grub/grub.conf    //编辑grub配置文件
default=0
timeout=5   //读秒
titel CentOS6 [ugly] //标题(开机grub表中)root(hd0,0)  //指定位置, 注意硬盘表示方法, 玩过Windows的Ghost会比较眼熟; 本地重启设置 root(hd1,0),即第二块硬盘, sda要改成sdbkernel /vimlinuz ro selinux=0 root=/dev/sda3 init=/bin/bash  //重点, 指定内核位置, 关闭selinux, 指定根目录位置, kernel初始化后第一个启动的为/bin/bash, 而不是initinitrd /initramfs.img  //指明ramfs位置
mkdir /tmp/sys
mount /dev/sdb3 /tmp/sys  //挂载
cd /tmp/sys
mkdir -pv etc bin sbin usr lib lib64 dev mnt tmp sys proc media var home root  //建立假根文件夹
cp /bin/bash /tmp/sys/bin  //复制bash
ldd /bin/bash            // 查看bash的依赖库
cp /lib64/libtinfo.so.5 ./lib64   //复制依赖库...chroot /tmp/sys //切换bash查看是否可以运行reboot  //重启*  *: 卸载硬盘新建虚拟机运行起来了, 只有内建命令,啥也没有



更换CentOS 6.9 的2.6.32至3.10.67

  下载源码编译, 不是yum

准备环境:

yum -y groupinstall 'Development Tools' 'Server Platform Development'

下载源码

wget https://mirrors.aliyun.com/linux-kernel/v3.x/linux-3.10.67.tar.xz
tar JxPf linux-3.10.67.tar.xz -C /usr/src
cd /usr/src/linux-3.10.67   //打开目录
make menuconfig  //图形界面编辑kernel, 内置或模块或取消; 编译和安装模块的过程中有一大堆没有用的driver,<暗中观察了一下, AMD的显卡最耗时间> 浪费大量时间, 选择时可以取消;
//此处以下开始编译, 建议在本地监视器上运行
make -j8   //8线程同时编译//大约30分钟make modules_installmake install

CentOS6 上编译完成后直接重启, 并没有编辑grub, 直接有了选项, 建议还是编辑一下grub比较好:

grub2-set-default 0
grub2-mkconfig -o /etc/grub2.cfg// 来自https://blog.csdn.net/breeze915/article/details/79243673

尝试在CentOS6上编译过4.16.2,最后跪了, 不了了之;



更换CentOS 7.4 的3.10.0至4.16.2

准备安装环境:

  基于CentOS 6上编译失败的经验, 这次准备了很多组

yum -y groupinstall 'Development and Creative Workstation' 'Compatibility Libraries' 'System Administration Tools' 'System Management' 'Development Tools' //基本够用, 后面还有的直接加了

下载源码

wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.16.2.tar.xzmv linux-4.16.2.tar.xz /usr/src  //老位置,还是熟悉的配方,还是熟悉的味道cd /usr/srclstar Jxf linux-4.16.2.tar.xz  //移动到这里解压, 跟上面的-C效果一样的cd linux-4.16.2 

源码准备妥当, 开干

yum -y install ncurses-devel libncurses-dev  //make menuconfig直接提示要安装, 省得百度报错信息找解决方案
make menuconfig  //配置信息, 这里并没有去复制原内核的配置, 在配置信息里瞎点, 减了一堆驱动下去, 编译快多了make -j8   //满负载运行

//报错,装包

yum -y install ncurses-devel libncurses-dev elfutils-libelf-devel openssl-devel openssl
make -j8  //继续make modules_installmake install

//安装完成, reboot后发现内核不在, 看了看发现安装报错,磁盘不够用了, 囧//以后说说btrfs增加容量的事儿

grub2-set-default 'CentOS Linux (4.16.2) 7 (Core)'reboot



修改内核的核心意义是在于根据主机量身定制内核以发挥最大效率, 本次纯属瞎折腾.

报错一般百度都能解决, 顺便贴一下浏览记录:

转载于:https://www.cnblogs.com/gettolive/p/8871215.html

瞎折腾-CentOS 7.4 编译4.16.2版kernel 并安装相关推荐

  1. mysql+1.6安装,CentOS 7.0编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14方法

    这篇文章主要介绍了CentOS 7.0编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14方法分享,需要的朋友可以参考下准备篇: 一.配置防火墙,开启80端口.3306端口 Cen ...

  2. CentOS 7.0编译安装Nginx+MySQL+PHP

    转自http://www.centoscn.com/CentosServer/www/2014/0904/3673.html 准备篇: CentOS 7.0系统安装配置图解教程 http://www. ...

  3. centos 6.2 编译安装mysql_CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.13

    CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.13 2013-10-24 15:31:12 标签:服务器 防火墙 file 配置文件 written 一.配置 ...

  4. CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.13

    CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.13 2013-10-24 15:31:12 标签:服务器 防火墙 file 配置文件 written 一.配置 ...

  5. 经常调试笔记本服务器显示器,瞎折腾!闲置损坏笔记本电脑改造的DIY液晶显示屏!蜗牛星际附件。...

    瞎折腾!闲置损坏笔记本电脑改造的DIY液晶显示屏!蜗牛星际附件. 2019-04-28 10:11:32 99点赞 480收藏 66评论 创作立场声明:本文仅本人的一些瞎折腾,仅作为分享,希望大家和平 ...

  6. 写给互联网大厂员工的真心话:2020年,别瞎折腾!

    作者:倪叔 来源: 倪叔的思考暗时间 为啥突然要写这么一个题目呢? 因为职业并不是HRor猎头的倪叔,过去的2年一直都在帮朋友找工作,而其中很多人都是拥有互联网大厂背景的. 当然,倪叔的朋友们最终都找 ...

  7. 红米5+plus+信号显示无服务器,我的瞎折腾,红米AX5路由器MESH组网测试

    我的瞎折腾,红米AX5路由器MESH组网测试 2020-08-23 10:42:04 77点赞 443收藏 110评论 创作立场声明:路由器自己买的,我这不是客观测评,纯属主观瞎BB,我写的就是我使用 ...

  8. windows上的LLVM pass瞎折腾记录

    windows上的LLVM pass瞎折腾记录 想了解下LLVM的代码风格和优化过程,就从写LLVM pass入手吧,做个踩坑记录- 文章最后有逐步骤的操作记录,Tips内记录关键点和思路 Tips: ...

  9. CentOS 5.5 编译安装apache+php+mysql,利用CMS快速建立论坛

    这个是转来的,细节没有验证,请网友自己斟酌.......... CentOS 5.5 编译安装apache+php+mysql,利用CMS快速建立论坛 1.安装Apache [root@bogon t ...

最新文章

  1. 一步步学敏捷开发:开篇
  2. MongoDB的可视化工具
  3. 各国分析之-土耳其土库曼斯坦
  4. SpringMVC执行流程源码分析
  5. PHP读取TXT UTF-8,2)PHP中把读取.txt中内容并转为UTF-8格式
  6. 他从零开始学Python,25岁拥有480000粉丝:成功就靠这3点!
  7. 我搜集的C++字符类型的相互转换
  8. Linux中shell变量作用域笔记
  9. 数据挖掘算法之决策树算法总结
  10. php mysql 链表_浅谈PHP链表数据结构(单链表)
  11. java strlen,跟妹妹聊到 Java 16 新特征,真香!
  12. 一加10 Pro的性能配置还是非常不错的
  13. java ing印版_Java TCP实现高仿版QQ聊天(二)
  14. Cache和DMA一致性 iCache和dCache一致性
  15. Tensorflow API(二)
  16. linux comd skill
  17. 软件创新实验室:微信小程序开发——音频录制与播放
  18. flappy bird用java实现_java实现Flappy Bird游戏源代码
  19. 参数数量可变的方法 - Java
  20. vue3 H5 pdf插件 iphone查看pdf失败

热门文章

  1. Apollo 对表名区分大小写 如何配置MYSQL不区分大小写呢
  2. 微服务的通信协议:Restful,RPC(Dubbo、Motan、gRPC)
  3. IDEA去除掉虚线,波浪线,和下划线实线的方法
  4. @SpringBootApplication与@EnableAutoConfiguration区别
  5. Java程序员面试准备-路线
  6. c# 多线程 --Mutex(互斥锁) 【转】
  7. 组策略之文件夹的重定向
  8. laravel 安装
  9. pomelo的session
  10. Brush、Color、String相互转换