爲了正確的合理地設置內核編譯配置選項,從而只編譯系統須要的功能的代碼,通常主要有下面四個考慮:
---本身定製編譯的內核運行更快(具備更少的代碼)
---系統將擁有更多的內存(內核部分將不會被交換到虛擬內存中)
---不須要的功能編譯進入內核可能會增長被系統攻擊者利用的漏洞
---將某種功能編譯爲模塊方式會比編譯到內核內的方式速度要慢一些 html
1.得到最新內核linux
Linux內核版本發佈的官方網站是< http://www.kernel.org/>,國內各大ftp上通常均可以找到某些版本的內核。新版本的內核的發佈有兩種形式,一種是完整的內核版本,另一種是patch文件,即補丁。完整的內核版本比較大,好比linux-2.4.0-test8.tar.bz2就有18M之多。完整內核版本通常是.tar.gz(.tgz)文件或者是.bz2文件,兩者分別是使用gzip或者bzip2進行壓縮的文件,使用時須要解壓縮。patch文件則比較小,通常只有幾十K到幾百K,極少的會超過1M。可是patch文件是針對於特定的版本的,須要找到本身對應的版本才能使用。 vim
2.配置內核安全
內核的編譯選項的個數很是多, v2.6.38的內核中就有 12 000 個左右的設置選項(這是包含全部arch的配置選項).
內核編譯選項不只多, 有些編譯選項之間還存在依賴關係, 因此手動設置編譯選項幾乎是不可能的.
值得慶幸的是, 只要知道本身須要設置的那些選項, 就可使用 make ***config 來進行設置, 它還會自動處理依賴關係.架構
配置方法:網站
若是這不是你第一次配置這個內核,那麼請先運行:make mrproper(http://www.cnblogs.com/laojie4321/archive/2012/04/11/2442921.html)來清除之前的配置.ui
3.編譯內核spa
輸入以下命令,編譯生成一個壓縮內核:操作系統
$ make.net
開始編譯內核模塊:
$ make modules
4. 安裝內核及模塊
安裝內核, bzImage文件是內核映像文件,是啓動內核所必需的,咱們應當把它拷貝到/boot目錄下。通常內核映像文件的命名方式爲它更名爲vmlinuz-2.6.12.
# make install (安裝內核二進制映像, 生成並安裝boot初始化文件系統映像文件)
該指令將會在/boot目錄下安裝以下三個文件:
System.map-2.6.25
config-2.6.25
vmlinuz-2.6.25
安裝模塊,對於內核來講,每個內核版本有本身的模塊目錄,默認在/lib/modules/內核版本號這個目錄下,make modules_install會建立對應的目錄,並把對應的模塊文件拷貝過去。注意,這一步必需要在編譯過內核再作。
make modules_install (安裝內核模塊到 /lib/modules 下)
6.建立initrd.img文件
在終端輸入以下代碼:
# cd /boot
# mkinitrd -o initrd.img-2.6.25 2.6.25
initrd映像文件包含設備驅動,用來加載操做系統的其他部分。並非全部的電腦都須要initrd文件,不過建立一個是比較安全的作法。
7.修改grub配置文件
grub配置文件的位置在/boot/grub/menu.lst
使用vim或者vi打開文件:
# vi /boot/grub/menu.lst
title Debian GNU/Linux, kernel 2.6.25 Default
root (hd0,0)
kernel /boot/vmlinuz root=/dev/hdb1 ro
initrd /boot/initrd.img-2.6.25
savedefault
boot
記得,須要填寫正確的 root=/dev/hdXX 。保存並關閉該文件。若是你以爲所有手工輸入有些麻煩,能夠嘗試輸入update-grub命令:
# update-grub
參考:
http://www.360doc.com/content/13/0308/14/11722082_270168965.shtml
http://blog.chinaunix.net/uid-24782829-id-3211008.html
http://www.cnblogs.com/wang_yb/p/3899439.html
http://blog.chinaunix.net/uid-26404477-id-3126818.html
http://www.oschina.net/question/234345_42957