Linux网卡模块,裁剪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-1个title选项(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.在宿主机中添加一块新的磁盘

ddc0fafae787278695216e79e4761813.png

2.为新添加的磁盘创建两个主分区

3787ddb84347bbde4851e9fd7b09c2a6.png

3.分别对/dev/sdb1和/dev/sdb2创建文件系统,且都为ext4

c89947720568c722f82d1eafe484194c.png

ec38323ed46986d2f5d92bef38462be1.png

4.在/mnt目录下创建两个目录/boot和sysroot

4ee9223c7e146119d3bb3e2fda5d73b9.png

5.将/dev/sdb1挂载到/mnt/boot目录下;将/dev/sdb2挂载到/mnt/sysroot目录下

1ecd102dd434901a7c1d7d9dcf55ad56.png

6.安装grub至/dev/sdb上

cb890754e1beb054d586315e10f407d7.png

7.复制内核文件和initrd文件至/mnt/boot/目录下

7c9dddae96c981216acbf31636ab0fe0.png

8.为目标主机创建根文件系统

508194cd5ba82d045eda2b5caafe7655.png

9.移植bash和一些相关的命令至目标主机的跟文件系统

b742d95b0409b0759ae757491b56106a.png

10.测试bash是否移植成功:用chroot将根目录切换为/mnt/sysroot

f73e0238f7ddda8308335d85ddb7a023.png

11.为grub提供配置文件且基于md5对grub进行加密:启用内核映像和参数传递模式的保护

0cfbc6249f73e0fa0786747b0b5fe038.png

f7da3e621993f9776c133503ba8cb236.png

12.创建/mnt/sysroot/lib/modules目录并将ib/modules/2.6.32-358.el6.i686/kernel/drivers/net/e1000/e1000.ko拷贝到其目录下

43b38c1f0d5a604247730b1ce77c9692.png

13.编写init脚本使其完成自动网卡模块的加载并为其目标主机配置IP

3488551fe0fe6449922986063ea79b58.png

14.为/mnt/sysroot/sbin/init赋予可执行权限 chmod +x/mnt/sysroot/sbin/init

e72098c226c0e78544283468aa853dae.png

15.将所有信息同步至磁盘CentOS1.1-000002.vmdk

bea3fc2bfd1a205cf9063990346c0482.png

16.挂起目标主机新建目标主机并为其添加一块已存在的磁盘CentOS1.1-000002.vmdk

a3fcd58007d1ab04e53805c19cc29746.png

b4b664d2bbf8342075bdd6aea2511b17.png

17.基于md5加密的grub参数传递模式,编辑grub时需要输入加密时的密码

529020ce1830029aca24e6d0388ea7f8.png

18.基于md5加密的内核映像模式,启动系统时需要输入加密时的密码

6ac1d99e86213f33a4af21dcc8eff3d8.png

19.最终完成linux的裁剪,并能够成功进入系统

b137b187a73eb11a077cbdd6fe13c895.png

c4114bf33a25347cc9f58cc3a3076747.png

20.测试之后能够成功ping同172.16.0.1的主机

d69b62e342beebe1e19415936c30cac9.png

安装网卡模块需要用到的相关命令:

查看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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值