歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

更換Linux核心

  聯系作者:[email protected]    更換 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




Copyright © Linux教程網 All Rights Reserved