redhat 24到26内核升级过程Word文档格式.docx
《redhat 24到26内核升级过程Word文档格式.docx》由会员分享,可在线阅读,更多相关《redhat 24到26内核升级过程Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
在/usr/src目录下,依次执行下列命令:
#tar-jvxfmodule-init-tools-3.2.tar.bz2
(解压module-init-tools)
解压完会出现文件夹module-init-tools-3.2
#cdmodule-init-tools-3.2
(进入module-init-tools目录下)
#./configure--prefix=/
(这里是指定安装目录为根目录/)
#makemoveold
#makeallinstall
#./generate-modprobe.conf/etc/modprobe.conf
备注:
这一步的输出文件名modprobe.conf一定要写对。
3.4、安装另外三个升级工具
回到/usr/src目录下安装另外三个升级工具,依次执行如下命令:
#cd/usr/src
(回到/usr/src目录下)
#rpm-ivh--nodepsmkinitrd-4.1.18-2.i386.rpm
(注意,这里一定要加入--nodeps参数,下同)
#rpm-ivh--nodepslvm2-2.00.25-1.01.i386.rpm
#rpm-ivh--nodepsdevice-mapper-1.00.19-2.i386.rpm
完成后,输入whereismkinitrd,如果有内容,说明工具安装成功,一般是/sbin/mkinitrd,一会用这个绝对路径执行该命令
3.5、配置内核选项。
#cdlinux-2.6.18
(进入到/usr/src/linux-2.6.18目录下)
#makemrproper
(该命令可确保源代码目录下没有不正确的.o文件)
#makemenuconfig(配置内核各选项,会出现很糟糕的图形界面,具体说明见下)
3.6内核选项说明
执行makemenuconfig会出现一个图形界面,列出了所有的内核配置选项,
有的选项下还有子选项,你可以用空格键来选择,选择后要返回上一级,直接按ESC即可。
经过多次试验,大多数选项默认就行,以下几个选项必须选择
(请认真核对下面每一个选项,否则编译很有可能前功尽弃,用空格键进行选择,最好都选为*,如果选不了*,选成M):
(1)LoadableModulesupport选项中,选上“Moduleunloading”
和“Automatickernelmoduleloading”这两项;
(2)DeviceDrivers--->
BlockDevices中选上“Loopbackdevicesupport”;
DeviceDrivers--->
Multi-devicesupport(RAIDandLVM)处要选上“devicemapper
support”;
Graphicssupport,一定要选上“Supportforframebufferdevices”;
DeviceDrivers
--->
USBsupport
选上“USBMassStoragesupport”
Networkdevicesupport
Ethernet(10or100Mbit)
<
*>
AMDPCnet32PCIsupport;
(3)Filesystem选项中,以下9个选项是关于ext2和ext3文件系统配置,全部选上
Secondextendedfssupport
Ext2extendedattributes
Ext2POSIXAccessControlLists
Ext2SecurityLabels
Ext3journallingfilesystemsupport
Ext3extendedattributes
Ext3POSIXAccessControlLists
Ext3SecurityLabels
JBD(ext3)debuggingsupport
(4)filesystem--->
DOS/FAT/NTFilesystems
“NTFSfilesystemsupport”;
也要选上
(5)以下三个选项必选:
DeviceDrivers--->
SCSIdevicesupport
--->
<
SCSIdevicesupport(此项不选的话,下面两项就选择不上)
SCSIdevicesupport--->
SCSIdisksupport
SCSIdevicesupport--->
SCSIlow-leveldrivers--->
;
BusLogicSCSIsupport
3.7选项配置图标的说明:
(1)选项的配置方法:
用空格键可以循环选择选项
按Y,表示以build-in的方式包含,也就是把选项集成到内核里.
对应的图标为[*]或<
,
按N,表示不包含。
对应的图标为[]或<
>
按M,表示以模块的形式包含,对应的图标为<
M>
.注意不是所有的选项都可以用模块形式加载的
(2)选项的状态图标
每个选项设完之后会显示一个状态图标,只能是下面5种之一
[*]-built-in表示这个选项被集成在内核里了
[]-excluded表示这个选项被内核排除了
-module表示这个选项以模块的形式放在内核里,
-modulecapable,表示这个选项虽然被排除了,但可以以模块的形式被重新加载,比如,一个图标为<
的选项,按N键以后状态就会变成<
.
-这个图标帮助没写,当实际上会出现,比如,按某个选项状态为<
或者<
时,按Y键,图标就会变成这个,意思和[*]一样,把可以用模块
加载的选项变成build-in方式加载。
(3)归纳一下就是:
括号里如果为空白,则该选项未被加载,想使用该选项时必须重新编译内核;
如果括号里是*,是以build-in的方式加载;
如果中间是m(此时只能是尖括号),就是以模块的形式动态加载.想使用时用insmod载入。
不必重新编译内核
四、编译工作
OK,繁杂的配置工作完成了,至此,编译前的准备工作都做好了!
4.1、开始编译啦……
在/usr/src/linux-2.6.18目录下,执行以下命令即可编译。
#makedep
(建立编译时所需的从属文件。
如果内核从未编译过,此步可跳过)
#makeclean
(清除内核编译的目标文件。
#makebzImage
(注意大小写。
这一步才是真正编译内核,也就是编译built-in的东西)
这一步时间较长,耐心等待。
编译中
编译完成
内核编译成功后,会在/usr/src/linux/arch/i386/boot目录中生成一个新内核的映像文件bzImage。
#makemodules
(编译可加载模块)
这一步时间也不短,我的机器用了半个小时
#makemodules_install
(安装可加载模块)
安装成功后,系统会在/lib/modules目录下生成一个2.6.18子目录,里面存放着新内核的所有可加载模块。
#make(这一步也要进行,不然执行下面的makeinstall时会报错)
#makeinstall
(安装新内核)
makeinstall的时候可能会出现如下错误信息:
NomoduleBusLogicfoundforkernel2.4.12
mkinitrdfailed
解决方式是直接将BusLogic.o文件复制过去:
#cp/usr/src/linux-2.6.18/drivers/scsi/BusLogic.o
/lib/modules/2.6.18/kernel/drivers/scsi
不过别忘记,复制过后再执行一下makeinstall。
这一步若卡住了,下面的都无法进行
五、启动新内核
1.将新内核和System.map文件拷贝到/boot目录下,依次执行以下命令:
#cp
/usr/src/linux-2.6.18/arch/i386/boot/bzImage
/boot/vmlinuz-2.6.18
/usr/src/linux-2.6.18/System.map
/boot/System.map-2.6.18
#cd
/boot
(进入boot目录)
#rm–rf
System.map
(删除原来的连接)
#ln–sSystem.map-2.6.18
(重新建立连接)
2.修改Grub启动管理器
如果没有错误的话,下面开始修改grub配置文件
在/boot目录下,执行以下命令:
#/sbin/new-kernel-pkg--mkinitrd--depmod--install2.6.18
(这时候你的/boot下会生成一个initrd-2.4.18.img,并且你的grub.conf文件也作了相应更改)
#df
(查看根目录在那个分区,下一步要用到。
注意,这里根分区不时boot的那个50M的分区,而一般是你最大的那个分区,也就是“/”对应的物理设备名,千万不要搞错哦。
)
#vi/etc/grub.conf
进入grub.conf文件,找到如下信息:
default=1
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
titleRedHatLinux(2.6.18)
root(hd0,0)
kernel/vmlinuz-2.6.18roroot=LABEL=/
initrd/initrd-2.6.18.img
做两处修改:
(1)将default=1改为default=0(不改的话也可以,只不过重启之后会默认进入2.4内核)
(2)将kernel行的“LABEL=/”换成根目录所对应的设备名(上一步用df查看的就是)
此步很重要,修改错误将可能导致进不去系统,我把我修改后的grub.conf文件列出来,不明之处,可以对照修改:
default=0
kernel/vmlinuz-2.6.18roroot=/dev/sda2
titleRedHatLinux(2.4.20-8)
kernel/vmlinuz-2.4.20-8roroot=LABEL=/
initrd/initrd-2.4.20-8.img
5.3,赶快重启,看看升级后的2.6内核吧,OK,大功告成!