Linux kernel内核升级全过程,教你一次成功
Linux内核的升级
B# 4’ ? +’9 ? ’9D ? B"#+, ? "#DB+$A ? B"#+, B"#+, ? ? 以 下 三步
将系统指向包含新内核代码的新的头文件 ? ? 创建链接,
B# 4’ ? +’9 ? ’9D ? B"#+, ? "#DB+$A ? 8’@4"1H6 8’@ B# 4’ ? +’9 ? ’9D ? B"#+, ? "#DB+$A ? ’D’" ’D’" —
!
问题的提出
现 在 使 用的大 多 数 *"#+, 内 核 版 本 为 ./0/12 。此 内 核
#
内核创建
下 面 的工 作 都 在 ? +’9 ? ’9D ? B"#+, 目 录 下 完 成 : @8IA $A= @8IA ;K@8:A ? ? 确保关键文件在正确位置
若内核较大必须使用 ? ? 编译内核,
? ? @8IA C;K@8:A 命 令 D$ ? +’9 ? ’9D ? B"#+, ? 89DL ? "1H6 ? C%%7 D= ;K@8:A ? C%%7 @8IA @%+$BA’ ? ? 新 内 核 ;K@8:A ? ? MC;K@8:AN 产 生 在 ? +’9 ? ’9D ? B"#+, ? 89DL ? "1H6 ? C%%7 子 目 录 下 ? ? 将 新 内 核 复 制 到 ? C%%7 下 。若 在 配 ? ? 编译可加载模块 ? ? 将可加载模块安装到 ? ? ? B"C ? @%+$BA’ ? IA9#AB GA9’"%# 下 至此内核升级工作已经全部完成。若编译内核时出 现 错 误 , 执 行 @8IA @9=9%=A9 , 然 后 从 新 配 置内 核 M@8IA 然后再执行创建内核中的全部步骤, 直到成 @A#+D%#<B:N , 功为止。
linux内核升级图文攻略
linux内核升级图文攻略一、Linux内核概览Linux是一个一体化内核(monolithic kernel)系统。
设备驱动程序可以完全访问硬件。
Linux内的设备驱动程序可以方便地以模块化(modularize)的形式设置,并在系统运行期间可直接装载或卸载。
1. linux内核linux 操作系统是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。
一个计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割。
计算机的硬件,含有外围设备、处理器、内存、硬盘和其他的电子设备组成计算机的发动机。
但是没有软件来操作和控制它,自身是不能工作的。
完成这个控制工作的软件就称为操作系统,在Linux的术语中被称为“内核”,也可以称为“核心”。
Linux内核的主要模块(或组件)分以下几个部分:. 进程管理(process management) . 定时器(timer). 中断管理(interrupt management). 内存管理(memory management). 模块管理(module management). 虚拟文件系统接口(VFS layer). 文件系统(file system). 设备驱动程序(device driver). 进程间通信(inter-process communication). 网络管理(network management. 系统启动(system init)等操作系统功能的实现。
2. linux内核版本号Linux内核使用三种不同的版本编号方式。
. 第一种方式用于1.0版本之前(包括1.0)。
第一个版本是0.01,紧接着是0.02、0.03、0.10、0.11、0.12、0.95、0.96、0.97、0.98、0.99和之后的1.0。
. 第二种方式用于1.0之后到2.6,数字由三部分“A.B.C”,A代表主版本号,B代表次主版本号,C代表较小的末版本号。
linux系统内核版本升级【转】
linux系统内核版本升级【转】⼀、查看Linux内核版本命令(2种⽅法):1 2 31、cat/proc/version2、uname-a⼆、查看Linux系统版本的命令(3种⽅法):1 2 3 4 5 6 7 8 91、lsb_release -a即可列出所有版本信息:这个命令适⽤于所有的Linux发⾏版,包括Redhat、SuSE、Debian…等发⾏版。
2、cat/etc/redhat-release这种⽅法只适合Redhat系的Linux:3、cat/etc/issue此命令也适⽤于所有的Linux发⾏版。
三、升级系统内核⼀般来说,只有从下载并编译安装的内核才是官⽅内核。
⼤多数 Linux 发⾏版提供⾃⾏维护的内核,可以通过 yum 或 rpm 等包管理系统升级。
1)#导⼊ELRepo软件仓库的公共秘钥2)#安装ELRepo软件仓库的yum源3)#安装主线内核(ml=mainline)4.14.11yum --enablerepo=elrepo-kernel install kernel-ml4)查看系统可⽤内核,并设置启动项sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg机器上存在 3个内核,我们要使⽤ 4.20 这个版本,可以通过grub2-set-default 0命令⽣成 grub 配置⽂件grub2-mkconfig -o /boot/grub2/grub.cfg5)重启系统,并验证1uname-a转⾃。
Linux内核升级方法
/linux-home/base/linux-kernel-upgrade-steps-and-problem-solving-metho ds.htmlLinux内核升级步骤及问题解决方法发表于224 天前⁄ Linux基础⁄评论数4 ⁄被围观1,985 views+Linux的内核是系统的核心,所以升级内核是Linux系统管理员的一项基本技能,所以我就分享了系统运维实务上的一篇文章,当然我对源文件稍做了一些内容的增加,就是把遇到的问题及解决方案也加上了,希望对各位Linux系统管理员有所帮助!1.下载内核2.下载热点内核标准配置文件3.编译内核选中Load an Alternate Configuration File ,然后选择刚下载的.config另外,要特别选中:1)、通过make menuconfig选中以下对应的选项2)、修改.config文件修改.config文件中CONFIG_SYSFS_DEPRECATED_V2,将原本被注释掉的CONFIG_SYSFS_DEPRECATED_V2 改成CONFIG_SYSFS_DEPRECATED_V2=y注: 修改这项是因为旧版的mkinitrd及其nash在内核没有CONFIG_SYSFS_DEPRECATED_V2参数时默认使用旧版sysfs路径格式,从而在新内核下无法正确访问/sys内的硬盘信息节点。
主要是解决“mount:could not find filesystem ‘/dev/root’”这样的错误4.解压修改内核找到这2行一样的,去掉1行这主要是解决:“insmod: error inserting ’/lib/dm-region-hash.ko’: -1 File exists”这样的错误5.从新打包内核6.设置从新内核启动把default=1改为default=07.重新启动系统。
Linux系统如何优雅地升级内核详细步骤带你轻松搞定
Linux系统如何优雅地升级内核详细步骤带你轻松搞定Linux系统内核作为操作系统的核心组件,对系统的性能和功能起着至关重要的作用。
随着技术的不断发展,Linux内核也在持续更新和优化,以满足不断变化的用户需求。
本文将介绍如何以一种优雅且安全的方式升级Linux系统内核,并详细阐述每个步骤。
升级内核前的准备工作在开始升级内核之前,我们需要做一些准备工作,以确保升级过程的顺利进行。
1.备份重要数据由于升级内核可能存在一些风险,我们强烈建议在操作之前备份重要的数据。
这可以帮助我们在升级失败时恢复系统或数据。
2.查看当前内核版本在进行内核升级之前,我们需要了解当前系统正在运行的内核版本。
可以使用以下命令来查看:```uname -r```此命令将显示当前正在运行的内核版本。
3.下载最新的内核源代码要进行内核升级,我们需要下载最新的内核源代码。
在Linux内核开发者的官方网站上可以找到最新的内核版本。
请注意,下载的是tarball文件。
升级内核的步骤一旦我们完成了准备工作,就可以按照以下步骤来优雅地升级内核。
1.解压内核源代码使用以下命令解压之前下载的内核源代码:```tar -xvf linux-x.x.x.tar.xz```将"linux-x.x.x"替换为你下载的内核版本的实际文件名。
2.配置内核选项进入解压后的内核源代码目录,并执行以下命令以开始配置选项:```cd linux-x.x.xmake menuconfig```此命令将启动一个图形界面,让你可以根据你的需要对内核选项进行配置。
你可以使用方向键浏览选项,使用空格键进行选择或取消选择,使用Enter键进行进入或退出子菜单。
配置选项对于不同的系统和需求会有所不同,因此我们建议根据你的具体情况谨慎选择。
选择完成后,保存并退出配置界面。
3.编译和安装内核配置选项完成后,我们可以开始编译和安装内核。
使用以下命令开始编译内核:```make```这将花费一些时间来完成编译过程。
linux内核升级原理
linux内核升级原理Linux内核是操作系统的核心组件,负责管理计算机的硬件和软件资源。
随着技术的发展和功能的增加,Linux内核需要不断进行升级以适应新的硬件和软件需求。
本文将介绍Linux内核升级的原理和过程。
一、Linux内核升级的原因1. 修复漏洞和安全问题:随着黑客技术的不断发展,Linux内核中可能存在一些漏洞和安全问题。
升级内核可以修复这些问题,提高系统的安全性。
2. 支持新硬件:新的硬件设备可能需要新的驱动程序才能正常工作。
升级内核可以提供对新硬件的支持。
3. 改进性能和稳定性:Linux内核的升级通常会带来性能和稳定性的改进,提高系统的运行效率和可靠性。
4. 新功能和特性:随着技术的不断发展,Linux内核会不断引入新的功能和特性,升级内核可以让用户享受到这些新功能带来的便利。
二、Linux内核升级的过程1. 获取新的内核版本:用户可以从Linux内核官方网站或其他可靠的软件源获取新的内核版本。
通常会提供源代码和预编译的内核镜像供用户选择。
2. 编译和安装内核:如果用户选择了源代码版本,需要将源代码编译成可执行的内核镜像。
编译过程需要配置内核参数、编译代码和链接,可以根据需要选择不同的配置选项。
编译完成后,用户可以将内核镜像安装到系统中。
3. 更新引导加载程序:内核升级后,需要更新引导加载程序(如GRUB)的配置文件,以便系统能够正确引导新的内核。
用户可以编辑引导加载程序配置文件,将新的内核添加到启动菜单中。
4. 重启系统:完成上述步骤后,用户可以重启系统。
在引导加载程序菜单中选择新的内核版本,系统将加载并运行新的内核。
5. 测试和验证:在使用新的内核版本之前,用户应该进行一些测试和验证工作,确保系统的稳定性和兼容性。
用户可以运行一些基准测试和功能测试,检查系统的性能和功能是否正常。
三、注意事项和常见问题1. 备份数据:在进行内核升级之前,用户应该备份重要的数据和配置文件,以防止意外数据丢失或系统损坏。
升级Linux操作系统内核奋斗记
升级Linux操作系统内核奋斗记升级Linux操作系统内核奋斗记升级Linux操作系统内核奋斗记升级linux内核奋斗记我的piii dell机运行着内核2.4.的redhat,自从linux内核2.6发布以来一直想把该系统升级到内核2.6。
经过一番艰辛万苦,终于成功了。
为了体验一下在linux下编写多线程程序的步骤,又更新gcc 和c语言库。
在此愿和各位朋友共享这段经历,共享这段成果。
(可能有记录错误,仅供参考)。
具体步骤包括以下内容:1,升级内核的具体步骤2,更新gcc3,使用glibc2.3.54,使用nptl线程进行编程在此之前,先简要地介绍一下linux内核2.6所做的改进及新增功能。
linux2.6主要在以下的10个方面作了很大的改进,简单概括如下,有关详细情况,请参阅相关资料。
1)通过改善并行处理能力和采用posix线程等,提高了系统的处理能力,从而linux真正具备大型信息系统所要求性能。
2)通过改善文件系统的输出/输入能力和提高对大容量内存的利用效率,使得linux能够更胜任大型信息系统中的数据处理。
3)加强了对数据库应用程序的支持。
4)提高了抗系统高负荷时能力。
5)提高了系统的可用性,包括对不停机时备份和不停机时更换硬件功能的支持。
6)强化了对网络的支持,增加了对ipv6, sctp, ipsec,等的支持。
7)通过增加访问控制和内核暗号化技术,提高了系统的安全性。
8)强化了对电源的管理。
9)强化了对嵌入式cpu和系统的支持。
10)添加了更多的硬件驱动程序。
一.升级内核1, 下载linux-2.6.3.tar.bz2(可以是更新的版本)到/usr/srcbzcat linux-2.6.3.tar.bz2 | tar xvf cd linux-2.6.3 阅读readme及changes 文件,确认必须的工具软件。
因为不是笔记本电脑和笔记本电脑有关的软件可以忽略。
发现module-init-tools需要更新。
升级Linux内核
1.将内核压缩包(如linux-2.6.32.27.tar.bz2)放到/root目录下面2.打开终端,输入tar -jxvf linux-2.6.32.27.tar.bz2 -C /usr/src/kernels/3.输入make dep (2.6内核不需要)4.输入make menuconfig(图形化界面)或make oldconfigmake oldconfig使用默认的.config文档编译5.输入make bzImage6.输入make modules7.输入make modules_install8.输入depmod -a9.输入mkinitrd /boot/ initrdx.y.z.imp x.y.z10.cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-newcp /usr/src/linux/System.map /boot/System.map-new根据不同的CPU架构,可能在不同的目录下。
IGSMR的CPU可能在X86目录下。
11.修改/boot/grub/grub.config文件default=1timeout=15splashimage=(hd0,0)/grub/splash.xpm.gztitle RedFlag (2.4.26-version)root (hd0,0)kernel /vmlinuz-2.4.26 ro root=LABEL=/initrd /initrd-2.4.26.imgtitle MyRF (new_kernel)root (hd0,0)kernel /vmlinuz-new ro root=/dev/hda3initrd /System.map-new.img8.当2.6以上内核升级时,此处为make install。
然后修改/boot/grub/grub.config文件。
将default=1改为default=0,搞定。
linux内核升级
RedHat Linux 9.0系统内核升级目录1 引言 (1)1.1 课程设计的目的 (1)1.2 课程设计的意义 (1)1.3 课程设计的内容 (2)2 相关内容介绍 (3)2.1内核版本2.6.18的新特性 (3)2.2 几个重要的内核文件简介 (4)2.2.1 vmlinuz-2.4.20-8 (5)2.2.2 initrd-2.4.20-8.img (5)2.2.3 System.map-2.4.20-8 (5)2.3 内核升级大体过程 (7)2.4 几个重要命令简介 (7)3 内核升级的详细设计 (8)3.1 准备阶段 (9)3.2配置阶段 (10)3.3 编译阶段 (17)3.4 启动新内核 (18)4 测试结果 (20)4.1 升级前的内核 (20)4.2 升级后的内核 (21)5 升级过程中遇到的问题及解决方法 (22)5.1 安装工具包时的问题及解决方法 (22)5.2 配置文件系统时的问题及解决方法 (22)5.3 安装新内核时出现的问题及解决方法 (23)结束语 (24)参考文献 (25)第1页共25页1 引言1.1 课程设计的目的RedHat Linux是目前世界上使用最多的Linux操作系统。
因为它具备最好的图形界面,无论是安装、配置还是使用都十分方便,而且运行稳定。
RedHat Linux推出9.0版本后,在原有的基础上又有了很大的进步。
它完善了图形界面,增强了硬件的兼容性等等。
众所周知,由于Linux 操作系统具有免费,开源等特点,加上用Linux作为服务器性能稳定,并且具有较高的安全性,所以近几年Linux操作系统有了蓬勃的发展,内核的版本的升级很快。
RedHat Linux 9.0默认安装内核版本为2.4.20-8,随着在Linux上面应用的服务越来越多,这个内核版本已不能满足需要了,比如某些软件的安装需要的内核版本至少为2.6.××,所以在RedHat Linux9.0上对原有内核的升级变得刻不容缓。
Ubuntu14.04Linux3.14.3内核升级
内核升级目标:升级Linux内核到最新版本当前环境:Vmware虚拟机中安装Ubuntu 14.04 LTS 其Linux内核为3.13.0用uname -a可以查看所有版本信息虚拟机配置为:内存512M,硬盘20G,其它默认设置。
Ubuntu安装时选择的是“使用整块硬盘”。
内核升级准备工作:1,首先需要到下载最新的Linux内核源码。
这里下载的是3.14.3版本。
2,需要正确编译内核,需要安装gcc以及安装相应的依赖包和库,Ubuntu中已经自带了gcc编译器,但是仍然需要安装一些其它的类库,整个过程可以使用Ubuntu的apt-get install命令方便的完成。
具体命令为:sudo apt-get install build-essential网络上有些说明中还指出,需要安装 kernel-package这个东西,因此也一并装上了。
sudo apt-get install kernel-package为了方便下载,我把Linux 3.14.3源码包下载在了windows中文件名为linux-3.14.3.tar.xz,要将它复制到虚拟机的Linux里,直接复制显然不可以,因此使用SSH方式复制。
为实现SSH登录和传送文件,需要安装openSSH,只需要安装Server就可以。
同样可以使用sudo apt-get install openssh-server命令完成。
安装完成后使用FileZilla软件,通过sFtp协议登录并将源码复制到linux中。
复制完成后,就可以正式开始升级内核了。
内核编译前的配置:进入Linux系统,为了不出现权限问题,我直接用su -命令用root用户操作。
Ubuntu是一个桌面系统,可能是出于安全性考虑,Ubuntu安装好后不能直接用su命令切换root,会提示su认证失败,这是由于Ubuntu锁住了root用户,这时只需要执行sudo password 命令,修改UNIX密码即可,密码就是安装Ubuntu时设置的那个。
Linux升级内核教程(CentOS7)
Linux升级内核教程(CentOS7)1.查看当前内核版本uname -r2.通过yum升级内核通过yum升级内核是最保险的升级⽅式,因为安装的是操作系统发⾏⼚商验证过兼容性的rpm包,升级风险⼀般很⼩。
yum install -y kernel重启后即可在grub界⾯选择使⽤新内核(新内核⼀般是默认使⽤内核,所以也可不⽤选直接等机器重启完⽤的就是新内核了)。
3.通过⼿动编译升级内核⼿动编译升级风险是⽐较⼤的,轻则可能会导致应⽤的兼容性问题,重则系统可能就启不来了(当然旧内核没删还是可以选旧内核来启,前提是你的屏幕能直连机器⽽不是ssh)但如果你就是想要升级到不是官⽅使⽤的内核版本,那么也只能使⽤⼿动编译的⽅式升级3.1下载我们这⾥选择当前最新的4.14版本下载3.2 编译安装tar -zxf linux-4.14.tar.gzcd cd linux-4.14make mrpropermake clean #这两条⽤于清除之前编译⽣成的.ko和.configmake oldconfig #使⽤当前的内核配置make #编译,半⼩时以上是正常的make modules_install #把编译出的内核模块复制到/lib/modules/${KERNEL_VERSION}make installmake oldconfig⾏表⽰使⽤当前内核⼀样的配置,坏消息是⼀般新的功能还是要我们⾃⼰选择⽽且项数还不少,好消息是这些选择都有默认选项如果我们不在意这些新功能看也不看⼀直按住回车即可。
make config是每项都要⾃⼰选择,这个除了⾃⼰明⽩要什么配置不然不建议使⽤。
make default是直接使⽤linus提供的默认配置,这个基本什么不⽤选编译也很快但是也不建议⽤,编译快是因为很多东西都没启⽤使⽤这个内核你的发⾏版基本重启启不来了。
make报错:/bin/sh: bc: 未找到命令处理:yum install bc -ymake报错:openssl/opensslv.h: No such file or directory处理:yum install openssl-devel -y安装完成后使⽤reboot重启操作系统,再使⽤uname -r查看,内核成成功替换为4.14版本:参考:。
如何更新linux内核.doc
二 解开内核源码包
先以root身份登录系统,然后将源码包文件复制到/usr/src目录下,在这个目录中可能已经有了一个 linux 子目录,如果是这样的话,我们应该先给这个子目录改个名字,用如下命令
mv linux linux-old
也许你的/usr/src目录下并没有linux子目录,而是一个名为linux符号链接,这时只需把这个链接删除就可以了,如下
5.Memory Technology Device(MTD)
MTD设备支持。可不选。
6.Parallel port support
并口支持。如果不打算使用并口,就别选了。拥有并口设备(打印机)的人可能会对 Parallel port support 感兴趣。请注意:为了获得完整的打印机支持,除了启用此处适当的并行端口支持以外,还必须启用 Character devices 节下的 Parallel printer support。
cat linux-x.y.z.tar.bz2 | bzip2 -d | tar -xvf)
这样解包操作就完成了,我们会得到一个新的linux文件夹。
如果你还下载了相应的patch文件,此时你就可以给内核打补丁了(补丁文件同样要放在/usr/src目录下,并且也要解压),方法如下
patch -p0 < patch-x.y.z
下面让我们对常用的选项分别加以介绍。
1.Code maturity level options
代码成熟等级。此处只有一项:prompt for development and/or incomplete code/drivers
如果你要试验现在仍处于实验阶段的功能,比如khttpd、IPv6等,就必须把该项选择为Y了;否则可以把它选择为N。
记一次Linux内核升级修复系统漏洞(Centos7.4完整操作)
记⼀次Linux内核升级修复系统漏洞(Centos7.4完整操作)单位使⽤的⽹站服务器为centos 内核版本为:3.10.0-693.21.1.el7.x86_64, 2018年4⽉13号服务器商发来⼀条⾼危漏洞提⽰短信。
点击后台提供的修复的按钮却被告知升级到企业版云盾才能使⽤该功能。
⽹上查了⼀圈,硬是没有修复的⽅法,也找不到漏洞的补丁。
想了⼀下,既然说是内核漏洞,应该可以通过升级内核来解决这个问题。
漏洞说明打开Linux kernel官⽹,当前最新稳定版本为:4.16.2Linux kernel 4.16.2Linux ⼤神们对漏洞的修复⼀向积极,将内核更新,问题不就解决了吗?以下是实际步骤,忘了说⼀下,系统是:centos 7.4 64位服务器版本。
Linux内核升级通常有两种⽅式1. 下载新版内核到服务器上,进⾏编译安装,之后删除⽼内核,优点是:可完全控制编译项,缺点是:慢,且容易失败;2. 采⽤yum ⽅式安装,优点是:快捷⽅便,成功率⾼。
我这⾥采⽤第⼆种⽅式来安装,毕竟⽹站还在使⽤,不能耽误。
采⽤yum安装最多也就三五分钟的事,万⼀失败,还能补救。
说明:以下步骤如未特殊声明,均在 shell环境下执⾏命令⾏⼀:导⼊key# rpm --import https:///⼆:安装elrepo的yum源# rpm -Uvh /elrepo-release-7.0-2.el7.elrepo.noarch.rpm三:安装内核(默认安装最新稳定版本内核) # yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml四:查看启动顺序# awk -F\' '$1=='menuentry ' {print $2}' /etc/grub2.cfg新的内核版本默认会在最前⾯,下⾯将选择系统启动时的内核版本,顺序为 0 。
Linux2.6内核升级方法
Linux 2.6.9到Linux 2.6.36/2.6.29升级方法机器环境:Vmware + Rehat Linux kenel 2.6.9 虚拟的IDE文件硬盘,Grub 引导如果他人环境和上面不太一样,不保证下面方法一定能顺利成功内核升级目的:Linux下提供一个GenRomfs的工具,但是该工具既然只会生成romfs格式的文件,没有解包功能。
后来就想到Kernel本身也支持romfs挂载,于是就使用命令:mount –o loop romfs.img /mnt, 结果提示错误信息:mount: unknow filesystem type 'romfs'后来发现rehat 内置的kernel没有把rom filesystem support编译进来。
需要重新编译内核。
于是就干脆找个一个新一点的版本:2.6.36。
但是发现事情不太顺利,遇到了好几个问题,花了将近一天的时间才搞定,现将解决方法列出来,供其它人参考。
1.获取源码:Chinaunix:linux-2.6.36.tar.bz22.解包:为了便于以后定制内核,建议解压到/usr/src/kernels/linux-2.6.363.配置内核:根据以往经验,有些内核版本下载下来不一定能顺利编译通过,所以先试试编译情况:make menuconfig,然后保存退出make all最后果然出现一点意外,说是找不到函数:____ilog2_NaN,于是直接在sched.c加了这个空函数,也没去细究是什么原因引起的,先骗过去再说。
重新make all,最后编译通过。
真正开始定制内核:make menuconfig看了一下基本上默认的就可以,但是下面几个配置一定要加上,否则出现问题够受的。
Device Driver->network device support-> AMD Pcnet32 PCI support (*), 默认没加,如果不加,网口驱动找不到File system-> Miscellaneous filesystems->ROM file system support(*), 默认没加,根据个人需要可以不加。
如何升级 Linux 内核版本
如何升级 Linux 内核版本Linux 是一种非常强大的操作系统,它为用户提供了众多的选择和自由度。
其中最基本的就是内核。
内核是 Linux 系统的核心部分,它控制着整个系统的运行。
为了让 Linux 系统性能更好,我们可以通过升级内核来提高系统的运行速度和稳定性。
本文将介绍如何升级 Linux 内核版本。
一、为什么要升级 Linux 内核版本在使用 Linux 系统时,你会发现不同版本的内核会对系统性能产生很大的影响。
升级一个更高版本的内核,可以使系统运行更流畅、网络连接更稳定、设备驱动更完善、安全性更好,还可以提高系统稳定性和性能。
二、如何查找当前内核版本号在升级 Linux 内核版本之前,我们需要先查看当前内核的版本号。
可以运行以下命令:uname -a该命令将会显示当前的内核名称、版本号和日期等信息。
三、升级 Linux 内核版本的具体步骤1. 下载新版本内核源代码可以从官方网站或者其他网站获取最新版本的内核。
下载完成后,将其解压缩到任意的目录下。
2. 配置新内核进入到新内核的目录下,执行以下命令:make menuconfig该命令将会进入到新内核的配置界面。
在界面中,您可以根据自己的需要选择所需要的模块、设备驱动、选项等。
完成后,保存配置并退出。
3. 编译新内核执行以下命令,开始编译新内核:make该命令将会花费一些时间来编译新内核。
建议在命令后面添加一个-j参数,以加快编译速度:make -j44. 安装新内核在完成新内核的编译后,执行以下命令安装新内核:make modules_install install5. 重启系统在完成新内核的安装后,您需要重启系统以使其生效:reboot6. 检查新内核系统重新启动后,您可以通过以下命令检查新内核是否已经生效:uname -a如果新内核的版本和您刚刚安装的版本相同,则说明新内核已经生效。
四、如何降级内核版本在升级内核版本前,建议备份当前的内核版本。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
序言由于开发环境需要在linux-2.6内核上进行,于是准备对我的虚拟机上的Linux系统升级。
没想到这一弄就花了两天时间(反复装系统,辛苦啊~~),总算把Linux系统从2.4.20-8内核成功升级到了2.6.18内核。
网上虽然有很多介绍Linux内核升级的文章,不过要么过时,下载链接失效;要么表达不清,不知所云;更可气的是很多文章在转载过程中命令行都有错误。
刚开始我就是在这些“攻略”的指点下来升级的,以致于浪费了很多时间。
现在,费尽周折,升级成功,心情很爽,趁性也来写个“升级攻略”吧!于是特意又在虚拟机上重新安装一个Linux系统,再来一次完美的升级,边升级边记录这些步骤,写成一篇Linux内核升级记实录(可不是回忆录啊!),和大家一起分享~~!一、准备工作首先说明,下面带#号的行都是要输入的命令行,且本文提到的所有命令行都在终端里输入。
启动Linux系统,并用根用户登录,进入终端模式下。
1、查看Linux内核版本# uname -a如果屏幕显示的是2.6.x,说明你的已经是2.6的内核,也用不着看下文了,该干什么干什么去吧!~~~如果显示的是2.4.x,那恭喜你,闯关通过,赶快进行下一步。
2、下载2.6内核源码下载地址:/pub/linux/kernel/v2.6/linux-2.6.18.tar.bz23、下载内核升级工具(1)下载module-init-tools-3.2.tar.bz2/pub/linux/utils/kernel/module-init-tools/module-init-tools-3.2.tar.bz2(2)下载mkinitrd-4.1.18-2.i386.rpm/fedora/linux/3/i386/RPMS.core/mkinitrd-4.1.18-2.i386.rpm(3)下载lvm2-2.00.25-1.01.i386.rpm/fedora/linux/3/i386/RPMS.core/lvm2-2.00.25-1.01.i386.rpm(4)下载device-mapper-1.00.19-2.i386.rpm/fedora/linux/3/i386/RPMS.core/device-mapper-1.00.19-2.i386.rpm(2.6.18内核和这4个升级工具我都有备份,如果以上下载地址失效,请到/guestbook留下你的邮箱,我给你发过去)好啦,2.6内核和4个升级工具都下载完了(少一个也不行,如果没有下载齐全,请不要尝试下面的步骤,升级是不会成功的),下面回到Linux系统中开始配置工作吧。
4、将下载好的内核源码包和4个升级工具都拷贝到/usr/src文件夹下。
怎么拷贝就不用我教了吧~~~~不会拷贝的去撞墙吧!~~呵呵!5、拷贝完毕,开始解压新内核,具体操作请依次执行以下命令:# cd /usr/src (进入到/usr/src目录下,如果已经在/usr/src目录下,可不执行该命令)# rm –rf linux (删除linux文件夹。
值得一提的是,如果内核先前从未编译过,则没有这个文件夹,此命令行可略过)# tar jvxf linux-2.6.18.tar.bz2 (解压新内核)# ln -s linux-2.6.18 linux (重新生成linux文件夹)6、安装module-init-tools工具在/usr/src目录下,依次执行下列命令:# tar jvxf module-init-tools-3.2.tar.bz2 (解压module-init-tools)# cd module-init-tools-3.2 (由/usr/src目录进入module-init-tools目录下)#./configure --prefix=/# make moveold# make all install#./generate-modprobe.conf /etc/modprobe.conf7、安装另外三个升级工具回到/usr/src目录下,依次执行下列3个命令来安装另外三个升级工具:# rpm -ivh --nodeps mkinitrd-4.1.18-2.i386.rpm (注意,这里一定要加入--nodeps参数,下同)# rpm -ivh --nodeps lvm2-2.00.25-1.01.i386.rpm# rpm -ivh --nodeps device-mapper-1.00.19-2.i386.rpm如果不更新以上几个升级包,在后面编译内核时会提示以下错误:mkinitrd failedmake[1]: *** [install] Error 1make: *** [install] Error 28、配置内核选项。
有点繁琐,~~希望一次成功哦~~。
# cd linux-2.6.18 (进入到/usr/src/linux-2.6.18目录下)# make mrproper (该命令可确保源代码目录下没有不正确的.o文件)# make menuconfig (配置内核各选项)此时会出现一个图形界面,列出了所有的内核配置选项,有的选项下还有子选项,你可以用方向键来选择,。
经过我多次试验,大多数选项默认就行,以下几个选项必须选择(请认真核对下面每一个选项,否则编译很有可能前功尽弃):(1)Loadable Module support选项中,选上“Module unloading”和“Automatic kernel module loading”这两项;(2)Device Drivers--->Block Devices中选上“Loopback device support”;Device Drivers--->Multi-device support(RAID and LVM)处要选上“device mapper support”;Device Drivers--->Graphics support,一定要选上“ Support for frame buffer devices”;Device Drivers --->USB support --->选上“USB Mass Storage support”(如果是在实环境中,想要更多USB支持,就全选吧。
我的是在虚拟机中,用不着了)Device Drivers --->;Network device support --->Ethernet (10 or 100Mbit) ---><*> AMD PCnet32PCI support(3)File system--->(以下9个选项是关于ext2和ext3文件系统配置,全部选上)Second extended fs supportExt2 extended attributesExt2 POSIX Access Control ListsExt2 Security LabelsExt3 journalling file system supportExt3 extended attributesExt3 POSIX Access Control ListsExt3 Security LabelsJBB (ext3) debugging supportFile system--->DOS/FAT/NT Filesystems --->选上“NTFS file system support”;注意:ext2和ext3文件系统配置很重要,也是必需的,如果对Ext3、Ext2文件的支持直接编译进内核,在你reboot时机器就会当掉,出现如下错误信息:kernel panic : no init found ,try passing init = option to kernel.....或者是:VFS:Cannot open root device "hdxy" or unknow-block(0,0)Please append a correct "root=" boot optionkernel panic:VFS:Unable to mount root fs on unknown-block(0,0)或者是:mount: error 19 mounting ext3pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed: 2umount /initrd/proc fail: 2Freeing unused kernel memory: 244k freedKernel panic – not syncing: No init found. Try passing init = option to kernel(我的机器就是在重启之后出现第三种错误,进不去系统,郁闷死,只好重装了~~~如果依照本文做完所有步骤,当你重启Linux系统后,若不幸进不去2.6.18内核,你会发现你的出错信息就是上面三种了~~~哈!)(4)如果你在vmware下编译内核,硬盘用的是scsi的,以下三个选项必选:Device Drivers ---><*>SCSI device support (此项不选的话,下面两项就选择不上)Device Drivers ---><*>SCSI device support ---><*>SCSI disk supportDevice Drivers---><8>SCSI device support--->SCSI low-level drivers---><*>; BusLogic SCSI support三、编译工作OK,繁杂的配置工作完成了,至此,编译前的准备工作都做好了!9、开始编译啦……在/usr/src/linux-2.6.18目录下,执行以下命令即可编译。
编译需要一段时间,给自己倒杯茶耐心等候吧!# make dep (建立编译时所需的从属文件。
注意:如果内核从未编译过,此步可跳过)# make clean (清除内核编译的目标文件。
注意:如果内核从未编译过,此步可跳过)# make bzImage (注意大小写。
这一步才是真正编译内核)内核编译成功后,会在/usr/src/linux/arch/i386/boot目录中生成一个新内核的映像文件bzImage。
如果用makezImage编译,内核很大的话,系统会提示你使用make bzImage命令来编译,所以我直接用make bzImage来编译。