• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

更换Linux核心

发布: 2007-7-04 12:06 | 作者: admin | 来源:  网友评论 | 查看: 12次 | 进入软件测试论坛讨论

领测软件测试网
  联系作者:ols3@www.tnc.edu.tw
  
  更换 Linux 核心是每一位 Linux 主机管理者经常要面对的问题, 本文将一些文件串联在一起, 供各位参考
  
  更换 Linux 核心(Kernel) 对刚接触 Linux 管理者而言, 多少会觉得有点困难; 其实只要试个几次, 很快地, 您就会感到驾轻就熟.
  早期更换 Linux Kernel 只有采用原始码编译一途, 近几年由于套件管理模式大行其道, 因此又多了另一新选择, 其中 RPM 是最为流行的方式之一.
  注意! 不管您打算采用那一种方式, 您都应该先做好一开机片, 以防万一
  制作开机片的方法如下:
  1.uname -r
  
  比如出现以下讯息
  
  2.4.18-10
  2.将它放在以下指令之后, 此时请放入一片空白磁片:
  
  mkbootdisk --device /dev/fd0
  
  完整指令为:
  mkbootdisk --device /dev/fd0 2.4.18-10
  接着您便可以安心来做核心的更换工作了.
  以下先介绍原始码编译安装的方法:(by OLS3 技术文件)
  一. 原始码 Kernel 重制:
  流程:
  1.先至 ftp.tnc.edu.tw/sysop/Linux-kernels/
  
  或 http://www.kernel.org 去下载 Linux 核心
  
  其中, 版本代码 2.4 开头者为稳定版(建议), 2.5 为实验版(不建议).
  2.设定 kernel 选项
  3.编译 kernel
  4.编译 modules, 安装 modules
  5.安装 kernel
  6.设定 boot loader
  7.重新开机
  步骤:
  1.cd 您解压后的目录下的 linux 目录中
  2.make mrproper
  3.make xconfig (menuconfig 或 config), 它会存成 .config
  这个步骤是最困难的, 因为您必须了解很多个选项的意义才行! 这个部份也是必须充份练功的地方!
  4.make dep
  5.make bzImage
  6.make modules
  7.make modules_install
  8.cp arch/boot/i386/bzImage /boot
  9.编辑 /etc/lilo.conf 或 /boot/grub/grub.conf
  10.lilo.conf 的修改范例:
  11.
  12.boot=/dev/hda
  13.map=/boot/map
  14.install=/boot/boot.b
  15.prompt
  16.timeout=50
  17.linear
  18.default=linuxnew
  19.
  20.image=/boot/vmlinuz-2.2.14-5.0
  21.label=linux
  22.read-only
  23.root=/dev/hda1
  24.
  25.image=/boot/bzImage
  26.label=linuxnew
  27.read-only
  28.root=/dev/hda1
  29.
  30.==========================
  31.grub.conf 的修改样本:
  32.
  33.default=0
  34.timeout=3
  35.splashimage=(hd0,0)/grub/splash.xpm.gz
  36.title Red Hat Linux (2.4.18-10)
  37. root (hd0,0)
  38. kernel /vmlinuz-2.4.18-10 ro root=/dev/hda3
  39. initrd /initrd-2.4.18-10.img
  40.title Red Hat Linux (2.4.18-5)
  41. root (hd0,0)
  42. kernel /vmlinuz-2.4.18-5 ro root=/dev/hda3
  43. initrd /initrd-2.4.18-5.img
  44.title Red Hat Linux (2.4.18-3)
  45. root (hd0,0)
  46. kernel /vmlinuz-2.4.18-3 ro root=/dev/hda3
   initrd /initrd-2.4.18-3.img
  47.执行 lilo -v -v; 若是使用 grub, 则不必.
  48.reboot
  ·为安全起见, 应该在 lilo 中保留旧核心, 以免万一新核心出问题, 而无法开机.
  说明:
  1.make mrproper 会移除先前重制核心时不必要的残余档案, 这样可以避免这些档案对原始码目录树产生不必要的干扰. 执行 make mrproper 时, 会砍除设定配置档 .config, 如果您认为它很重要的话, 应该予以备份.
  2.make config 是文字选项模式, 也是传统的方式, 这个方式的缺点是: 在选择时, 无法回头.
  make menuconfig 是文字选单模式.
  make xconfig 是图型选单模式, 需要 X Windows.(推荐此方式)
  make config 时, 它会先执行 /bin/sh scripts/Config arch/i386/config.in
  二. 使用 RPM 更换核心:
  必须注意您的硬碟是 IDE 或是 SCSI, 以及您的主机 CPU 是单颗或双颗!
  另外, 我建议各位在更换核心之前, 先安装 urh, 把大部份套件自动予以更新, 它也会把核心相关的 RPM 更新, 如 kernel-header*.rpm; 俟 urh 执行完毕, 才来进行以下动作!
  
  A. 若是 IDE 硬碟, 那么更换的方式十分简单:
  1. 若有安装 autoURPM(ftp.tnc.edu.tw/sysop/urh) 者,
  
  可 cd /var/spool/autoupdate
  
  rpm -ivh kernel-2.2.19-6.2.16*.rpm
  
  若无安装 autoURPM 者,
  可至教网中心 ftp.tnc.edu.tw/sysop/rpms 中去下载
  
  kernel-2.2.19*.rpm
  
  若是双 CPU , 则要安装 kernel-smp*.rpm 的套件.
  
  2. 编辑 /etc/lilo.conf 修改成如下:
  
  boot=/dev/hda
  map=/boot/map
  install=/boot/boot.b
  prompt
  timeout=50
  linear
  default=linuxnew
  
  image=/boot/vmlinuz-2.2.14-5.0
  label=linux
  read-only
  root=/dev/hda1
  
  image=/boot/vmlinuz-2.2.19-6.2.16
  label=linuxnew
  read-only
  root=/dev/hda1
  
  
  注意! 您的开机区未必是 /dev/hda1
  必须视贵校主机 lilo.conf 中原有的设定而定
  
  3. lilo -v -v
  
  4. 重新开机即可.(注意, 上述已改由新的核心来开机)
  
  若是使用 GRUB 来开机者, 只要执行以下指令即可
  
  rpm -ivh kernel-2.2.19-6.2.16*.rpm
  
  不必再去修改 /boot/grub/grub.conf
  因为安装这个 kernel RPM 套件时, 它会自动帮您修改 grub.conf
  您唯一要做的是: 把 grub.conf 中的开机顺序改成新的核心
  比如: 以下的 default=0 即表示是由最新的 kernel 来开机
  default=0
  timeout=3
  splashimage=(hd0,0)/grub/splash.xpm.gz
  title Red Hat Linux (2.4.18-10)
   root (hd0,0)
   kernel /vmlinuz-2.4.18-10 ro root=/dev/hda3
   initrd /initrd-2.4.18-10.img
  title Red Hat Linux (2.4.18-5)
   root (hd0,0)
   kernel /vmlinuz-2.4.18-5 ro root=/dev/hda3
   initrd /initrd-2.4.18-5.img
  title Red Hat Linux (2.4.18-3)
   root (hd0,0)
   kernel /vmlinuz-2.4.18-3 ro root=/dev/hda3
   initrd /initrd-2.4.18-3.img
  
  B. SCSI 硬碟:
  若是 SCSI 硬碟, 且 /boot 中有 initrd 的 image
  则要多做一个动作: (注: 若您是安装 RedHat 7.2 以后的版本,
  可直接像 IDE 硬碟的作法一样,
  使用 rpm -ivh kernel*.rpm 即可升级)
  
  以 RedHat 6.2 为例:
  
  mkinitrd /boot/initrd-2.2.19-6.2.16.img 2.2.19-6.2.16
  
  lilo.conf 要修改, 加入以下设定:
  
  image=/boot/vmlinuz-2.2.19-6.2.16
  label=linuxnew
  root=/dev/sda1 (这个地方, 要视您原先的 root=/dev/sda?? 而定)
  initrd=/boot/initrd-2.2.19-6.2.16.img
  read-only
  
  再 lilo -v -v
  重新开机一次
  
  当然, 开机 bootdisk 一定要先准备好.
  
  若还是不成?, 可用 RedHat 7.3 光碟直接升级.
  再用 urh-7.3 来大量升级套件. (下载位址: ftp.tnc.edu.tw/sysop/urh)
  
  (以上是 OLS3 在网管讨论区的回应)
  C. 以下问题您可能也会碰到喔!(SCSI硬碟)
  底下是敝县网管讨论区中二位网管先进的对话内容节录, 对您可能有所帮助.
  =======================
  sammy 留言:
  重新开机后出现LI
  二字就都不动了
  还好我有做旧kernel的开机片,
  暂时用开机片开机server可工作
  我的猜测是 lilo -v -v时
  电脑以为我的开机碟是hda,
  所以把开机程式写入hda,但我真正的开机碟是sda
  但实际情形是否如此,我也不知
  
  目前暂时只能用磁片开机
  请问要如何是好
  ========================
  hsmhsm 回复 sammy 如下:
  之前去中山上课,老师说ide的硬碟就是会先被读取
  所以他在前两行中间再加了两行
  (不过当时装的是trustix)
  boot=/dev/sda
  disk=/dev/sda
  bios=0x80
  map=/boot/map
  反正你有开机片,要不要试试??
  =======================
  sammy 回复 hsmhsm 如下:
  从暑假一直放到现在,
  放了一个月,一直使用开机片开机
  今天终于有空试了一下
  在加了那二行后,
  果然成功,真是谢了
  
  D. 另外, 有二篇文件, 建议各位一定要先看一下!
  1.: RedHat/rhl-cg-en-7.2/kernel.html
  2.: Upgrading the Linux Kernel on Red Hat Linux systems
  
  
  
  

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网