Linux内核的编译安装与问题处理.doc_第1页
Linux内核的编译安装与问题处理.doc_第2页
Linux内核的编译安装与问题处理.doc_第3页
Linux内核的编译安装与问题处理.doc_第4页
Linux内核的编译安装与问题处理.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录1、从linux2.4内核升级到linux2.6内核的步骤12、RPM无法使用的问题63、英文版RedHat无法显示中文字体的问题64、内核升级后出现CD无法挂载的情况71、从linux2.4内核升级到linux2.6内核的步骤本文的具体工作是将linux2.4.20-8升级到linux的步骤,升级到其它2.6.x版本的与此类似。一、准备工作首先说明,下面带#号的行都是要输入的命令行,且本文提到的所有命令行都在终端里输入。启动Linux系统,并用根用户登录,进入终端模式下。1、查看Linux内核版本# uname -a如果屏幕显示的是2.6.x,说明你的已经是2.6的内核,也用不着看下文了,该干什么干什么去吧!如果显示的是2.4.x,那恭喜你,闯关通过,赶快进行下一步。2、下载2.6内核源码下载地址:/pub/linux/kernel/v2.6/linux-.tar.bz23、下载内核升级工具由于linux2.6内核的内核模块处理过程有所改变,因此linux2.4内核下的modutils工具包已经不再适合linux2.6内核,需要下载较新版本的module-init-tools和modutils,笔者下载的是module-init-tools-3.2.2.tar.bz2和modutils-2.4.5-1.src.rpm(1)下载module-init-tools-3.2.2.tar.bz2/pub/linux/utils/kernel/module-init-tools/(2)下载modutils-2.4.5-1.src.rpm的地址是/pub/linux/utils/kernel/modutils/v2.4/其安装步骤为:#rpm -e -nodeps modutils (强行卸载原有的modutils RPM包)#rpm -ivh modutils-2.4.5-1.src.rpm (把源代码包安装到了/usr/src/redhat目录下)#cd /usr/src/redhat/SPECS (进入规范文件目录下)#rpmbuild -bb modutils.spec (生成二进制的RPM包)#cd ./RPMS/i386 (转入刚生成的RPM包所在的位置)#rpm -ivh modutils*.rpm (安装生成的modutils-2.4.5-1.i386.rpm和modutils-debuginfo-2.4.5-1.i386.rpm二进制RPM包)(3)下载mkinitrd-4.1.18-2.i386.rpm/fedora/linux/3/i386/RPMS.core/mkinitrd-4.1.18-2.i386.rpm(4)下载lvm2-2.00.25-1.01.i386.rpm/fedora/linux/3/i386/RPMS.core/lvm2-2.00.25-1.01.i386.rpm(5)下载device-mapper-1.00.19-2.i386.rpm/fedora/linux/3/i386/RPMS.core/device-mapper-1.00.19-2.i386.rpm二、配置工作好啦,2.6内核和4个升级工具都下载完了(少一个也不行,如果没有下载齐全,请不要尝试下面的步骤,升级是不会成功的),下面回到Linux系统中开始配置工作吧。4、将下载好的内核源码包和4个升级工具都拷贝到/usr/src文件夹下。怎么拷贝就不用我教了吧不会拷贝的去撞墙吧!呵呵!5、拷贝完毕,开始解压新内核,具体操作请依次执行以下命令:# cd /usr/src (进入到/usr/src目录下,如果已经在/usr/src目录下,可不执行该命令)# rm rf linux (删除linux文件夹。值得一提的是,如果内核先前从未编译过,则没有这个文件夹,此命令行可略过)# tar jvxf linux-.tar.bz2 (解压新内核)# ln -s linux- 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 failedmake1: * install Error 1make: * install Error 28、配置内核选项。有点繁琐,希望一次成功哦。# cd linux- (进入到/usr/src/linux-目录下)# 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 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-SCSI device support-SCSI low-level drivers-; BusLogic SCSI support三、编译工作OK,繁杂的配置工作完成了,至此,编译前的准备工作都做好了!9、开始编译啦在/usr/src/linux-目录下,执行以下命令即可编译。编译需要一段时间,给自己倒杯茶耐心等候吧!# 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目录下生成一个子目录,里面存放着新内核的所有可加载模块。# make install (安装新内核)注意:make install的时候可能会出现如下错误信息:No module BusLogic found for kernel 2.4.20-8mkinitrd failed此问题一般只出现在SCSI硬盘VMWARE+REDHAT架构中,因为BusLogic被编译进了内核而不是一个module的形式(2.4内核的Buslogic模块即使静态编译进内核也不行)。解决方式是直接将BusLogic.o文件复制过去:# cp /usr/src/linux-/drivers/scsi/BusLogic.o /lib/modules//kernel/drivers/scsi不过别忘记,复制过后再执行一下make install。这一步若卡住了,下面的都无法进行。四、启动新内核10、将新内核和System.map文件拷贝到/boot目录下,依次执行以下命令:# cp /usr/src/linux-/arch/i386/boot/bzImage /boot/vmlinuz-# cp /usr/src/linux-/System.map /boot/System.map-# cd /boot (进入boot目录)# rm rf System.map (删除原来的连接)# ln s System.map- System.map (重新建立连接)11、修改Grub启动管理器如果没有错误的话, 下面开始修改grub配置文件(不要告诉我你用的lilo)在/boot目录下,执行以下命令:# new-kernel-pkg -mkinitrd -depmod -install (这时候你的/boot下会生成一个initrd-.img,并且你的grub.conf文件也作了相应更改)# df (查看根目录在那个分区,下一步要用到。注意,这里根分区不时boot的那个50M的分区,而一般是你最大的那个分区,也就是“/”,千万不要搞错哦。我的为 /dev/sda1)# vi /etc/grub.conf进入grub.conf文件,找到如下信息:default=1timeout=10splashimage=(hd0,0)/grub/splash.xpm.gztitle Red Hat Linux (2.6.18)root (hd0,0)kernel /vmlinuz-2.6.18 ro root= LABEL=/initrd /initrd-2.6.18.img做两处修改:(1) 将default=1改为default=0(不改的话也可以,只不过重启之后会默认进入2.4内核)(2) 将kernel行的“LABEL=/”换成根目录所在的分区(上一步查看的就是)此步很重要,修改错误将可能导致进不去系统,我把我修改后的grub.conf文件列出来,不明之处,可以对照修改:default=0timeout=10splashimage=(hd0,0)/grub/splash.xpm.gztitle Red Hat Linux (2.6.18)root (hd0,0)kernel /vmlinuz- ro root=/dev/sda1initrd /initrd-.imgtitle 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.img12,OK,大功告成!赶快重启,看看升级后的2.6内核吧另外需要注意的是,如果使用虚拟机,必须在虚拟机下解压,不能在windows下解压,否则不能编译通过。2、RPM无法使用的问题You get following or error while Rebuilding RPM database:=rootwww root# rpm rebuilddbrpmdb: unable to join the environmenterror: db4 error(11) from dbenv-open: Resource temporarily unavailableerror: cannot open Packages index=SOLUTION:Try This:=rootwww root# rm -f /var/lib/rpm/_db*rootwww root# echo “%_dbi_cdb create private cdb mpool mp_mmapsize=16Mb mp_size=1Mb” /etc/rpm/macrosrootwww root# rpm rebuilddb=PLEASE NOTE: This Fix Is Only For RedHat OS3、英文版RedHat无法显示中文字体的问题从如下网站下载一个RPM包装上即可:/index.php3/stat/4/idpl/5594715/com/ttfonts-zh_CN-2.14-6.noarch.rpm.htmlDownload ftp.rediris.esttfonts-zh_CN-2.14-6.noarch.rpm ftp.rediris.esttfonts-zh_CN-2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论