1 / 52

第 20 章

第 20 章. 編譯、升級 系統核心. 前言. 電腦資訊是汰換神速的產物 , 不單硬體隨著科技進步持續更新 , 軟體方面也是不斷改良演變 , Linux 的改版更是迅速。 本章將說明如何升級 Linux 的系統核心 , 隨時把系統維護在最佳狀態。. 本章提要. 20-1 認識核心與核心的版本 20-2 核心升級的準備 20-3 設定核心 20-4 編譯核心 20-5 更換核心 20-6 修補核心 20-7 應用實例:編譯目前的核心 , 以掛載 NTFS 檔案系統. 20-1 認識核心與核心的版本.

Download Presentation

第 20 章

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第 20 章 編譯、升級 系統核心

  2. 前言 • 電腦資訊是汰換神速的產物, 不單硬體隨著科技進步持續更新, 軟體方面也是不斷改良演變, Linux 的改版更是迅速。 • 本章將說明如何升級 Linux 的系統核心, 隨時把系統維護在最佳狀態。

  3. 本章提要 • 20-1認識核心與核心的版本 • 20-2 核心升級的準備 • 20-3設定核心 • 20-4編譯核心 • 20-5 更換核心 • 20-6 修補核心 • 20-7應用實例:編譯目前的核心,以掛載NTFS 檔案系統

  4. 20-1認識核心與核心的版本 • 核心是一個作業系統中最重要的部分, 其地位相當於人類的頭腦。就 Linux而言, 它是指 /boot 目錄下的 vmlinuz-x.x.x (x.x.x 為該核心的版號) 檔案。 • 系統核心負責控制整台電腦的運作, 包括硬體周邊、應用程式等等。 • Linux 是開放的自由軟體, 任何人都可以在網路上取得新版的核心。

  5. 認識核心與核心的版本 • 但核心是以程式原始碼(source code) 的型態釋放出來, 所以必須先經過編譯才可使用。 • 目前, Linux 核心的測試版和正式版兩者並行, 在網路上都可以取得:2.6.x版是正式版, 2.5.x 則是測試版。我們該如何分辨測試版及正式版? Linux 的核心版本又是如何命名的呢?基本上, Linux 的版本編號方式如下:

  6. 認識核心與核心的版本 • 其中, 次版本可用來分別正式版及測試版:次版本為偶數者為正式版, 奇數者則為測試版。正式版的核心是經過測試、修正後的版本, 較為穩定, 較適合一般使用者使用。 • 此外, 在升級核心時有一點要請您特別注意:請不要以次版本與現行核心不同的核心升級。

  7. 認識核心與核心的版本 • 也就是說, 如果您目前所使用的發行版使用 2.4.x 版的核心, 可以下載次版本同為 4, 修訂版本較新的核心使用, 但 “不要” 使用 2.6.x 版的核心。 • 這是因為次版本不同的核心間差異性頗大, 所使用的函式庫也有許多不同,若使用次版本不同的核心升級, 將會導致一些與核心相關的軟體套件無法正常執行。

  8. 20-2 核心升級的準備 • 為何要升級核心 • 升級前的注意事項 • 確認目前版本 • 下載系統核心 • 瞭解硬體環境 • 解開核心壓縮檔 • 修補檔有何用

  9. 為何要升級核心 • 升級系統核心, 不僅能修補舊版本的漏洞和缺失, 還可支援更多的周邊設備,並改善應用程式的相容性, 增加系統的穩定度。 • 即使不升級核心, 單就重新編譯系統核心而言, 可把預設值中一些不需要的功能去除, 對於系統效能之提昇也頗有助益。

  10. 升級前的注意事項 • 瞭解為何需要升級核心之後, 我們接著要介紹升級前的相關須知。 • 升級核心時, 請用 root 帳號登入。

  11. 確認目前版本 • 要升級系統核心之前, 必須先確認目前所用的核心是第幾版, 最新的版本編號又是多少, 避免已經在用最新版, 卻還去下載相同版本的核心進行升級。檢查目前系統核心版本的方法如下:

  12. 下載系統核心 • 版本確認後, 倘若認為有升級的必要 (請自行考量實際情況之需求), 就得去下載系統核心。我們列舉一些開放給使用者下載核心的地方: • Linux Kernel Archives:http://www.kernel.org。 • Tux:http://www.tux.org。

  13. 下載系統核心 • 核心的檔案名稱類似 linux-?.?.??.tar.gz 的形式。舉例來說, 我們下載 2.6.6版的核心, 其檔案名稱是 linux-2.6.6.tar.gz。 • 有些檔案名稱最後是 .bz2, 這也是系統核心的檔案, 只不過是用 bzip2 壓縮而成。

  14. 修補檔有何用 • 在下載系統核心的目錄中, 亦放置著核心的修補檔, 其檔案名稱通常為 patch-?.?.??.gz,它可讓您逐版地更新系統核心。 • 舉例而言, 假設您已經擁有完整的 2.6.4 核心, 則能使用2.6.5 的修補檔 (patch-2.6.5.gz), 來讓系統升級至 2.6.5 的版本, 然後再用 2.6.6 版的修補檔升級到 2.6.6。

  15. 修補檔有何用 • 但是您不能直接拿 2.6.6 的修補檔去用在 2.6.4 的核心上,也就是說採用這種方式更新版本要逐步進行, 版本必須連續而不能跳過。

  16. 瞭解硬體環境 • Linux 的核心支援許多的硬體, 但多半仍需您親自設定。 • 雖然擁有方便的圖形化介面和線上說明, 不過使用者在升級核心前, 最好知道自己的電腦內究竟安裝了哪些周邊設備, 並應知道每項硬體所使用的系統資源, 尤其是各式介面卡(adapter)、控制卡使用的 IRQ、DMA 以及 I/O Address。

  17. 解開核心壓縮檔 • 將核心檔案取回後, 請依下列方式解開: • 到此一切準備就緒, 接著可以開始設定核心, 並編譯核心檔案。

  18. 20-3設定核心 • 為方便起見, 設定與編譯核心可根據使用者執行的指令不同, 而有不一樣的進行方式。我們可以使用的指令如下: • make config:以問答的方式, 在文字模式中設定編譯核心的選項。一旦回答錯誤就無法反悔, 必須全部重頭再來, 因而不建議採用這個方法。

  19. 設定核心 • make menuconfig:採用文字模式選單設定編譯核心的選項。 • make gconfig:在 X Window System的圖形介面中, 設定編譯核心的選項。 • 第三種方法必須在 X Window System的文字模式視窗中才可執行, 其餘兩種無論在純文字模式中, 或文字模式視窗中皆能使用。不管使用哪一種方法進行設定, 都只有操作介面上的不同, 其設定項目並沒有改變。

  20. 設定核心 • 您也可以執行 make xconfig指令開啟另一個圖形介面程式, 此指令需要 QT 函式庫 ( make gconfig指令需要 GTK 函式庫)。若執行 make gconfig無法正常啟動圖形介面來設定, 可以試試 make xconfig指令。 • 整個設定過程所需選擇的選項非常繁複, 請秉持著『沒有必要的功能就不要選取』之原則, 否則多了一堆無用的垃圾碼, 徒然拖垮系統的效率而已。

  21. 設定核心 • 底下我們將以 make menuconfig指令來解說系統核心的設定過程, 請執行下列指令: • 執行指令後, 便會出現如下文字模式選單:

  22. 設定核心

  23. 設定核心 • 以 2.6.6 版的核心而言, 在編譯核心的設定檔選項裡, 初步分為 14 個類別。當展開某類別之後, 就會出現系統的功能設定, 您必須依據實際情形回答。 • 在每個設定項目的前面都有一個欄位狀態, 以 、 鍵移動光棒選擇設定項目後按空白鍵, 可以切換欄位的狀態, 下面說明這些狀態所代表之意義:

  24. 設定核心 • *:表示啟動該項功能 (除以空白鍵切換外, 亦可直接按 鍵啟動) 。 • M:即 Module, 表示該項功能可編譯成模組的型態, 然後以外掛的方式載入,毋需在編譯時放入系統核心。並非所有的功能都可以模組化, 假如該項功能無法編譯成模組, 則以空白鍵切換時將不會出現此狀態 (也可直接按 鍵設定要將此項目編譯為模組) 。

  25. 設定核心 • 保持空白:表示關閉該項功能 (可以按空白鍵切換, 也可直接按 [N] 鍵關閉功能) 。 • 某些功能彼此之間有關聯性存在, 當關鍵性功能的選項被關閉之後, 相關的功能便沒有作用, 此時將看不到這些相關項目。每項問題皆有其預設值 (已預先選好), 若不知該如何決定, 大多以預設值為準即可。

  26. 20-4編譯核心 • 接下來我們將開始編譯核心, 請依照下列步驟進行:

  27. 編譯核心 • 上述 make all 指令為 make vmlinux、make modules 及 make bzImage 等3 個指令的縮寫。結果將會編譯 2 個系統核心:一個未壓縮的系統核心 vmlinux,置於 /usr/src/linux 目錄下;一個壓縮過的系統核心 bzImage 置於 /usr/src/linux/arch/i386/boot 目錄下。而編譯完的模組則會置於 "/lib/modules/系統核心版本/kernel" 目錄下。

  28. 編譯核心 • 另外mkinitrd指令所用到的核心版本的號碼以原始碼目錄下的 Makefile 檔為準 , 例如筆者 /usr/src/linux 目錄下, Makefile 檔的內容如下: • 因此筆者在建立 initrd 檔案時所用的核心版本需填 "2.6.6"。

  29. 20-5 更換核心 • 編譯核心之後並不代表一切工作都已經完成, 我們還需要代換新的核心。由於新的系統核心可能導致系統無法啟動, 所以請先備份檔案與重要資料。 • 編譯完核心及模組之後, 需將核心複製到開機目錄並修改開機選單, 讓開機時可以選擇新的核心。請依下列的步驟修改:

  30. 更換核心 • 如果是用 GRUB 來管理開機, 接著請用文書編輯器修改 /boot/grub 目錄下的 menu.lst 檔:

  31. 更換核心

  32. 更換核心 • 這樣的設定可以保留舊的核心, 做為備援之用。若新版的核心測試無誤, 再考慮將舊版的設定移除。 • 若是使用 LILO , 請用文書編輯器開啟 /etc 目錄下的 lilo.conf 檔案, 修改其內容:

  33. 更換核心

  34. 更換核心 • 存檔後離開文書編輯程式, 執行 lilo指令, 最後重新開機即可。 • 萬一新核心沒有辦法開機, 則可由開機選單中選擇舊的核心開機, 再重新編譯新的核心或修正開機選單的錯誤設定。

  35. 20-6 修補核心 • 完整的系統核心檔案雖然經過壓縮, 但是仍然動輒數十 MB, 解開壓縮之後所佔空間也不小, 雖然現在的硬碟物美價廉, 磁碟空間應該不是問題, 不過從網路下載可是個大問題。 • 倘若您僅需升級一個版本, 例如從 2.6.5 升級到 2.6.6 , 便可考慮使用修補檔, 修補檔一般不會太大, 可以節省您許多下載檔案的時間。

  36. 修補核心 • 下載時, 請將修補檔存放在 /usr/src 的路徑下。 • 假設您已經安裝過 2.6.5 的系統核心 (必須為官方版本, 而不是使用發行版所附的版本), 然後要安裝它的修補檔, 將系統版本升級成 2.6.6 (patch-2.6.6.gz ), 其方法如下:

  37. 修補核心 • 如果您下載的是 .bz2 的檔案, 請用 bzip2 -dc ../patch-2.6.6.bz2 | patch -p1 的方式進行修補。 • 完成核心的修補之後, 還必須重新編譯核心, 才算大功告成。

  38. 20-7應用實例:編譯目前的 核心, 以掛載 NTFS 檔案系統 • 目前常較常用的 2.4 及 2.6 版核心都已經支援 NTFS 檔案系統, 不過有些發行版 (如 Fedora Core) 預設並沒有將此功能開啟, 因此您若是將此類發行版與使用 NTFS 檔案系統的 Windows NT/2000/XP/2003 安裝在同一台電腦, 那麼將會發現無法掛載 NTFS 檔案系統的分割區。解決的方法有以下兩種:

  39. 應用實例:編譯目前的核心,以掛載 NTFS 檔案系統 • 另外劃分一個 FAT 檔案系統的分割區:您可以分割出另一個使用 FAT 檔案系統的分割區, 供 Linux 與使用 NTFS 檔案系統的 Windows 交換檔案用。 • 重新編譯核心, 讓 Linux 可以掛載 NTFS 檔案系統:可以自行重新編譯核心,開啟支援 NTFS 檔案系統的功能。

  40. 應用實例:編譯目前的核心,以掛載 NTFS 檔案系統 • 編譯系統核心 • 掛載 NTFS 分割區 • 下載及安裝 Fedora Core 3 的核心原始碼

  41. 編譯系統核心 • 要掛載 NTFS 檔案系統, 您可以視情況考慮使用發行版光碟內附的核心,或是自行下載最新的核心。在這裡筆者以 Fedora Core 2 發行版內附的核心為例來說明, 請您先確定有安裝核心原始碼 (kernel-source-2.6.5-1.358.i386.rpm)。 • Fedora Core 3 發行版的安裝光碟中並沒有內附核心的原始碼, 若您使用此發行版, 請自行下載並安裝核心原始碼後, 再依說明操作編譯核心。

  42. 編譯系統核心 • 接著請執行下列指令, 將位於/ boot 目錄下的核心設定檔 config-x.x.x 複製到核心原始碼目錄中:

  43. 編譯系統核心 • 這麼做的好處是可以保留發行版預設所開啟的功能, 我們只要依需要新增或取消其他功能即可, 不需重新設定。接著請參考之前的說明來設定核心, 例如要開啟支援 NTFS 功能的方法如下所示:

  44. 編譯系統核心

  45. 編譯系統核心

  46. 編譯系統核心

  47. 編譯系統核心 • 請特別注意, 執行 mkinitrd指令製作 initrd 檔時所指定的版本編號, 需以核心原始碼目錄下 Makefile 檔中的記錄為準。此例中, 筆者使用的核心原始碼目錄為 /usr/src/linux-2.6.5-1.358, 其中 Makefile 檔記錄的核心版本為 2.6.5-1.358custom, 因此在製作 initrd 檔時, 需將核心版本編號指定為 2.6.5-1.358custom。

  48. 掛載 NTFS 分割區 • 更換核心並重新啟動電腦後, 就可以掛載 NTFS 的分割區了。例如筆者的NTFS 分割區位於 /dev/hda1, 想要掛載此分割區時, 只要執行下列指令掛載即可: • 其中 "-t ntfs" 指定分割區為 NTFS 檔案系統;"umask=0" 表示讓每個使用者都可以進入該目錄讀取檔案。完成掛載後就可以正常存取了。

  49. 掛載 NTFS 分割區 • 若想每次開機均自動掛載此分割區則, 請以文書編輯器開啟 /etc/fstab 檔,如下修改: • 如此, 以後每次開機均會自動掛載 /dev/hda1 的 NTFS 分割區了。

  50. 下載及安裝 Fedora Core 3 的核心原始碼 • Fedora Core 3 發行版的安裝光碟中沒有內附核心的原始碼, 但 Fedora Project 仍然遵循GPL 授權條款的約定, 在網路上釋出, 您可依照下列步驟自行下載安裝:

More Related