热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

更换Linux核心

文章标题:更换Linux核心。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  联系作者: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
  

推荐阅读
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 本文讲述了作者通过点火测试男友的性格和承受能力,以考验婚姻问题。作者故意不安慰男友并再次点火,观察他的反应。这个行为是善意的玩人,旨在了解男友的性格和避免婚姻问题。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Ubuntu 用户安装 Linux Kernel 3.15 RC1
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
author-avatar
那一年2502931247
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有