裁剪Linux並實現網卡模塊的安裝(附有命令移植的腳本)



Linux的設計模式:核心和外圍功能性模塊組構成的,其內核支持動態模塊的裝載和卸載。


裁剪Liniux的原理:


-->POST(Power-on Self Test:開機自檢)


-->BIOS(Boot Sequence :指定啓動的設備讀取磁盤中操作系統內核文件)


-->GRUB [


BootLoader :加載內核文件至內存


(stage1:MBR


stage1.5:識別內核文件所在的文件系統,提供文件系統是別的擴展


stage2:GRUB的引導程序,其配置文件:/boot/grub/grun.conf   ) ]


-->kernel( initrd :將內核解壓縮爲根目錄,加載合適的驅動程序,最後退出虛擬文件系統)


-->SHELL



init是linux的第一個進程,實現系統的初始化,負責管理用戶空間的進程;


PID爲1


其二進制程序爲/sbin/init


配置文件:/etc/inittab



/lib/modules/:linux需要的驅動程序在此目錄下



Grub的功能:


1.選擇要啓動的內核或系統,界面可隱藏


2.提供交互式接口,可以編輯grub.conf文件:e進入編輯模式


3.基於密碼保護


啓動內核映像:定義在相應的title


傳遞參數(進入編輯模式):定義在全局段



grub.conf的語法:


default=n:指定默認啓動該grub.conf中的第n-1title選項(0表示第一個)


timeout=n:啓動進行讀秒,用沒有其他操作的情況下需要等待n


splashp_w_picpath=(hd0,0) /path/to/Splashp_w_picpath_File:指定使用的背景圖片


hiddenmenu:啓動時是否顯示菜單


title


root:內核文件存放的分區


hd0:表示設備;從0開始編號


0:代表分區;從0開始編號


格式:root(hd0,0)


kernel:指定內核文件以及傳遞給內核文件的參數


格式:kernel /path/to/kernel_file  [參數]  ro root=/path/to/Device  [quiet]


initrd:指定initrd製作的以.img結尾的文件


格式:initrd/FileName.img


裁剪Linux並自動安裝網卡模塊:


 環境:    宿主機

                                         目標機


1.在宿主機中添加一塊新的磁盤

wKioL1MUehayeSdjAADmqhxCp-o584.jpg


2.爲新添加的磁盤創建兩個主分區

wKioL1MUe5iylQYmAAHM8RcNWB8480.jpg


3.分別對/dev/sdb1和/dev/sdb2創建文件系統,且都爲ext4

wKiom1MUfM7wtW0wAAB_NPlRxc0386.jpg

wKioL1MUfLaQDiG6AACTwKw1Thg461.jpg


4.在/mnt目錄下創建兩個目錄/boot和sysroot

wKiom1MUgvWydNG3AABW9q4GCLQ324.jpg


5.將/dev/sdb1掛載到/mnt/boot目錄下;將/dev/sdb2掛載到/mnt/sysroot目錄下

wKiom1MUhAiitZ7sAAGh6e_rzGc173.jpg


6.安裝grub至/dev/sdb上

wKiom1MUhPSSCl60AAEWM8wP5TA138.jpg


7.複製內核文件和initrd文件至/mnt/boot/目錄下

wKioL1MUhl_SpR4XAADUtyK8L6M866.jpg


8.爲目標主機創建根文件系統

wKiom1MUiJWwnpf0AAKanjTg570283.jpg


9.移植bash和一些相關的命令至目標主機的跟文件系統

wKiom1MUi87iOcZOAALgxJlir5c799.jpg


10.測試bash是否移植成功:用chroot將根目錄切換爲/mnt/sysroot

wKioL1MVx5vy0YwVAABz6rUfJys669.jpg


11.爲grub提供配置文件且基於md5對grub進行加密:啓用內核映像和參數傳遞模式的保護

wKiom1MUj-Wh5L3rAABtJw_DsAg668.jpg

wKioL1MV2bribr6FAAD5pMpKbrs186.jpg


12.創建/mnt/sysroot/lib/modules目錄並將ib/modules/2.6.32-358.el6.i686/kernel/drivers/net/e1000/e1000.ko拷貝到其目錄下

wKiom1MVy5-hHz5NAACqbpivO4Q459.jpg


13.編寫init腳本使其完成自動網卡模塊的加載併爲其目標主機配置IP

wKiom1MV0B_iQ8lgAADkQTx4lDM394.jpg


14.爲/mnt/sysroot/sbin/init賦予可執行權限 chmod +x /mnt/sysroot/sbin/init

wKioL1MXOOHRmOqlAACo3X7sit8531.jpg


15.將所有信息同步至磁盤CentOS1.1-000002.vmdk

wKioL1MV1p-QdL3YAACvxmXcNxE246.jpg


16.掛起目標主機新建目標主機併爲其添加一塊已存在的磁盤CentOS1.1-000002.vmdk


wKioL1MV1A6SvpHNAAClgOfQJ2U172.jpg


wKioL1MV0u_zHkDtAABxrm9CVB4452.jpg



17.基於md5加密的grub參數傳遞模式,編輯grub時需要輸入加密時的密碼

wKiom1MV1-SSsFDBAACvhCZJ5AE820.jpg



18.基於md5加密的內核映像模式,啓動系統時需要輸入加密時的密碼

wKioL1MXNePy4eo9AACKF0Iv-44749.jpg


19.最終完成linux的裁剪,並能夠成功進入系統

wKioL1MXOoeD0_YKAAKMryOxtYU788.jpg

wKioL1MXPSyhqZ9WAABM1gyNuZQ502.jpg


20.測試之後能夠成功ping同172.16.0.1的主機

wKiom1MXPauDDWclAAELnksWLVc115.jpg


安裝網卡模塊需要用到的相關命令:


查看PCI設備的信息:

# lspci

查看當前系統轉載的模塊:

# lsmod

查看某模塊的信息:

# modinfo   MOD_NAME

查看某模塊的依賴關係:

# depmod  MOD_NAME

動態裝載某模塊:

# modprobe  MOD_NAME  或 # insmod  /path/to/Module_File

動態卸載某模塊:

# modprobe  -r  MOD_NAME  或 # rmmod  /path/to/Module_File




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章