Linux kernel内核升级全过程,教你一次成功

合集下载

Linux内核的升级

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内核概览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系统内核版本升级【转】⼀、查看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内核升级方法

/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内核也在持续更新和优化,以满足不断变化的用户需求。

本文将介绍如何以一种优雅且安全的方式升级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内核升级的原理和过程。

一、Linux内核升级的原因1. 修复漏洞和安全问题:随着黑客技术的不断发展,Linux内核中可能存在一些漏洞和安全问题。

升级内核可以修复这些问题,提高系统的安全性。

2. 支持新硬件:新的硬件设备可能需要新的驱动程序才能正常工作。

升级内核可以提供对新硬件的支持。

3. 改进性能和稳定性:Linux内核的升级通常会带来性能和稳定性的改进,提高系统的运行效率和可靠性。

4. 新功能和特性:随着技术的不断发展,Linux内核会不断引入新的功能和特性,升级内核可以让用户享受到这些新功能带来的便利。

二、Linux内核升级的过程1. 获取新的内核版本:用户可以从Linux内核官方网站或其他可靠的软件源获取新的内核版本。

通常会提供源代码和预编译的内核镜像供用户选择。

2. 编译和安装内核:如果用户选择了源代码版本,需要将源代码编译成可执行的内核镜像。

编译过程需要配置内核参数、编译代码和链接,可以根据需要选择不同的配置选项。

编译完成后,用户可以将内核镜像安装到系统中。

3. 更新引导加载程序:内核升级后,需要更新引导加载程序(如GRUB)的配置文件,以便系统能够正确引导新的内核。

用户可以编辑引导加载程序配置文件,将新的内核添加到启动菜单中。

4. 重启系统:完成上述步骤后,用户可以重启系统。

在引导加载程序菜单中选择新的内核版本,系统将加载并运行新的内核。

5. 测试和验证:在使用新的内核版本之前,用户应该进行一些测试和验证工作,确保系统的稳定性和兼容性。

用户可以运行一些基准测试和功能测试,检查系统的性能和功能是否正常。

三、注意事项和常见问题1. 备份数据:在进行内核升级之前,用户应该备份重要的数据和配置文件,以防止意外数据丢失或系统损坏。

升级Linux操作系统内核奋斗记

升级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内核

升级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,搞定。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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来编译。

相关文档
最新文档