- 浏览: 316587 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
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 390310、pam 11、拒绝ssh登录(用户)a./etc/s ... -
理解 Linux 配置文件
2010-09-29 16:03 1388介绍 每个 Linux 程序都是一个可执行文件,它含 ... -
linux iscsi initiator 安装配置
2010-06-24 15:28 4275实现环境:vmware workstation, ... -
iscsi配置
2010-06-17 16:31 19411 指定连接iSCSI的前兆网口IP, 与IP-SAN的端口 ... -
Linux 2.6.31内核优化-2
2010-03-24 14:43 2419Device Drivers ---> Gene ... -
Linux 2.6.31内核优化-1
2010-03-24 14:42 3101介绍 本文档是一篇关于Linux Kernel 2.6. ... -
solaris 常用检查系统命令
2010-03-10 15:57 2345/usr/platform/sun4u/sbin/prt ... -
vsftpd配置文件
2010-02-09 16:23 1464vsftpd配置文件采用“#” ... -
solaris10 xmanager登录
2010-01-29 10:48 9891. 关闭默认的cde服务 ... -
ubuntu美化grub
2009-12-24 16:44 894安装grub-splashimages,只是集成了一套 ... -
linux内核参数
2009-12-21 15:58 1154以下是内核的主要配置 ... -
Consistent Non-Locking Reads 与Locking Reads的区别
2009-11-30 09:08 954一直以来,都认为mysql 在普通的select下会根据主键 ... -
大量LAST_ACK 分析过程
2009-11-30 09:06 18389现象:在netstat的时候发现大量处于LAST_ACK状态的 ... -
阵列Lun
2009-11-10 11:26 1165a、lun的概念 lun的全称是logical ... -
TAR命令参数详解
2009-11-05 09:58 2808tar 程序用于储存或展开 tar 存档文件。存档文件可放在磁 ... -
linux下无法在分区中创建新文件问题
2009-10-20 09:13 2825linux下无法在分区中创建新文件问题 故障现象: ... -
vim使用技巧
2009-10-09 14:09 2114读本文之前请注意: 1. 本文的目标是提供一些vim的使用技 ... -
基于linux构建一个多功能(防火墙/防毒墙/进出邮件扫描/GFW穿越)透明网关
2009-09-27 09:07 997基于linux 构建一个全功能(防火墙/防毒墙/进出邮件 ... -
Rhythmbox, Totem 不支持 mp3的解决办法
2009-09-08 11:01 1322为什么 Linux 不支持 mp3 呢?这个问题在 Linux ... -
LEMP构建高性能WEB服务器
2009-08-24 13:39 1099平台搭建环境 : 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内核编译与裁剪; 欢迎下载
操作系统Linux内核编译实验报告
Linux内核编译详谈,Linux内核编译详谈
Linux内核编译命令 Linux内核编译命令
Linux内核编译实验
linux内核编译linux内核编译linux内核编译linux内核编译linux内核编译linux内核编译
基于Arm的Linux内核编译指导及bootloader 基于Arm的Linux内核编译指导及bootloader 基于Arm的Linux内核编译指导及bootloader
linux内核编译工具Bochslinux内核编译工具Bochslinux内核编译工具Bochslinux内核编译工具Bochslinux内核编译工具Bochslinux内核编译工具Bochslinux内核编译工具Bochslinux内核编译工具Bochslinux内核编译工具...
Linux内核编译全过程详解(kernel2.6.7),关于内核的编译过程
linux内核编译.pdf
linux内核编译 linux内核编译 linux内核编译 linux内核编译
操作系统接口试验数据和步骤教程-添加系统函数和linux内核编译, 生产的是deb包,可直接点击安装。
at91sam9260-ek的linux内核编译,一步一步的说明,有利于大家学习。
本文详细介绍了VMware环境下Linux内核编译过程。
linux内核编译各个选项的含义[参照].pdf
Linux内核编译全过程详解(kernel2.6.7)[参考].pdf
linux内核编译.config文件,编译出的内核很小,用于内核调试,内核版本4.19.23
Linux内核编译选项说明 2.6.28的
编译内核相对学习linux系统的初学者有一定的困难,本文从实用的角度介绍编译的方法。