1. 確保centos7上有gcc和make等工具linux
2. 獲取centos7源碼。
CentOS-7-x86_64-1503-01版本的內核是3.10.0-229.el7.x86_64,下載該distribution版本的內核源碼,拷貝到根目錄:
http://vault.centos.org/7.1.1503/updates/Source/SPackages/kernel-3.10.0-229.1.2.el7.src.rpm
安裝該源碼包
[user@host]# rpm -i kernel-3.10.0-229.1.2.el7.src.rpm
如今內核的源代碼目錄樹能夠在 ~/rpmbuild/SOURCE/ 這個目錄內找獲得,源碼文件是linux-3.10.0-229.1.2.el7.tar.xz
3. 編譯內核源碼
(1) 將linux-3.10.0-229.1.2.el7.tar.xz 文件拷貝到目錄 /usr/src/kernels/ 下
(2) 解壓內核源碼
[user@host kernels]# tar -xvf linux-3.10.0-229.1.2.el7.tar.xz
(3) 切換到 linux-3.10.0-229.1.2.el7目錄
[user@host kernels] # cd linux-3.10.0-229.1.2.el7
(4)清除從前編譯內核時殘留的.o 文件和沒必要要的關聯。
確保源代碼目錄下沒有不正確的.o文件和文件依賴關係,執行該命令後,內核選項會回到默認的狀態下。若是你是下載的內核源碼,並且是第一次編譯,就沒有必要執行這一步操做
[user@host inux-3.10.0-229.1.2.el7]# make mrproper
將已存在的./.config文件內容,做爲新版本內核的默認值。
[user@host inux-3.10.0-229.1.2.el7]# make oldconfig
(5) 配置內核,修改相關參數
[user@host inux-3.10.0-229.1.2.el7]# make menuconfig
在內核配置菜單中配置ramdisk塊驅動模塊的個數和大小,並保存退出
Device Drivers
|-->Block devices
|--> [M]RAM block device support
(xx) Default number of RAM disks
(xx) Default RAM disk size(kbytes)
(6) 編譯內核和內核模塊
[user@host inux-3.10.0-229.1.2.el7]# make bzImage
[user@host inux-3.10.0-229.1.2.el7]# make modules
(7) 編譯後的Ramdisk模塊的存放位置
/usr/src/kernels/linux-3.10.0-229.1.2.el7/drivers/block/brd.ko
4. 安裝新的brd.ko模塊centos
(1) 將新的brd.ko模塊拷貝到Centos7系統的 以下目錄/lib/modules/3.10.0-229.el7.x86_64/kernel/drivers/block/,
覆蓋原來的ramDisk模塊brd.ko。工具
(2) 將舊的brd.ko模塊從內核中移除。
[root@localhost ~]# rmmod brd
(3) 更新內核模塊依賴。
[root@localhost ~]# depmod -a
(4) 從新掛載內核模塊。
[root@localhost ~]# modprobe brd
(5) 檢查內核模塊是否掛載成功,
若是上面的內核選項中[Default number of RAM disks]的值設置的是2,那麼,
新模塊加載成功後,命令會輸出顯示/dev/ram0 和 /dev/ram1 兩個設備
[root@localhost ~]# ls /dev/ram*
(6) 檢查ramdisk的容量大小(以1024M的ramdisk爲例),輸入如下命令。
[root@localhost ~] mkdir /tmp/ramdisk0
[root@localhost ~] mke2fs /dev/ram0
[root@localhost ~] mount /dev/ram0 /tmp/ramdisk0
[root@localhost ~] df -h
Filesystem Size Used Avail Use% Mounted on
/dev/ram0 1008M 1.3M 956M 1% /tmp/ramdisk0ui