為了確保內核的完整性和對它所支持的硬件的兼容性,Red Hat Linux 內核由 Red Hat 內核小組定制建構。在內核被 Red Hat 發行之前,它一定要通過一系列嚴格的質量保證測試。
Red Hat Linux 內核使用 RPM 格式打包,因而它們易於升級和校驗。例如,由 Red Hat, Inc. 發行的 kernel RPM 軟件包被安裝後, initrd 映像會被創建;這樣,在你安裝了不同的內核後,你就沒必要使用 mkinitrd 命令。如果你安裝了 GRUB 或 LILO 的話,它還會修改引導裝載程序的配置文件來包括這個新內核。
本章僅討論在 x86 系統上升級內核的必要步驟。
警告: 建構你自行定制的內核是不被 Red Hat Linux 安裝支持組支持的。關於從源碼中建構定制內核的詳情,請參閱 附錄 A 。
30.1. 2.4 版本的內核Red Hat Linux 隨帶定制的 2.4 內核,它包括以下功能:
內核源碼的目錄是 /usr/src/linux-2.4/ ,而不是 /usr/src/linux/ 。
對 ext3 文件系統的支持。
對多重處理器(SMP)的支持。
對 USB 的支持。
對 IEEE 1394 設備(又稱 FireWire ?)的初步支持。
30.2. 准備升級在你升級內核之前,你應該先采取幾項預防措施。第一步是確定你有一張適用於你的系統的可運行的引導盤以防萬一出現問題。如果引導裝載程序沒有被正確配置來引導新內核,除非你有引導盤,否則就無法引導系統。
要創建引導盤,在 shell 提示下登錄為根用戶,然後鍵入以下命令:
/sbin/mkbootdisk `uname -r`竅門:請參考 mkbootdisk 的說明書頁(man)來閱讀更多選項。
在繼續前,使用引導盤來重新引導你的機器以校驗該軟盤的可運行性。
但願你不必使用引導盤,但是你應該把它存放在一個安全的地方以防萬一。
要判定你已安裝了哪些內核軟件包,在 shell 提示下執行下面的命令:
rpm -qa grep kernel依據你執行的安裝類型而定(你的版本號碼和軟件包可能不同),該命令的輸出會包括某些或全部在下面列出的軟件包:
kernel-2.4.20-2.47.1 kernel-debug-2.4.20-2.47.1 kernel-source-2.4.20-2.47.1 kernel-doc-2.4.20-2.47.1 kernel-pcmcia-cs-3.1.31-13 kernel-smp-2.4.20-2.47.1從輸出中,你可以判定你需要下載哪些軟件包來執行內核升級。對於單處理器系統而言,只有 kernel 軟件包是必需的。
如果你的計算機不只有一個處理器,你需要包括支持多處理器的 kernel-smp 軟件包。強烈建議你仍安裝 kernel 軟件包,以防萬一多處理器內核不能在你的系統中正確運行。
如果你的計算機的內存超過了 4GB,你必須安裝 kernel-bigmem 軟件包才能使系統使用多於 4GB 的內存。強烈建議你仍舊安裝 kernel 軟件包以用於調試。 kernel-bigmem 軟件包僅為 i686 體系建構。
如果你需要 PCMCIA 支持(例如在便攜電腦上), kernel-pcmcia-cs 軟件包就必不可少。
除非你想重新編譯內核,或把系統用於內核開發,你不需要 kernel-source 軟件包。
kernel-doc 軟件包包括內核開發文檔,它不是必需的。如果你的系統被用於內核開發,則推薦你安裝它。
kernel-util 軟件包包括能夠用來控制內核或系統硬件的工具程序,它也不是必需的。
Red Hat 建構的內核為不同的 x86 版本做了優化。選項有:用於 AMD Athlon ? 和 AMD Duron ? 系統的 athlon ;用於 Intel ? Pentium ? II、 Intel ? Pentium ? III、和 Intel ? Pentium ? 4 系統的 i686 ;用於 Intel ? Pentium ? 和 AMD K6 ? 系統的 i586 。如果你不知道你的 x86 系統的版本,使用為 i386 版本建構的內核;它是為所有基於 x86 的系統建構的。
RPM 軟件包的 x86 版本被包括在文件名中。例如: kernel-2.4.20-2.47.1.athlon.rpm 是為AMD Athlon ? 和 AMD Duron ? 系統優化的, kernel-2.4.20-2.47.1.i686.rpm 是為 Intel ? Pentium ? II、 Intel ? Pentium ? III、和 Intel ? Pentium ? 4 系統優化的。在你判定了軟件包之後,你需要升級 內核,為 kernel 、 kernel-smp 、和 kernel-bigmem 軟件包選擇正確的體系。其它軟件包使用 i386 版本。
30.3. 下載升級了的內核要判定是否有可用於你的系統的升級內核,方法有好幾種。
進入 http://www.redhat.com/apps/support/errata/ 網站,選擇你使用的 Red Hat Linux 版本,然後查看它的勘誤。內核勘誤通常在 安全顧問(Security Advisories) 部分下。從勘誤列表中 點擊內核勘誤來查看它的詳細勘誤報告。在勘誤報告中,有一個需要的 RPM 列表,以及從 Red Hat FTP 站點下載它們的鏈接。你還可以從 Red Hat FTP 的 鏡像站點中下載它們。鏡像站點的列表在 http://www.redhat.com/download/mirror.Html 中。
使用 Red Hat 網絡來下載內核 RPM 軟件包並安裝它們。Red Hat 網絡能夠下載最新的內核、升級系統上的內核、如果必要,創建初始 RAM 映像,並配置引導裝載程序來載入新內核。要獲取更多信息,請參閱 http://www.redhat.com/docs/manuals/RHNetwork/ 上的 Red Hat 網絡 User Reference Guide 。
如果你從 Red Hat Linux 的勘誤網頁上下載了 RPM 軟件包,或只使用了 Red Hat 網絡來下載軟件包,繼續閱讀 第 30.4 節 。如果你使用了 Red Hat 網絡來下載並安裝更新了的內核,遵循 第 30.5 節 和 第 30.6 節 中的說明。只不過,不要把內核改成默認引導項,因為 Red Hat 網絡會自動把默認內核改成最新版本。
30.4. 執行升級檢索到所有必要的軟件包後,你就可以開始升級現存內核了。在 shell 提示下登錄為根用戶,轉換到包含內核 RPM 軟件包的目錄中,遵循以下步驟:
重要:強烈建議你保留舊內核,以防萬一新內核出現問題。
使用 rpm 命令的 -i 選項來保留就內核。如果你使用了 -U 選項來升級 kernel 軟件包,它會覆蓋當前安裝了的內核。該命令為(內核版本和 x86 版本會有所不同):
rpm -ivh kernel-2.4.20-2.47.1.i386.rpm如果系統是多處理器系統,還需安裝 kernel-smp 軟件包(內核版本和 x86 版本會有所不同):
rpm -ivh kernel-smp-2.4.20-2.47.1.i386.rpm
如果系統是基於 i686 的,並包含超過 4GB 的內存,還需安裝為 i686 體系建構的 kernel-bigmem 軟件包(內核版本和 x86 版本會有所不同):
如果你打算升級 kernel-source 、 kernel-docs 、或 kernel-utils 軟件包,你可能不需要保留老版本。使用下面的命令來升級這些軟件包(版本會有所不同):
rpm -Uvh kernel-source-2.4.20-2.47.1.i386.rpm rpm -Uvh kernel-docs-2.4.20-2.47.1.i386.rpm rpm -Uvh kernel-utils-2.4.20-2.47.1.i386.rpm