Linux內核參數設定及內核編譯

先來了解下/proc文件系統:

        proc文件系統是一個僞文件系統,它只存在內存當中,而不佔用外存空間。它以文件系統的方式爲訪問系統內核數據的操做提供接口。用戶和應用程序能夠經過proc獲得系統的信息,並能夠改變內核的某些參數。因爲系統的信息,如進程,是動態改變的,因此用戶或應用程序讀取proc文件時,proc文件系統是動態從系統內核讀出所需信息並提交的。

        並非全部這些目錄在你的系統中都有,這取決於你的內核配置和裝載的模塊。另外,在/proc下還有三個很重要的目錄:net,scsi和sys。Sys目錄是可寫的,能夠經過它來訪問或修改內核的參數,而net和scsi則依賴於內核配置。例如,若是系統不支持scsi,則scsi目錄不存在。linux

 

方法一:ide

        咱們能夠直接給文件傳遞一個值:能夠啓用或關閉某個功能,0表示關閉,1表示啓用。性能

        例:打開系統的ip_forward(數據包轉發);this

# echo 1 >/proc/sys/net/ipv4/ip_forwardspa

wKioL1NyqvPQ4QpTAACgb8jdpbM529.jpg

方法二:經過sysctl 命令給內核傳遞一個值3d

 -w     Use this option when you want to change a sysctl setting.blog

         (你想轉變一個系統的設定的時候,用這個選項)接口

# sysctl -w net.ipv4.ip_forward=1進程

wKioL1NyrH7Qz5beAACq7T2kZQs781.jpg

這些修改方法,都是臨時生效的,重啓無效。ip

 

方法三:須要修改配置文件/etc/sysctl.conf,設置默認的內核參數。

wKiom1NyrinzdXL2AAFlUtn1J5Q776.jpg

sysctl -a:查看全部內核參數;

sysctl -p:讀取配置文件,讓其生效;

接下來咱們來看看如何編譯Linux內核:

首先解壓源碼包

# tar -xvf linux-3.2.58.tar.xz -C /usr/src

# cd /usr/src/linux-3.2.58

配置內核編譯參數,咱們參考紅帽給咱們的例子。

# cp /boot/config-2.6.32-358.el6.i686  .config  

# make menuconfig

這就是內核功能的定製界面,能夠在裏面定製須要的功能,精簡系統,選擇完成後保存。

wKiom1NzR6Dy5cvaAAKHlaA7b1c256.jpg

# make

這就開始編譯了,大約要兩個小時,這取決於CPU的性能。

wKioL1NzQk_AawN3AAGk8hefyiU627.jpg

編譯完成,接下來安裝模塊。

# make modules_install

安裝核心

# make install

wKioL1NzRLDD7M3xAAFWohRc9m0839.jpg

有些模塊找不到,這是由於安裝系統後加的模塊,好比vmware_balloon 這個模塊是虛擬機的氣球模塊,先無論。

查看下/boot/grub/grub.conf 文件,新內核已經加進來了,可是默認啓動的是舊的內核。

咱們如今重啓進入新內核試試:# reboot

wKiom1NzRYvCAzFVAAKN-S9knlM677.jpg

在這裏,咱們選擇啓動新編譯的內核。

wKioL1NzRjvCdLfAAAFmrXzYrBc029.jpg

啓動成功,編譯安裝內核完成。

wKiom1NzRxfjHod1AADMv3Hhi5E897.jpg

相關文章
相關標籤/搜索