裁剪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


splashimage=(hd0,0) /path/to/Splashimage_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




你可能感兴趣的:(linux,linux启动流程,linux裁剪,安装网卡模块)