centos 编译内核至2.6.39.4

简介:

一、下载内核文件并解压至相应目录


 
 
  1. # wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.39.4.tar.bz2 
  2. # tar jxvf linux-2.6.39.4.tar.bz2
  3. # mv linux-2.6.39.4 /usr/src

二、简要的配置内核


 
 
  1. # cd /usr/src/linux-2.6.39.4 
  2. # make mrproper //第一次编译无需运行此命令,如果之前有编译过,则需要 
  3. # cp /boot/config-`uname -r` .config //copy一份当前系统的内核配置文件作参考 
  4. # make menuconfig  

下面两个需要选中(两个都选中),确保.config文件中有该


 
 
  1. CONFIG_SYSFS_DEPRECATED_V2 = y 

否则编译完成重启系统时会有如下错误输出:


 
 
  1. mount: could not find filesystem '/dev/root'  
  2. Setting up other filesystems.  
  3. Setting up new root fs  
  4. setuproot: moving /dev failed: No such file or directory  
  5. no fstab.sys, mounting internal defaults  
  6. setuproot: error mounting /proc: No such file or directory  
  7. setuproot: error mounting /sys: No such file or directory  
  8. Switching to new root and running init.  
  9. unmounting old /dev  
  10. unmounting old /proc  
  11. unmounting old /sys  
  12. switchroot: mount failed: No such file or directory  
  13. Kernel panic - not syncing: Attempted to kill init! 

加上ext4的支持

然后保存即可

三、安装编译内核


 
 
  1. # make all 
  2. # make modules_install 
  3. # make install 

完了,修改grub启动文件,以新内核启动系统便可。

PS:如果这样就以新内核启动,系统重启时会报一个错误


 
 
  1. insmod: error inserting ‘/lib/dm-region-hash.ko’: –1 File exits 

这ms是2.6内核Bug,需要修改内核,并重新生成新内核文件

解压修改内核步骤


 
 
  1. # cp /boot/initrd-2.6.39.4.img /tmp/ 
  2. # cd /tmp/ 
  3. # mkdir newinitrd 
  4. # cd newinitrd/ 
  5. # zcat ../initrd-2.6.39.4.img |cpio -i  
  6. # rm -f /tmp/initrd-2.6.39.4.img 
  7. # vi init 
  8. 找到这4行一样的,去掉相同的2行 
  9. echo "Loading dm-region-hash.ko module"  
  10. insmod /lib/dm-region-hash.ko  
  11. echo "Loading dm-region-hash.ko module"  
  12. insmod /lib/dm-region-hash.ko  

重新打包内核


 
 
  1. # find .|cpio -c -o >../initrd 
  2. # cd ..; gzip -9 < initrd > initrd-2.6.39.4.img 
  3. # cp initrd-2.6.39.4.img /boot/ 


本文转自dongfang_09859 51CTO博客,原文链接:http://blog.51cto.com/hellosa/658107,如需转载请自行联系原作者
相关文章
|
5月前
|
Linux Perl
Linux centos7升级内核(两种方法:内核编译和yum更新)
Linux centos7升级内核(两种方法:内核编译和yum更新)
1816 1
Linux centos7升级内核(两种方法:内核编译和yum更新)
|
安全 Linux
Centos 7.x 升级内核
千万不要小瞧这操作。
356 0
Centos 内核更新后缺少initramfs 导致无法启动
Centos 内核更新后缺少initramfs 导致无法启动
|
1月前
|
Linux
centos linux内核下载
centos linux内核下载
|
2月前
|
Linux
centos7升级内核到最新稳定版
centos7升级内核到最新稳定版
248 0
|
4月前
|
Linux
通过ELRepo修改CentOS 7内核版本的详细步骤
通过ELRepo修改CentOS 7内核版本的详细步骤
572 3
|
5月前
|
Kubernetes 监控 Linux
容器服务ACK常见问题之新增一台CentOS 5.4内核的节点失败如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。
|
安全 Linux 虚拟化
【Centos7系统内核如何更换?为什么需要更新内核?】
在CentOS 7系统中,内核是非常重要的一部分。它是操作系统的核心,负责管理系统的硬件资源和提供各种系统服务。
269 0
|
Linux 编译器 C语言
百度搜索:蓝易云【Linux系统:CentOS编译Linux内核教程!】
请注意,以上步骤仅提供了一个基本的编译内核的概述。实际的编译过程可能因系统配置、内核版本等因素而有所差异。建议参考Linux内核官方文档和其他可靠资源,以获取更详细和特定于你的系统的指导。在进行任何内核操作之前,请务必备份你的系统数据并了解相关风险。
191 2
百度搜索:蓝易云【Linux系统:CentOS编译Linux内核教程!】
|
Linux C语言
实验:CentOS 7 编译安装最新版内核 Linux Kernel 6.5.2
CentOS 7 编译安装最新版内核 Linux Kernel 6.5.2
630 0