- 浏览: 324746 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
chen3888015:
更方便、更实用的IDC机房服务器监控软件UNNOC -
PV_love:
沙发一个,看的人多,没人顶
Oracle查询优化 -
sanpic:
好文章,好东西
关键点的第5条,logfile,少打了个字母f ...
oracle create database -
kimmking:
lz不厚道,从dell网站复制过来的。
DELL R900 服务器 RAID 配置详解 -
wxq594808632:
记性不好...
DELL R900 服务器 RAID 配置详解
1、查看Linux内核版本 2、下载2.6内核源码 3、下载内核升级工具 二、配置工作 # tar jvxf linux-2.6.24.tar.bz2 # ln -s linux-2.6.24 linux 6、安装module-init-tools工具 7、安装另外三个升级工具 8、配置内核选项。 # cd linux-2.6.24 (进入到/usr/src/linux-2.6.18目录下) 三、编译工作 9、开始编译啦…… 四、启动新内核 11、修改Grub启动管理器
# uname -a
下载地址:http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.tar.bz2
(1)下载module-init-tools-3.2.tar.bz2
http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/module-init-tools-3.2.tar.bz2
(2)下载mkinitrd-4.1.18-2.i386.rpm
http://ayo.freshrpms.net/fedora/linux/3/i386/RPMS.core/mkinitrd-4.1.18-2.i386.rpm
(3)下载lvm2-2.00.25-1.01.i386.rpm
http://ayo.freshrpms.net/fedora/linux/3/i386/RPMS.core/lvm2-2.00.25-1.01.i386.rpm
(4)下载device-mapper-1.00.19-2.i386.rpm
http://ayo.freshrpms.net/fedora/linux/3/i386/RPMS.core/device-mapper-1.00.19-2.i386.rpm
# cd /usr/src
在/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.conf
回到/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 failed
make[1]: *** [install] Error 1
make: *** [install] Error 2
# make mrproper (该命令可确保源代码目录下没有不正确的.o文件)
# make menuconfig (配置内核各选项)
此时会出现一个图形界面,列出了所有的内核配置选项,有的选项下还有子选项,你可以用方向键来选择,用Y键来确定。经过我多次试验,大多数选项默认就行,以下几个选项必须选择(请认真核对下面每一个选项,否则编译很有可能前功尽弃):
(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 PCnet32 PCI support
(3)File system--->(以下9个选项是关于ext2和ext3文件系统配置,全部选上)
Second extended fs support
Ext2 extended attributes
Ext2 POSIX Access Control Lists
Ext2 Security Labels
Ext3 journalling file system support
Ext3 extended attributes
Ext3 POSIX Access Control Lists
Ext3 Security Labels
JBB (ext3) debugging support
File 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 option
kernel panic:VFS:Unable to mount root fs on unknown-block(0,0)
或者是:
mount: error 19 mounting ext3
pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed: 2
umount /initrd/proc fail: 2
Freeing unused kernel memory: 244k freed
Kernel 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 support
Device Drivers---><8>SCSI device support--->SCSI low-level drivers---><*>; BusLogic SCSI support
OK,繁杂的配置工作完成了,至此,编译前的准备工作都做好了!
在/usr/src/linux-2.6.24目录下,执行以下命令即可编译。编译需要一段时间,给自己倒杯茶耐心等候吧!
# make dep (建立编译时所需的从属文件。注意:如果内核从未编译过,此步可跳过)
# make clean (清除内核编译的目标文件。注意:如果内核从未编译过,此步可跳过)
# make bzImage (注意大小写。这一步才是真正编译内核)
内核编译成功后,会在/usr/src/linux/arch/i386/boot目录中生成一个新内核的映像文件bzImage。如果用 make zImage编译,内核很大的话,系统会提示你使用make bzImage命令来编译,所以我直接用make bzImage来编译。
# make modules (编译可加载模块)
# make modules_install (安装可加载模块)
安装成功后,系统会在/lib/modules目录下生成一个2.6.24子目录,里面存放着新内核的所有可加载模块。
# make install (安装新内核)
注意:
make install的时候可能会出现如下错误信息:
No module BusLogic found for kernel 2.4.12
mkinitrd failed
此问题一般只出现在SCSI硬盘+VMWARE+REDHAT架构中,因为BusLogic被编译进了内核而不是一个module的形式(2.4内核的Buslogic模块即使静态编译进内核也不行)。解决方式是直接将BusLogic.o文件复制过去:
# cp /usr/src/linux-2.6.18/drivers/scsi/BusLogic.o /lib/modules/2.6.18/kernel/drivers/scsi
不过别忘记,复制过后再执行一下make install。
10、将新内核和System.map文件拷贝到/boot目录下,依次执行以下命令:
# cp /usr/src/linux-2.6.24/arch/i386/boot/bzImage /boot/vmlinuz-2.6.24
# cp /usr/src/linux-2.6.24/System.map /boot/System.map-2.6.24
# cd /boot (进入boot目录)
# rm –rf System.map (删除原来的连接)
# ln –s System.map-2.6.24 System.map (重新建立连接)
如果没有错误的话, 下面开始修改grub配置文件(不要告诉我你用的lilo)
在/boot目录下,执行以下命令:
# new-kernel-pkg --mkinitrd --depmod --install 2.6.24 (这时候你的/boot下会生成一个initrd-2.4.24.img,并且你的grub.conf文件也作了相应更改)
# df (查看根目录在那个分区,下一步要用到。注意,这里根分区不时boot的那个50M的分区,而一般是你最大的那个分区,也就是“/”,千万不要搞错哦。我的为 /dev/hda2)
# vi /grub/grub.conf
进入grub.conf文件,找到如下信息:
default=1
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Linux (2.6.24)
root (hd0,0)
kernel /vmlinuz-2.6.24 ro root= LABEL=/
initrd /initrd-2.6.24.img
做两处修改:
(1) 将default=1改为default=0(不改的话也可以,只不过重启之后会默认进入2.4内核)
(2) 将kernel行的“LABEL=/”换成根目录所在的分区(上一步查看的就是)
此步很重要,修改错误将可能导致进不去系统,我把我修改后的grub.conf文件列出来,不明之处,可以对照修改:
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Linux (2.6.24)
root (hd0,0)
kernel /vmlinuz-2.6.24 ro root=/dev/hda2
initrd /initrd-2.6.24.img
title Red Hat Linux (2.4.20-8)
root (hd0,0)
kernel /vmlinuz-2.4.20-8 ro root=LABEL=/
initrd /initrd-2.4.20-8.img
发表评论
-
linux 常见错误解决方法
2010-12-27 11:20 409310、pam 11、拒绝ssh登录(用户)a./etc/s ... -
理解 Linux 配置文件
2010-09-29 16:03 1481介绍 每个 Linux 程序都是一个可执行文件,它含 ... -
linux iscsi initiator 安装配置
2010-06-24 15:28 4411实现环境:vmware workstation, ... -
iscsi配置
2010-06-17 16:31 20001 指定连接iSCSI的前兆网口IP, 与IP-SAN的端口 ... -
Linux 2.6.31内核优化-2
2010-03-24 14:43 2465Device Drivers ---> Gene ... -
Linux 2.6.31内核优化-1
2010-03-24 14:42 3159介绍 本文档是一篇关于Linux Kernel 2.6. ... -
solaris 常用检查系统命令
2010-03-10 15:57 2396/usr/platform/sun4u/sbin/prt ... -
vsftpd配置文件
2010-02-09 16:23 1550vsftpd配置文件采用“#” ... -
solaris10 xmanager登录
2010-01-29 10:48 10251. 关闭默认的cde服务 ... -
ubuntu美化grub
2009-12-24 16:44 958安装grub-splashimages,只是集成了一套 ... -
linux内核参数
2009-12-21 15:58 1252以下是内核的主要配置 ... -
Consistent Non-Locking Reads 与Locking Reads的区别
2009-11-30 09:08 1007一直以来,都认为mysql 在普通的select下会根据主键 ... -
大量LAST_ACK 分析过程
2009-11-30 09:06 18532现象:在netstat的时候发现大量处于LAST_ACK状态的 ... -
阵列Lun
2009-11-10 11:26 1215a、lun的概念 lun的全称是logical ... -
TAR命令参数详解
2009-11-05 09:58 2874tar 程序用于储存或展开 tar 存档文件。存档文件可放在磁 ... -
linux下无法在分区中创建新文件问题
2009-10-20 09:13 2915linux下无法在分区中创建新文件问题 故障现象: ... -
vim使用技巧
2009-10-09 14:09 2203读本文之前请注意: 1. 本文的目标是提供一些vim的使用技 ... -
基于linux构建一个多功能(防火墙/防毒墙/进出邮件扫描/GFW穿越)透明网关
2009-09-27 09:07 997基于linux 构建一个全功能(防火墙/防毒墙/进出邮件 ... -
Rhythmbox, Totem 不支持 mp3的解决办法
2009-09-08 11:01 1402为什么 Linux 不支持 mp3 呢?这个问题在 Linux ... -
LEMP构建高性能WEB服务器
2009-08-24 13:39 1184平台搭建环境 : CentOS5.2 32/x86_6 ...
相关推荐
linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核...
### Linux内核编译与裁剪 #### 一、Linux版本特点 Linux内核版本的命名规则对于理解和追踪内核的发展至关重要。版本号通常由三部分组成:`VERSION.PATCHLEVEL.SUBLEVEL`,有时还会附加一个`EXTRAVERSION`。 - **...
操作系统Linux内核编译是一项对Linux系统有深入理解的重要实践,它涉及到系统核心的构建、配置和安装。在这个实验报告中,我们主要关注的是在Ubuntu Kylin 13.04环境下,如何编译和安装一个新的Linux内核,并且如何...
Linux 内核编译文档 本文档旨在为 Linux 新手提供一个详细的 Linux 内核编译指南,帮助他们从基础开始学习 Linux 系统。编译内核对于 Linux 新手来说可能有一些困难,但通过本文档的指导,读者可以轻松地完成内核...
Linux 内核编译选项详解 Linux 内核编译选项是 Linux 内核编译过程中的一个重要步骤,其中包含了许多选项,用于控制内核的行为和功能。在本文中,我们将详细介绍 Linux 内核编译选项的含义和作用。 代码成熟度选项...
### Linux内核编译实验知识点概述 #### 一、实验目的 本次实验旨在通过实践学习以下内容: 1. **理解Linux内核源代码的目录结构及其各目录的主要功能**:通过对Linux内核源代码目录的深入研究,了解不同目录的作用...
### Linux内核编译详谈 #### 一、引言 Linux内核是Linux操作系统的心脏,负责管理和调度计算机硬件资源。随着技术的发展,Linux内核也在不断进化以支持最新的硬件和技术特性。本文将详细介绍从早期版本的Linux内核...
为了使这些设备运行Linux操作系统,我们需要理解Linux内核编译过程以及bootloader的工作原理。本篇文章将深入探讨这两个关键知识点。 首先,让我们从Linux内核编译开始。Linux内核是操作系统的核心部分,它负责管理...
Linux 内核编译步骤 Linux 内核编译是一个复杂的过程,需要了解 Linux 内核的结构和编译过程。下面是 Linux 内核编译的详细步骤: 步骤 1: 下载 Linux 内核源代码 在编译 Linux 内核之前,需要下载 Linux 内核的...
### Linux内核编译全过程详解 #### 一、前言 在深入了解Linux内核编译的过程中,我们将聚焦于kernel 2.6.7版本,并详细阐述整个编译流程中的关键步骤与注意事项。对于想要深入了解Linux内核工作原理及定制化需求的...
### Linux内核编译命令详解 #### 一、概述 Linux内核是开源操作系统的核心部分,负责管理和协调硬件资源以及为应用程序提供服务。对于开发者来说,掌握如何编译Linux内核至关重要,因为这能帮助他们根据特定需求...
Linux 内核编译选项解析 Linux 内核编译选项是 Linux 内核编译过程中的一个重要步骤,它决定了 Linux 内核的功能和性能。本文将对 Linux 内核编译选项进行详细的解析,以帮助读者更好地理解 Linux 内核编译选项的...
"添加系统函数和Linux内核编译" 本文档旨在指导读者添加系统函数和Linux内核编译,生成deb包,并进行安装。同时,本文档还提供了详细的实验步骤和解决方案,以便读者更好地理解和掌握相关知识点。 一、控制台命令...
### Linux内核编译实验知识点总结 #### 一、实验目的 - **了解Linux内核编译**: 学习如何从源代码构建Linux内核,理解内核编译的基本流程和关键技术点。 - **掌握内核配置**: 掌握如何通过`menuconfig`等工具配置...
### at91sam9260的Linux内核编译详解 #### 一、引言 在嵌入式系统开发领域,对特定硬件平台进行Linux内核编译是一项至关重要的技能。本文将详细介绍如何为at91sam9260-ek开发板编译Linux内核,帮助读者掌握这一过程...
Linux 内核编译全过程详解(kernel 2.6.7) Linux 内核编译是一个复杂的过程,它需要仔细的规划和执行。在这个过程中,需要了解内核编译的各个阶段,包括编译前准备、编译配置、编译过程和运行内核的常见问题。下面...
linux内核编译工具Bochslinux内核编译工具Bochslinux内核编译工具Bochslinux内核编译工具Bochslinux内核编译工具Bochslinux内核编译工具Bochslinux内核编译工具Bochslinux内核编译工具Bochslinux内核编译工具...
linux内核编译.pdf
VMware 环境下 Linux 内核编译过程详细解析 在 VMware 环境下编译 Linux 内核是一件复杂的事情,需要了解 Linux 内核编译过程和 VMware 环境的特点。本文将详细介绍 VMware 环境下 Linux 内核编译过程,包括编译...
根据提供的文件信息,本文将详细解释Linux内核的编译过程。这不仅涉及到了Linux内核本身的编译步骤,还...以上是关于Linux内核编译最完整过程的成功案例的详细介绍,希望能帮助到正在学习或实践Linux内核编译的读者。