linux内核升级图文攻略
linux提升权限的方法
Linux系统中的常见权限提升技巧和防范方法权限提升是指利用系统或应用程序中的漏洞、设计缺陷或配置错误,使用户或进程获得比原来更高的权限,从而执行一些正常情况下无法执行的操作。
权限提升是黑客攻击的常用手段之一,可以用来窃取敏感信息、破坏系统功能、安装后门程序等。
在Linux系统中,权限提升通常涉及从普通用户或低权限用户提升到超级用户(root)或其他高权限用户,以获取对系统的完全控制。
本文将介绍Linux系统中的常见权限提升技巧和防范方法,以期为Linux系统的安全保护提供参考和指导。
一、Linux系统中的常见权限提升技巧Linux系统中的常见权限提升技巧可以分为以下几类:- 利用内核漏洞:内核是操作系统的核心部分,负责管理系统的资源和进程,具有最高的权限。
如果内核存在漏洞,那么就可能被恶意利用,从而执行任意代码,获取root权限。
例如,著名的Dirty COW漏洞(CVE-2016-5195)就是一种利用Linux内核中的写时复制(Copy-on-Write)机制的条件竞争漏洞,可以让普通用户修改只读的内存映射,从而提升权限。
利用内核漏洞的一般步骤是:(1)找到适用于目标系统内核版本的漏洞利用程序或代码;(2)将漏洞利用程序或代码上传到目标系统或通过网络传输到目标系统;(3)在目标系统上编译和执行漏洞利用程序或代码,获得root权限。
- 利用运行在root权限的服务或程序:在Linux系统中,有些服务或程序需要以root权限运行,以便完成一些特殊的功能。
如果这些服务或程序存在漏洞,或者配置不当,那么就可能被恶意利用,从而获取root权限。
例如,Samba是一种用于在Linux和Windows之间共享文件和打印机的服务,如果Samba服务以root权限运行,并且存在漏洞,那么就可能被远程攻击,从而执行任意代码,获取root权限。
利用运行在root权限的服务或程序的一般步骤是:(1)找到目标系统上运行在root权限的服务或程序,以及它们的版本和配置信息;(2)找到适用于目标服务或程序的漏洞利用程序或代码,或者构造符合目标服务或程序的配置要求的恶意输入;(3)通过网络或本地方式,向目标服务或程序发送漏洞利用程序或代码,或者恶意输入,获得root权限。
centos升级内核
Centos6.6源码升级内核到4.0.4Linux内核版本有两种:稳定版和开发版,Linux内核版本号由3个数字组成:r.x.y r: 主版本号x: 次版本号,偶数表示稳定版本;奇数表示开发中版本。
y: 修订版本号,表示修改的次数本人使用的环境:一台老旧的i686处理器电脑,安装的是centos6.6 内核版本:准备工作:官方的4.0.4的源码包U盘步骤一:解压:将所需文件复制到/usr/src 下并解压。
cp linux-3.2.14.tar.gz /usr/src/cd /usr/src/将文件解压到/usr/src/kernels# tar -xvf linux-4.0.4..tar.gz -C /usr/src/kernels更新当前系统:yum install updatesYum install ncurses-devel安装编译内核所需要的软件包:步骤二:配置文件查看当前系统内核:将当前系统的配置文件拷贝到当前目录:cp /boot/config-‘uname -r’ /usr/src/kernels/linux3.2.14/.config 通过菜单方式配置内核:# cd /usr/src/kernels/linux-3.2.14# make menuconfiglinux配置菜单如下图所示:一定要勾选(输入y选中,M编译为模块)a、General setup→[*] enable deprecated sysfs features to support old userspace toolsb、Processor type and features→HighMemory Support。
c、找到以下选中选项并选中:networking support →networking options →network packet filtering framework(netfilter) (1)Corenetfilter configuration. 勾中"Netfilter connection tracking support" -m state相关模块是依赖它的,不选则没有。
Linux终端命令系统更新和升级
Linux终端命令系统更新和升级随着科技的迅速发展和技术的不断变革,操作系统的更新和升级成为了必不可少的环节,特别是在Linux终端系统中。
本文将介绍如何在Linux终端系统中进行系统的更新和升级,以帮助用户保持系统的稳定性、安全性和功能性。
1. 检查系统更新系统更新是确保系统安全性的关键步骤。
在Linux终端中,我们可以使用以下命令来检查系统更新:```shell$ sudo apt update```该命令将会检查系统中可用的更新。
如果有可用的更新,可以通过以下命令进行系统更新:```shell$ sudo apt upgrade```这将会根据系统需要更新已安装的软件包。
2. 升级Linux内核Linux内核的升级对于系统的性能和功能非常重要。
在终端中,我们可以通过以下步骤来升级Linux内核:首先,我们需要安装Ukuu工具,它是一个用于安装和管理Linux 内核版本的工具。
使用以下命令来安装Ukuu:```shell$ sudo apt-add-repository -y ppa:teejee2008/ppa$ sudo apt update$ sudo apt install ukuu```安装完成后,我们可以使用Ukuu来查看可用的内核版本,并进行升级。
可以通过以下命令来打开Ukuu:```shell$ ukuu-gtk```在Ukuu界面中,选择一个新的内核版本,并点击"Install"按钮来开始升级过程。
升级完成后,重新启动系统以使新的内核版本生效。
3. 更新软件包管理器在Linux终端中,系统的软件包管理器负责管理和安装软件包。
因此,及时更新软件包管理器也是非常重要的。
不同的发行版使用不同的软件包管理器,下面给出一些常见发行版的更新命令:Ubuntu/Debian:```shell$ sudo apt update$ sudo apt upgrade```CentOS/Fedora:```shell$ sudo dnf update$ sudo dnf upgrade```Arch Linux:```shell$ sudo pacman -Syu```4. 安装和更新软件包在Linux终端中,我们可以使用软件包管理器来安装和更新软件包。
Linux kernel内核升级全过程,教你一次成功
序言由于开发环境需要在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系统中开始配置工作吧。
ubuntu12.04 升级内核实战
ubuntu12.04 升级内核实战ubuntu 12.04内核是linux 3.2.0-24,其实升级到最新版本3.3.4也没什么很大意义,主要是集成了一些新的驱动和一些普通用户用不到的功能,所以基本上本文纯属折腾,但不要随便升级当班设备啊!好了,不废话了,我们开始...........首先是准备条件:①、有一台装有ubuntu 12.04的机器②、先移步到/下载linux稳定版内核③、拥有root权限④、并将下载好的内核解压到/usr/src下,使用命令如下:#tar jxvf linux-3.3.4.tar.bz2这样你就可以得到一个名叫linux-3.3.4好,现在一切都准备好了,接下来就开始配置,编译,安装新内核吧!1,进入刚才的文件夹/usr/src/linux-3.3.4,输入命令:$ make mrproper该命令的功能在于清除当前目录下残留的.config和.o文件,这些文件一般是以前编译时未清理而残留的。
而对于第一次编译的代码来说,不存在这些残留文件,所以可以略过此步,但是如果该源代码以前被编译过,那么强烈建议执行此命令,否则后面可能会出现未知的问题。
2,配置编译选项作为操作系统的内核,其内容和功能必然非常繁杂,包括处理器调度,内存管理,文件系统管理,进程通讯以及设备管理等等,而对于不同的硬件,其配置选项也不相同,所以在编译源代码之前必须设置编译选项。
其实我觉得这一步是升级内核整个过程中最有技术含量的,因为要根据自己的需要正确选择yes or no需要对计算机方方面面的知识都有所了解。
但是这里的选项实在是太多了,大概有几百项之多,我以前曾尝试着一项一项的选,但是最后还是放弃了,因为有很多选项不是很明白。
既然这样,难道没有什么简便的方法么?当然有!那就是make menuconfig 或者make xconfig。
我使用的是make menuconfig,但是前提条件是要装ncurses。
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```这将花费一些时间来完成编译过程。
操作系统内核与XWindow升级
检查硬件兼容性
总结词
在升级之前,需要检查计算机硬件是否与新版本的XWindow兼容。
详细描述
随着操作系统的更新,对硬件的要求也会发生变化。在进行XWindow升级之前,用户需要检查计算 机的硬件配置是否满足新版本的要求。这包括CPU、内存、显卡、声卡等硬件设备。如果不满足要求 ,可能需要升级或更换硬件设备。
macOS内核
闭源、高性能、一体化,主要用于苹果公司的硬件产品。
操作系统内核的发展趋势
虚拟化技术
01
通过虚拟化技术实现硬件资源的共享和隔离,提高资源利用率
和安全性。
云计算技术
02
云计算技术使得计算资源可以动态扩展和灵活配置,满足各种
应用需求。
人工智能技术
03
人工智能技术可以用于操作系统内核的智能化管理,提高系统
XWindow系统的历史与发展
历史
XWindow系统起源于上世纪80年代,最初是为了提供UNIX操作系统的图形界面而开发,经过多年的发展和完善, 已经成为一个成熟的图形界面系统。
发展
随着计算机技术的不断发展,XWindow系统也在不断演进和完善,支持更多的操作系统和硬件平台,以及更加 丰富的图形界面和窗口管理功能。同时,XWindow系统也在不断与其他技术进行融合和创新,以适应不断变化 的应用需求和技术环境。
03
XWindow升级的必要性
提升系统性能
优化图形渲染
新版本的XWindow系统通常会带来图形渲染方面的优化,从而提高系统的整 体性能。
减少资源占用
通过改进内存管理和进程调度,新版本的XWindow可以降低系统资源的占用, 使得系统运行更加流畅。
修复系统漏洞
安全补丁
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时设置的那个。
Linuxkernel26内核升级完全配置详解
Linux 2.4 内核仅作参考。
对Linux 2.6.5以上内核,完全依照本文档配置不会出现问题,对Linux 2.6.5以下内核可能会出现U盘不能挂载和声卡不能发声问题。
注:内核配置选项中关于Frame Buffer的选项不能编译成模块,否则无法使用Frame Buffer。
特此说明!本文档中关于硬件选项请遵照自己电脑的配置选择!一、内核简介内核,是一个操作系统的核心。
它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
Linu x的一个重要的特点就是其源代码的公开性,所有的内核源程序都可以在/usr/src/linux下找到,大部分应用软件也都是遵循GPL而设计的,你都可以获取相应的源程序代码。
全世界任何一个软件工程师都可以将自己认为优秀的代码加入到其中,由此引发的一个明显的好处就是Linux修补漏洞的快速以及对最新软件技术的利用。
而Linux的内核则是这些特点的最直接的代表。
想象一下,拥有了内核的源程序对你来说意味着什么?首先,我们可以了解系统是如何工作的。
通过通读源代码,我们就可以了解系统的工作原理,这在Windows下简直是天方夜谭。
其次,我们可以针对自己的情况,量体裁衣,定制适合自己的系统,这样就需要重新编译内核。
在Windows下是什么情况呢?相信很多人都被越来越庞大的Windows整得莫名其妙过。
再次,我们可以对内核进行修改,以符合自己的需要。
这意味着什么?没错,相当于自己开发了一个操作系统,但是大部分的工作已经做好了,你所要做的就是要增加并实现自己需要的功能。
在Windows下,除非你是微软的核心技术人员,否则就不用痴心妄想了。
二、内核版本号由于Linux的源程序是完全公开的,任何人只要遵循GPL,就可以对内核加以修改并发布给他人使用。
Linux的开发采用的是集市模型(bazaar,与cathedral--教堂模型--对应),为了确保这些无序的开发过程能够有序地进行,Linux采用了双树系统。
Linux命令行中的系统更新和安全补丁技巧
Linux命令行中的系统更新和安全补丁技巧Linux作为一种广泛使用的操作系统,为了保证系统的稳定性和安全性,需要经常进行系统更新和安全补丁的操作。
本文将介绍一些在Linux命令行中进行系统更新和安全补丁的技巧。
一、系统更新技巧1. 使用apt-get命令进行包管理在许多Linux发行版中,可以使用apt-get命令来进行系统更新和软件包管理。
通过以下命令,可以更新系统中的所有软件包: ```sudo apt-get updatesudo apt-get upgrade```第一个命令用于更新软件包列表,第二个命令用于升级系统中的所有软件包。
2. 使用dnf命令进行包管理对于基于Fedora的Linux发行版,可以使用dnf命令来进行系统更新和软件包管理。
以下命令用于更新系统中的所有软件包: ```sudo dnf upgrade```通过该命令,可以升级系统中的所有软件包。
3. 使用yum命令进行包管理对于某些老版本的Linux发行版,可以使用yum命令来进行系统更新和软件包管理。
以下命令用于更新所有软件包:```sudo yum upgrade```通过该命令,可以升级系统中的所有软件包。
4. 使用zypper命令进行包管理对于openSUSE等Linux发行版,可以使用zypper命令来进行系统更新和软件包管理。
以下命令用于更新所有软件包:```sudo zypper update```通过该命令,可以升级系统中的所有软件包。
二、安全补丁技巧1. 定期检查安全公告阅读操作系统和相关软件的安全公告,了解当前系统可能存在的安全漏洞和已经发布的安全补丁。
可以通过官方的安全公告网站或邮件列表获取最新的信息。
2. 使用自动更新工具一些Linux发行版提供了自动更新工具,可以自动检查并安装系统和软件的安全补丁。
可以根据发行版的特点,选择合适的自动更新工具,并正确配置其参数。
3. 手动安装安全补丁对于没有自动更新工具的Linux发行版,可以手动安装安全补丁。
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终端中进行系统更新和升级的命令
在Linux终端中进行系统更新和升级的命令Linux操作系统在日常使用中需要进行系统更新和升级,以确保系统的安全性和稳定性。
在Linux终端中,我们可以使用一些命令来进行系统更新和升级的操作。
本文将介绍一些常用的Linux终端命令,帮助您完成系统的更新和升级。
1. apt-get命令apt-get命令是Debian系统中常用的命令,用于获取、更新和卸载软件包。
使用apt-get命令进行系统更新和升级的步骤如下:1.1 更新软件包列表:sudo apt-get update1.2 升级已安装的软件包:sudo apt-get upgrade1.3 升级所有软件包及其依赖:sudo apt-get dist-upgrade1.4 清理无用的软件包:sudo apt-get autoremove2. yum命令yum命令是Red Hat、CentOS等系统中常用的命令,用于获取、安装和卸载软件包。
使用yum命令进行系统更新和升级的步骤如下:2.1 更新软件包列表:sudo yum check-update2.2 升级已安装的软件包:sudo yum update2.3 升级所有软件包及其依赖:sudo yum upgrade2.4 清理无用的软件包:sudo yum autoremove3. dnf命令dnf命令是Fedora系统中常用的命令,用于获取、安装和卸载软件包。
使用dnf命令进行系统更新和升级的步骤如下:3.1 更新软件包列表:sudo dnf check-update3.2 升级已安装的软件包:sudo dnf upgrade3.3 升级所有软件包及其依赖:sudo dnf distro-sync3.4 清理无用的软件包:sudo dnf autoremove4. zypper命令zypper命令是openSUSE系统中常用的命令,用于获取、安装和卸载软件包。
使用zypper命令进行系统更新和升级的步骤如下:4.1 更新软件包列表:sudo zypper refresh4.2 升级已安装的软件包:sudo zypper update4.3 升级所有软件包及其依赖:sudo zypper dist-upgrade4.4 清理无用的软件包:sudo zypper clean5. pacman命令pacman命令是Arch Linux系统中常用的命令,用于获取、安装和卸载软件包。
Tinycore 安装到硬盘及升降级内核版本操作指南
TC Linux 安装到硬盘一:准备工具:安装介质: (可从网站下载得到)其中corePlus 属于加强版本,带无线支持。
Tinycore_view_1.4 属于vmware view 专属开发的专有版本。
这里重点讲这个版本。
二:刻录到U盘:这里可以用ultraISO工具刻录到U盘。
三:安装开始首先设置电脑的启动顺序为U盘启动,插入U盘。
从U盘启动到GUI桌面(保证电脑连接网线到互联网)任务栏点击Appbrowser,启动appbrowser点击connect 连接到网络在列表中选择Tc-install.tcz选中后,点击go,开始下载并加载。
该状态栏,显示了下载进度。
当状态栏变成黄色,并显示OK之时,则下载加载完毕。
选择任务栏tc_install 启动它。
Path to core.gz这里需要选择系统内核所在目录,我们选择u盘中的boot的core.gz 如下图点击向右箭头,下一步。
这里按照默认,继续点击下一步这里也按默认即可,继续下一步到这里需要选择要安装的系统组件所在目录。
我们按下图选择选好后,点击下一步这里确认一下全面的安装信息。
确认好后,点击Proceed 开始自动化安装。
当出现complete ,则安装完成。
然后点击任务栏的exit 手动重启。
这个时候可以拔除U盘,让机器从硬盘启动了。
TC Linux 升级(降级)内核版本一:准备工具:1:TFTP工具---3CDaemon2:替换用的核心包core.gz3:在本机设置好IP,并在瘦客户机设置好IP,并且网络可连通(ping可达)。
二:操作流程1:在本机用3CDaemon搭建tftp server。
首先解压,得到如下文件夹点击3CDaemon.EXE 启动程序点击“设置tftp服务器”,主要需要设置上传/下载目录。
设置好后,点击确定。
然后将文件core.gz拷贝到相应目录下到这里TFTP服务器端即设置好了。
下面是瘦客户端连接下载了。
1:启动瘦客户机到TC桌面,找到wbar上的终端图标,如下图红色框框部分。
Linux系统升级悲剧别急这里有救命的回滚教程等你拯救
Linux系统升级悲剧别急这里有救命的回滚教程等你拯救近年来,随着技术的不断进步,Linux系统在各个领域得到了广泛应用。
然而,在系统升级过程中,有时候不可避免地会遇到一些问题,造成系统无法正常运行或者出现其他异常情况。
这时候,回滚操作就是救命稻草。
本文将为大家介绍Linux系统升级悲剧的回滚教程,帮助大家解决系统升级问题,从而保障系统的稳定性和安全性。
一、备份重要数据在进行任何系统操作之前,备份是至关重要的。
尤其是在系统升级前,我们建议大家备份重要数据,以防止意外情况发生。
可以将数据复制到外部存储设备,或者使用云存储服务进行备份。
确保数据的完整性和安全性,以便在回滚操作之后能够快速恢复到升级之前的状态。
二、了解系统版本和升级选项在进行系统升级之前,必须了解当前系统的版本以及可以选择的升级选项。
不同的Linux发行版(如Ubuntu、CentOS等)可能会有不同的升级机制和工具。
我们建议用户仔细查阅相关文档或者官方网站,了解系统升级的细节和注意事项,以避免不必要的问题。
三、安全的升级操作在进行系统升级之前,需要确保系统处于一个安全的状态。
关闭所有正在运行的程序和服务,以免干扰升级过程。
同时,确保网络连接的稳定性,以避免下载升级包时出现中断或错误。
四、使用包管理器回滚系统包管理器是Linux系统中常用的软件安装和升级工具。
大部分Linux发行版都会提供自己的包管理器,如Ubuntu使用apt、CentOS使用yum等。
在升级过程中,包管理器会下载和安装更新的软件包。
如果在升级过程中出现问题,可以使用包管理器的回滚功能来还原系统。
具体操作方式可能会有所不同,但一般来说,可以使用类似于以下命令进行回滚:```sudo apt-get install package_name=version```其中,package_name是要回滚的软件包的名称,version是要回滚到的版本号。
通过指定要回滚的软件包和版本号,包管理器会自动下载并安装指定版本的软件包,从而实现系统的回滚。
在Linux终端中进行系统更新和升级
在Linux终端中进行系统更新和升级Linux是一种开源的操作系统,它的核心是Linux内核。
与其他操作系统不同,Linux系统可以通过终端来进行系统更新和升级,以保持系统的安全性和稳定性。
本文将介绍如何在Linux终端中进行系统更新和升级以及相关的注意事项。
1. 使用包管理器更新软件包在Linux系统中,常用的包管理器有apt、yum和dnf等。
这些包管理器可以帮助我们安装、更新和卸载软件包。
为了保持系统的安全性和稳定性,我们应该定期更新软件包。
以下是一些常用的包管理器及其使用方法:- apt:适用于Debian、Ubuntu等基于Debian的系统。
使用以下命令更新软件包:```sudo apt update # 更新软件包列表sudo apt upgrade # 更新已安装的软件包```- yum:适用于CentOS、Fedora等基于Red Hat的系统。
使用以下命令更新软件包:```sudo yum update # 更新软件包```- dnf:适用于Fedora 22及以上版本。
使用以下命令更新软件包:```sudo dnf upgrade # 更新软件包```2. 更新系统内核Linux系统的内核是其核心部分,它控制着系统的各个方面。
更新系统内核可以修复漏洞和改进系统性能。
以下是更新系统内核的一些常用方法:- 使用包管理器更新内核:通过包管理器可以方便地更新系统内核。
具体操作方法请参考对应的包管理器文档。
- 手动编译安装内核:如果需要使用最新版本的内核或者进行定制化配置,可以选择手动编译安装内核。
这个过程略显复杂,需要一定的Linux基础知识和编程技能。
3. 升级Linux发行版当一个Linux发行版的新版本发布时,升级到新版本可以获得更多的功能和改进的性能。
以下是一些常用的Linux发行版升级方法:- 使用包管理器升级:某些Linux发行版提供了方便的升级工具,通过包管理器即可完成升级。
Linux命令高级技巧之系统更新与升级
Linux命令高级技巧之系统更新与升级操作系统的更新与升级是保持系统安全性和稳定性的重要步骤。
Linux作为一个开源操作系统,在这个领域具有广泛的应用。
本文将介绍Linux系统更新与升级的高级技巧,旨在帮助读者更好地进行系统维护和管理。
一、概述在开始讨论Linux系统更新与升级之前,先来了解一下为什么需要更新与升级。
随着时间的推移,操作系统会收到各种漏洞和安全威胁的挑战。
为了解决这些问题,开发者会定期发布新的补丁和更新。
通过应用这些更新,系统的性能可以得到改进,同时也可以提高安全性,防止未知漏洞的攻击。
二、系统更新系统更新是指应用补丁和更新程序来修复系统的漏洞和错误。
在Linux上,我们可以使用以下命令来进行系统更新:1. apt-get update该命令会更新本地存储库中可用软件包的最新列表。
在更新之前,务必确保网络连接正常。
2. apt-get upgrade该命令用于升级可用的软件包。
它会自动安装最新版本的软件包,以保持系统与最新补丁的同步。
3. apt-get dist-upgrade该命令比apt-get upgrade更进一步,它可以处理软件包之间的依赖关系,并在必要时删除或添加软件包。
三、内核升级内核是操作系统的核心部分,是与硬件直接交互的重要组件。
为了获得更好的性能和更好的硬件兼容性,有时需要升级内核。
在Linux上,可以使用以下命令来进行内核升级:1. apt-get install linux-image-{version}该命令可以安装指定版本的内核镜像。
在升级内核之前,建议先备份系统,以防止升级过程中出现问题。
2. update-grub该命令会更新系统引导程序Grub的配置文件,将新安装的内核镜像添加到引导菜单中,以便在重启后选择新内核。
四、软件包管理除了系统更新和内核升级,软件包管理也是Linux中重要的一个方面。
下面介绍几个常用的软件包管理工具:1. apt-get install {package}该命令可以安装指定名称的软件包。
Redhat 5.4升级内核到5.8
目录Redhat 5.4升级内核到5.8 (2)一、使用5.8安装介质中的内核包直接升级 (2)二、通过Redhat内核源码包升级 (5)三、通过Linux内核官网源码压缩包升级 (9)Redhat 5.4升级内核到5.8一、使用5.8安装介质中的内核包直接升级1.系统当前的状态[root@u70151 ~]# uname -aLinux u70151 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:48 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux[root@u70151 ~]# cat /etc/redhat-releaseRed Hat Enterprise Linux Server release 5.4 (Tikanga)[root@u70151 boot]# cd /boot[root@u70151 boot]# ls -l |grep -iE '*.img|vmlinuz*'-rw------- 1 root root 3418050 Aug 22 09:23 initrd-2.6.18-164.el5.img-rw-r--r-- 1 root root 1932316 Aug 19 2009 vmlinuz-2.6.18-164.el5[root@u70151 ~]# cat /boot/grub/menu.lst# grub.conf generated by anaconda## Note that you do not have to rerun grub after making changes to this file# NOTICE: You have a /boot partition. This means that# all kernel and initrd paths are relative to /boot/, eg.# root (hd0,0)# kernel /vmlinuz-version ro root=/dev/VolGroup01/LogVol00# initrd /initrd-version.img#boot=/dev/sdadefault=0timeout=5splashimage=(hd0,0)/grub/splash.xpm.gzhiddenmenutitle Red Hat Enterprise Linux Server (2.6.18-164.el5)root (hd0,0)kernel /vmlinuz-2.6.18-164.el5 ro root=/dev/VolGroup01/LogVol00 rhgb quietinitrd /initrd-2.6.18-164.el5.img[root@u70151 ~]# rpm -qa|grep kernelkernel-2.6.18-164.el52.上传5.8安装介质中的内核包[root@u70151 ~]# ls -l kernel*-rw-r--r-- 1 root root 22507963 Aug 22 09:43 kernel-2.6.18-308.el5.x86_64.rpm3.安装新的内核包[root@u70151 ~]# rpm -ivh kernel-2.6.18-308.el5.x86_64.rpmwarning: kernel-2.6.18-308.el5.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID e8562897Preparing... ########################################### [100%]1:kernel ########################################### [100%]4.安装完成后的状态[root@u70151 ~]# rpm -qa|grep kernelkernel-2.6.18-164.el5kernel-2.6.18-308.el5[root@u70151 ~]# cat /boot/grub/menu.lst# grub.conf generated by anaconda## Note that you do not have to rerun grub after making changes to this file# NOTICE: You have a /boot partition. This means that# all kernel and initrd paths are relative to /boot/, eg.# root (hd0,0)# kernel /vmlinuz-version ro root=/dev/VolGroup01/LogVol00# initrd /initrd-version.img#boot=/dev/sdadefault=0timeout=5splashimage=(hd0,0)/grub/splash.xpm.gzhiddenmenutitle Red Hat Enterprise Linux Server (2.6.18-308.el5)root (hd0,0)kernel /vmlinuz-2.6.18-308.el5 ro root=/dev/VolGroup01/LogVol00 rhgb quietinitrd /initrd-2.6.18-308.el5.imgtitle Red Hat Enterprise Linux Server (2.6.18-164.el5)root (hd0,0)kernel /vmlinuz-2.6.18-164.el5 ro root=/dev/VolGroup01/LogVol00 rhgb quietinitrd /initrd-2.6.18-164.el5.img[root@u70151 boot]# cd /boot[root@u70151 boot]# ls -l |grep -iE '*.img|vmlinuz*'-rw------- 1 root root 3418050 Aug 22 09:23 initrd-2.6.18-164.el5.img-rw------- 1 root root 3424299 Aug 22 09:44 initrd-2.6.18-308.el5.img-rw-r--r-- 1 root root 1932316 Aug 19 2009 vmlinuz-2.6.18-164.el5-rw-r--r-- 1 root root 2115772 Feb 22 09:36 vmlinuz-2.6.18-308.el55.启动时可以选择使用哪个内核6.使用新内核启动后的结果[root@u70151 ~]# uname -aLinux u70151 2.6.18-308.el5 #1 SMP Tue Feb 21 20:06:06 EST 2012 x86_64 x86_64 x86_64 GNU/Linux[root@u70151 ~]# cat /etc/redhat-releaseRed Hat Enterprise Linux Server release 5.4 (Tikanga)二、通过Redhat内核源码包升级1.在ftp:///pub/redhat/linux/enterprise/5Server/en/os/SRPMS/下载需要的内核源码安装包2.上传内核源码安装包3.安装内核源码包[root@u70151 ~]# ls -l ker*-rw-r--r-- 1 root root 67181329 Aug 22 11:35 kernel-2.6.18-308.8.2.el5.src.rpm [root@u70151 ~]# mkdir -p /usr/src/redhat/SOURCES[root@u70151 ~]# rpm -ivh kernel-2.6.18-308.8.2.el5.src.rpm4.安装编译需要的包rpm -ivh nspr-devel-4.7.4-1.el5_3.1.*rpm -ivh elfutils-libs-0.137-3.el5.x86_64.rpmrpm -ivh elfutils-0.137-3.el5.x86_64.rpmrpm -ivh rpm-build-4.4.2.3-18.el5.x86_64.rpmrpm -ivh kernel-headers-2.6.18-164.el5.x86_64.rpmrpm -ivh glibc-headers-2.5-42.x86_64.rpmrpm -ivh glibc-devel-2.5-42.*rpm -ivh libgomp-4.4.0-6.el5.*rpm -ivh gcc-4.1.2-46.el5.x86_64.rpmrpm -ivh redhat-rpm-config-8.0.45-32.el5.noarch.rpmrpm -ivh unifdef-1.171-5.fc6.x86_64.rpmrpm -ivh ncurses-devel*5.编译源码[root@u70151 SPECS]# cd /usr/src/redhat/SPECS[root@u70151 SPECS]# lskernel.spec[root@u70151 SPECS]# rpmbuild -bp --target=x86_64 kernel.spec[root@u70151 ~]# cd /usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18-308.8.2.el5.x86_64 [root@u70151 linux-2.6.18-308.8.2.el5.x86_64]# mkdir -p /home/2.6.18-308/out[root@u70151 linux-2.6.18-308.8.2.el5.x86_64]# make O=/home/2.6.18-308/outmenuconfig[root@u70151 linux-2.6.18-308.8.2.el5.x86_64]# make mrproper[root@u70151 linux-2.6.18-308.8.2.el5.x86_64]# make O=/home/2.6.18-308/out[root@u70151 linux-2.6.18-308.8.2.el5.x86_64]#sudo make O=/home/2.6.18-308/outmodules_install install6.安装完成后的结果[root@u70151 linux-2.6.18-308.8.2.el5.x86_64]# cat /boot/grub/menu.lst# grub.conf generated by anaconda## Note that you do not have to rerun grub after making changes to this file# NOTICE: You have a /boot partition. This means that# all kernel and initrd paths are relative to /boot/, eg.# root (hd0,0)# kernel /vmlinuz-version ro root=/dev/VolGroup01/LogVol00# initrd /initrd-version.img#boot=/dev/sdadefault=1timeout=5splashimage=(hd0,0)/grub/splash.xpm.gzhiddenmenutitle Red Hat Enterprise Linux Server (2.6.18-prep)root (hd0,0)kernel /vmlinuz-2.6.18-prep ro root=/dev/VolGroup01/LogVol00 rhgb quietinitrd /initrd-2.6.18-prep.imgtitle Red Hat Enterprise Linux Server (2.6.18-308.el5)root (hd0,0)kernel /vmlinuz-2.6.18-308.el5 ro root=/dev/VolGroup01/LogVol00 rhgb quietinitrd /initrd-2.6.18-308.el5.imgtitle Red Hat Enterprise Linux Server (2.6.18-164.el5)root (hd0,0)kernel /vmlinuz-2.6.18-164.el5 ro root=/dev/VolGroup01/LogVol00 rhgb quietinitrd /initrd-2.6.18-164.el5.img[root@u70151 linux-2.6.18-308.8.2.el5.x86_64]# cd /boot[root@u70151 boot]# ls -l |grep -iE '*.img|vmlinuz*'-rw------- 1 root root 3418050 Aug 22 09:23 initrd-2.6.18-164.el5.img-rw------- 1 root root 3424299 Aug 22 09:44 initrd-2.6.18-308.el5.img-rw------- 1 root root 3424388 Aug 22 13:24 initrd-2.6.18-prep.imglrwxrwxrwx 1 root root 25 Aug 22 13:23 vmlinuz -> /boot/vmlinuz-2.6.18-prep -rw-r--r-- 1 root root 1932316 Aug 19 2009 vmlinuz-2.6.18-164.el5-rw-r--r-- 1 root root 2115772 Feb 22 09:36 vmlinuz-2.6.18-308.el5-rw-r--r-- 1 root root 2118204 Aug 22 13:23 vmlinuz-2.6.18-prep7.启动时可以选择使用哪个内核[root@u70151 ~]# uname -aLinux u70151 2.6.18-prep #1 SMP Wed Aug 22 13:01:27 CST 2012 x86_64 x86_64 x86_64 GNU/Linux三、通过Linux内核官网源码压缩包升级1.在/pub/linux/kernel/v2.6/下载需要的内核源码压缩包2.上传下载的压缩包3.解压内核源码压缩包[root@u70151 ~]# ls -l *.bz2-rw-r--r-- 1 root root 76096559 Aug 22 14:07 linux-2.6.39.tar.bz2[root@u70151 src]# cd /usr/src[root@u70151 src]# tar -jxvf /root/linux-2.6.39.tar.bz2[root@u70151 src]# ls -ltotal 8drwxr-xr-x 23 root root 4096 May 19 2011 linux-2.6.39drwxr-xr-x 7 root root 4096 Aug 22 12:06 redhat[root@u70151 src]# cd linux-2.6.39/4.编译安装[root@u70151 linux-2.6.39]#mkdir -p /home/2.6.39/out[root@u70151 linux-2.6.39]#make O=/home/2.6.39/out menuconfigvi /home/2.6.39/out/.config增加CONFIG_SYSFS_DEPRECATED_V2=y[root@u70151 linux-2.6.39]#make mrproper[root@u70151 linux-2.6.39]#make O=/home/2.6.39/out[root@u70151 linux-2.6.39]#sudo make O=/home/2.6.39/out modules_install install 完成后的状态[root@u70151 linux-2.6.39]# cat /boot/grub/menu.lst# grub.conf generated by anaconda## Note that you do not have to rerun grub after making changes to this file# NOTICE: You have a /boot partition. This means that# all kernel and initrd paths are relative to /boot/, eg.# root (hd0,0)# kernel /vmlinuz-version ro root=/dev/VolGroup01/LogVol00# initrd /initrd-version.img#boot=/dev/sdadefault=2timeout=5splashimage=(hd0,0)/grub/splash.xpm.gzhiddenmenutitle Red Hat Enterprise Linux Server (2.6.39)root (hd0,0)kernel /vmlinuz-2.6.39 ro root=/dev/VolGroup01/LogVol00 rhgb quietinitrd /initrd-2.6.39.imgtitle Red Hat Enterprise Linux Server (2.6.18-prep)root (hd0,0)kernel /vmlinuz-2.6.18-prep ro root=/dev/VolGroup01/LogVol00 rhgb quietinitrd /initrd-2.6.18-prep.imgtitle Red Hat Enterprise Linux Server (2.6.18-308.el5)root (hd0,0)kernel /vmlinuz-2.6.18-308.el5 ro root=/dev/VolGroup01/LogVol00 rhgb quietinitrd /initrd-2.6.18-308.el5.imgtitle Red Hat Enterprise Linux Server (2.6.18-164.el5)root (hd0,0)kernel /vmlinuz-2.6.18-164.el5 ro root=/dev/VolGroup01/LogVol00 rhgb quietinitrd /initrd-2.6.18-164.el5.img[root@u70151 linux-2.6.39]# cd /boot[root@u70151 boot]# ls -l |grep -iE '*.img|vmlinuz*'-rw------- 1 root root 3418050 Aug 22 09:23 initrd-2.6.18-164.el5.img-rw------- 1 root root 3424299 Aug 22 09:44 initrd-2.6.18-308.el5.img-rw------- 1 root root 3424388 Aug 22 13:24 initrd-2.6.18-prep.img-rw------- 1 root root 2933532 Aug 22 14:31 initrd-2.6.39.imglrwxrwxrwx 1 root root 20 Aug 22 14:31 vmlinuz -> /boot/vmlinuz-2.6.39-rw-r--r-- 1 root root 1932316 Aug 19 2009 vmlinuz-2.6.18-164.el5-rw-r--r-- 1 root root 2115772 Feb 22 09:36 vmlinuz-2.6.18-308.el5-rw-r--r-- 1 root root 2118204 Aug 22 13:23 vmlinuz-2.6.18-prep-rw-r--r-- 1 root root 4187504 Aug 22 14:31 vmlinuz-2.6.398.启动时可以选择使用哪个内核[root@u70151 ~]# uname -aLinux u70151 2.6.39 #1 SMP Wed Aug 22 16:02:29 CST 2012 x86_64 x86_64 x86_64 GNU/Linux9.其他“insmod: error inserting ‘/lib/dm-region-hash.ko’: –1 File exits”错误的修正[root@u70151 ~]# cd /boot[root@u70151 boot]# ls -l *39*.img-rw------- 1 root root 3432925 Aug 22 16:16 initrd-2.6.39.img[root@u70151 boot]# cp initrd-2.6.39.img /tmp[root@u70151 boot]# cd /tmp[root@u70151 tmp]# mkdir img[root@u70151 tmp]# cd img[root@u70151 img]# zcat ../initrd-2.6.39.img |cpio -i15932 blocks[root@u70151 img]# lsbin dev etc init lib proc sbin sys sysrootvi initecho "Loading dm-region-hash.ko module"insmod /lib/dm-region-hash.ko重复了,删掉一个[root@u70151 img]# find .|cpio -c -o > ../initrd 15932 blocks[root@u70151 img]# cd ..[root@u70151 tmp]# gzip -9 < initrd > initrd-2.6.39.img。
CentOS5升级内核
CentOS5.5系统升级内核tiancong【一、权限切换】[test@TJCentOS ~]$ su -口令:注:在需要对系统的配置进行设置的时候,大部分情况下都需要从普通用户切换到超级用户。
【二、查看内核版本】[root@TJCentOS ~]# uname -r2.6.18-194.el5注:此次查看的版本,要和升级后的版本号相比较,如果升级成功会显示新的版本号。
【三、下载新内核】[root@TJCentOS ~]# cd /usr/src/[root@TJCentOS src]#wget ftp:///pub/linux/kernel/v2.6/linux-2.6.30.tar.gz 注:weget程序是一个命令行下的下载工具。
【四、解压内核压缩包】[root@TJCentOS ~]# tar -xzvf linux-2.6.30.tar.gz -C /usr/src注:“-C /usr/src”表示,将文件解压到指定目录“/usr/src”。
由于第三步中已经切换了工作目录,故此处此参数可略。
【五、内核升级设置一】[root@TJCentOS src]# cd linux-2.6.30[root@TJCentOS linux-2.6.30]# make mrpropermake: gcc:命令未找到注:在安装系统的时候,最好将gcc安装上,不然此处会报错,如果现在安装方式如下:1.将光盘镜像CentOS-5.5-i386-bin-DVD.iso装入虚拟机光驱。
2.[root@TJCentOS linux-2.6.30]# mkdir /mnt/cdrom3.[root@TJCentOS linux-2.6.30]# mount /dev/cdrom /mnt/cdrom4.[root@TJCentOS linux-2.6.30]# cd /mnt/cdrom/CentOS/5.[root@TJCentOS CentOS]# rpm -ivh libgomp-4.4.0-6.el5.i386.rpm glibc-devel-2.5-49.i386.rpm glibc-headers-2.5-49.i386.rpm kernel-headers-2.6.18-194.el5.i386.rpm gcc-4.1.2-48.el5.i386.rpm 注:在安装过程中这些包,都可以连锁的找到,不建议此操作,故过程从简。
如何升级 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内核升级图文攻略一、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代表较小的末版本号。
只有在内核发生很大变化时(历史上只发生过两次,1994年的1.0,1996年的2.0),A才变化。
可以通过数字B来判断Linux是否稳定,偶数的B代表稳定版,奇数的B代表开发版。
C代表一些bug修复,安全更新,新特性和驱动的次数。
以版本2.4.0为例,2代表主版本号,4代表次版本号,0代表改动较小的末版本号。
在版本号中,序号的第二位为偶数的版本表明这是一个可以使用的稳定版本,如2.2.5; 而序号的第二位为奇数的版本一般有一些新的东西加入,是个不一定很稳定的测试版本,如2.3.1。
这样稳定版本来源于上一个测试版升级版本号,而一个稳定版本发展到完全成熟后就不再发展。
. 第三种方式从2004年2.6.0版本开始,使用一种“time-based”的方式。
3.0版本之前,是一种“A.B.C.D”的格式。
七年里,前两个数字A.B即“2.6”保持不变,C随着新版本的发布而增加,D代表一些bug修复,安全更新,添加新特性和驱动的次数。
3.0版本之后是“A.B.C”格式,B随着新版本的发布而增加,C代表一些bug修复,安全更新,新特性和驱动的次数。
第三种方式中不使用偶数代表稳定版,奇数代表开发版这样的命名方式。
举个例子:3.7.0代表的不是开发版,而是稳定版!linux内核升级时间图谱如下:linux内核版本的详细表格如下(/wiki/Linux_kernel#Version_number ing):longterm support:提供长期支持的内核版本stable:稳定版本,而不是Beta测试版关系就是:稳定版本不一定都提供长期支持,而提供长期支持的一定是稳定版本3. linux发行版Linux内核的发展过程中,我们还不得不提一下各种Linux发行版的作用,因为正是它们推动了Linux的应用,从而也让更多的人开始关注Linux。
一些组织或厂家,将Linux系统的内核与外围实用程序(Utilities)软件和文档包装起来,并提供一些系统安装界面和系统配置、设定与管理工具,就构成了一种发行版本(distribution),Linux的发行版本其实就是Linux核心再加上外围的实用程序组成的一个大软件包而已。
相对于Linux操作系统内核版本,发行版本的版本号随发布者的不同而不同,与Linux系统内核的版本号是相对独立的。
因此把SUSE、RedHat、Ubuntu、Slackware等直接说成是Linux是不确切的,它们是Linux 的发行版本,更确切地说,应该叫做“以Linux为核心的操作系统软件包”。
根据GPL准则,这些发行版本虽然都源自一个内核,并且都有自己各自的贡献,但都没有自己的版权。
Linux的各个发行版本(distribution),都是使用Linus主导开发并发布的同一个Linux内核,因此在内核层不存在什么兼容性问题。
每个版本都不一样的感觉,只是在发行版本的最外层才有所体现,而绝不是Linux本身特别是内核不统一或是不兼容。
90年代初期Linux开始出现的时候,仅仅是以源代码形式出现,用户需要在其他操作系统下进行编译才能使用。
后来出现了一些正式版本。
目前最流行的几个正式版本有:SUSE、RedHat、Fedora、Debian、Ubuntu、CentOS、Gentoo,等等。
用户可根据自己的经验和喜好选用合适的Linux发行版。
二、内核升级攻略1. 查看linux内核版本:# uname -r2.6.18-194.el52. 下载新的内核版本:去官网上下载最新的内核版本和对应的补丁:https:///我选的是3.2.14#wget -c/pub/linux/kernel/v3.0/linux-3.2.14.tar .bz23. 解压将所需文件复制到/usr/src 下并解压。
(注:如果/usr/src下的空间不够,将源文件放在别的目录下也是一样的)# cp linux-3.2.14.tar.gz /usr/src/# cd /usr/src/将文件解压到/usr/src/kernels# tar -xvf linux-3.2.14.tar.gz -C/usr/src/kernels4. 清理文件清除掉以前升级留下的一些不正确文件。
# cd /usr/src/kernels/linux-3.2.14# yum install ncurses-devel #升级ncurses# make mrporper# cp /boot/config-‘uname -r’ /usr/src/kernels/linux3.2.14/.config #使用原来的配置文件5. 通过菜单方式配置内核# cd/usr/src/kernels/linux-3.2.14# make menuconfiglinux配置菜单如下图所示:一定要勾选(输入y选中,M编译为模块)a、General setup→[*] enable deprecated sysfs features to support old userspace toolsb、Processor type and features→HighMemory Support。
c、找到以下选中选项并选中:networking support → networking options → network packet filtering framework(netfilter)(1)Corenetfilter configuration. 勾中"Netfilter connection tracking support" -m state相关模块是依赖它的,不选则没有。
. 将netbios name service protocal support(new) 编译成模块,不然后面升级iptables后启动时会出错. 勾中"Netfilter Xtables support (required for ip_tables)"(2)IP: Netfilter Configuration. 将"IPv4 connection tracking support (require for NAT)" 编译成模块。
. 勾中IP tables support (required for filtering/masq/NAT) 。
. 将"Full NAT" 下的"MASQUERADE target support" 和"REDIRECT target support" 编译成模块6. 编译并安装内核# make clean// 清除下内核编译的目标文件# make bzImage // 生成内核文件# make modules // 编码模块# make modules_install // 安装模块# make install // 安装7. 编辑开机菜单选项grub文件将default=1 改为default=0# vim /etc/grub.conf# grub.conf generated by anaconda## Note that you do not have to rerun grub aftermaking changes to this file# NOTICE: You do not have a /boot partition. This means that# all kernel and initrd paths are relative to /, eg.# root (hd0,0)# kernel /boot/vmlinuz-version ro root=/dev/sda1#initrd/boot/initrd-version.img#boot=/dev/sdadefault=0timeout=5 splashimage=(hd0,0)/boot/grub/splash.xpm.gzhiddenmen utitle Red Hat Enterprise Linux Server (3.2.14)root (hd0,0) kernel /boot/vmlinuz-3.2.14 roroot=LABEL=/ initrd /boot/initrd-3.2.14.imgtitle Red Hat Enterprise Linux Server (2.6.18-274.el5)root (hd0,0) kernel /boot/vmlinuz-2.6.18-274.el5 ro root=LABEL=/ initrd/boot/initrd-2.6.18-274.el5.img【保存并退出】8. 重启# shutdown -r "now"9. 查看内核编译结果# uname-r3.2.14-rt24三、内核编译中遇到的错误及解决办法错误一、编译时出现错误提示In file included from/usr/include/sys/time.h:31, from/usr/include/linux/input.h:12, from samples/hidraw/hid-example.c:14:/usr/include/sys/select.h :78: error: conflicting types for'fd_set'/usr/include/linux/types.h:12: error: previousdeclaration of 'fd_set' was hereIn file included from/usr/include/linux/input.h:14, from samples/hidraw/hid-example.c:14:/usr/include/sys/types.h: 46: error: conflicting types for'loff_t'/usr/include/linux/types.h:30: error: previous declaration of 'loff_t' was here/usr/include/sys/types.h:62: error: conflicting types for'dev_t'/usr/include/linux/types.h:13: error: previous declaration of 'dev_t' was hereIn file included from/usr/include/sys/types.h:133, from/usr/include/linux/input.h:14, from samples/hidraw/hid-example.c:14:/usr/include/time.h:105: error: conflicting types for'timer_t'/usr/include/linux/types.h:22: error: previous declaration of 'timer_t' was hereIn file included from/usr/include/linux/input.h:14, from samples/hidraw/hid-example.c:14:/usr/include/sys/types.h: 198: error: conflicting types for'int64_t'/usr/include/linux/types.h:98: error: previous declaration of 'int64_t' washere/usr/include/sys/types.h:204: error: conflicting types for 'u_int64_t'/usr/include/linux/types.h:97: error: previousdeclaration of 'u_int64_t' was hereIn file included from/usr/include/linux/input.h:14, from samples/hidraw/hid-example.c:14:/usr/include/sys/types.h: 235: error: conflicting types for'blkcnt_t'/usr/include/linux/types.h:114: error: previous declaration of 'blkcnt_t' washeresamples/hidraw/hid-example.c:15:26: error:linux/hidraw.h: No such file ordirectorysamples/hidraw/hid-example.c: In function'main':samples/hidraw/hid-example.c:48: error: storage size of 'rpt_desc' isn'tknownsamples/hidraw/hid-example.c:49: error: storage size of 'info' isn't knownsamples/hidraw/hid-example.c:65: error: 'HIDIOCGRDESCSIZE' undeclared (first use in this function)samples/hidraw/hid-example.c:65: error: (Each undeclared identifier is reported onlyoncesamples/hidraw/hid-example.c:65: error: for each function it appears in.)samples/hidraw/hid-example.c:73: error: 'HIDIOCGRDESC' undeclared (first use in this function)samples/hidraw/hid-example.c:84: warning: implicit declaration of function'HIDIOCGRAWNAME'samples/hidraw/hid-example.c:91:warning: implicit declaration of function'HIDIOCGRAWPHYS'samples/hidraw/hid-example.c:98: error: 'HIDIOCGRAWINFO' undeclared (first use in this function)samples/hidraw/hid-example.c:49: warning: unused variable 'info'samples/hidraw/hid-example.c:48: warning: unused variable'rpt_desc'samples/hidraw/hid-example.c: In function'bus_str':samples/hidraw/hid-example.c:171: error:'BUS_VIRTUAL' undeclared (first use in thisfunction)make[2]: *** [samples/hidraw/hid-example] Error 1make[1]: *** [samples/hidraw] Error 2make: *** [vmlinux] Error 2解决方案:# cp include/linux/hidraw.h/usr/include/linux/# cp include/linux/hid.h/usr/include/linux/# vim samples/hidraw/hid-example.c(在Linux下编译程序有时会遇到这种问题,这貌似是一个Linux 历史遗留问题: 把所有#include 都提到最前面,把#include 的包含放在其后,就可以编译通过了,之所以出现面的问题是存在循环引用所致。