Linux PXE中如何重新封装initrd.img

Linux PXE中如何重新封装initrd.img
Linux PXE中如何重新封装initrd.img

命令:

lspci –vv

arp

lsmod

modinfo

如何添加新的模块到initrd.img中:

(由于linux版本的升级,原网上已经没有一篇文档适合现在的2.6.18-128.el 5的核心了,原张超文档提供的initrd-util已经无法完成initrd.img文件的解压了。有关新版本initrd.img分解见下面测试.)

一.测试环境:

主板:P5QL-VM-EPU

软件:Centos5.3 核心版本:2.6.18.128.e15xen

主板驱动:LAN(linux-v1.0.0.7)可以看readme文档进行安装。

(安装后生成atl1e.ko)

二、解压initrd.img文件,重新封装网卡驱动。

1.#### unzip initrd.img####

#### cp $cdrom(rhel5.3) /tftpboot/images/rhel/i386/5.3/###

#cd /tftpboot/images/rhel/i386/5.3

#cp initrd.img initrd.img.old

#mv initrd.img initrd.img.gz

#gunzip initrd.img.gz

#mkdir initrd

#cd ./initrd

#cp ../initrd.img .

#cpio -iv < initrd.img

#ls

bin dev etc init modules proc sbin selinux sys tmp var

2.###unzip modules.cgz###

#cd /tftpboot/images/rhel/i386/5.3/initrd/modules

# ls

module-info modules.alias modules.cgz modules.dep pci.ids

#zcat modules.cgz | cpio -idm

#find

#ls

#cd 2.6.18-128.el5/i686

#cp /lib/modules/2.6.18-128el5xen(uname-r)/kernel/drivers/net/atl1e/a tl1e.ko .

(拷贝atl1e.ko 到当前目录。)

3.###zip modules.cgz###

#find 2.6.18-128.el5/ | cpio -o -H crc > newmodules

#gzip -n -9 newmodules

#rm -rf modules.cgz

#mv newmodules.gz modules.cgz

4.###edit the module-info modules.alias modules.dep pci.ids….#### 1)#vi module-info

添加:

atl1e

eth

“ATL1E NIC driver”

保存退出。

Modinfo igb.ko

2)#vi modules.alias

……

alias pcmcia:m015Fc000Af*fn*pfn*pa*pb*pc*pd* airo_cs

alias pci:v00001969d00001026sv*sd*bc*sc*i* atl1e

alias pci:v00001022d00007462sv*sd*bc*sc*i* amd8111e

alias pci:v000017D3d00001681sv*sd*bc*sc*i* arcmsr

……

保存退出。

注:例如:alias pci:v00008086d00007190sv000015ADsd00001976bc06sc00i00 表示该设备的设备编号是 0x7190,制造商编号是 0x8086,模块子系统提供商编号 0x15 ad 等等,v即是代表 vendor,sv代表 subsystem-vendor,sd代表 subsystem-device

我们可以直接从系统里得到(因为已经手动安装过了)。通过 modinfo .

[root@localhost modules]# modinfo atl1e

filename: /lib/modules/2.6.18-128.el5xen/kernel/drivers/net/atl1e/atl1e.ko

version: 1.0.0.7

license: GPL

description: Atheros 1000M Ethernet Network Driver

author: Atheros Corporation,

srcversion: D7C9E6C2BF57DCDD60364C3

alias: pci:v00001969d00001026sv*sd*bc*sc*i*

depends:

vermagic: 2.6.18-128.el5xen SMP mod_unload 686 REGPARM 4KSTACKS gcc-4.1 parm: TxRingSz:Transmit Ring Sizen (array of int)

parm: RxfMemSize:memory size of rx buffer(KB) (array of int)

parm: MediaType:MediaType Select (array of int)

parm: IntModTimer:Interrupt Moderator Timer (array of int)

其中:depends 是和模块相依赖的包。

3)#vi modules.dep (可以从modinfo atl1e中看出没有依赖的包。)

iscsi_tcp: libiscsi scsi_transport_iscsi scsi_mod

libiscsi: scsi_transport_iscsi scsi_mod

arcmsr: scsi_mod

epic100: mii

atl1e.ko: (添加的内容。)

qla4xxx: scsi_transport_iscsi scsi_mod

4)vi pci.ids

添加:

1969 atl1e Ethernet Franck.chen

1026 Atl1e -100 Fast Ethernet Adapter 保存退出。

其中: 1969 制造商编号

1026 设备编号。

4.###zip initrd.img####

#/tftpboot/images/rhel/i386/5.3/initrd

#find ./ -print |cpio -ov > initrd.img

#find ./ -print |cpio -ov > ../initrd.img

#find ./ -print |cpio –o –c > ../initrd.img

#gzip -9 initrd.img

#mv initrd.img.gz initrd.img

#cp initrd.img ../

设备驱动模块查找:

Arp

Lsmod

Lspci –vv

Modinfo

Whereis

更改ks.cfg文件

install

url --url=http://192.168.33.1/As5-64bit

key --skip

lang en_US.UTF-8

keyboard us

xconfig --startxonboot

rootpw 111111

firewall --enabled --port=22:tcp

authconfig --enableshadow --enablemd5

selinux --enforcing

timezone Asia/Shanghai

bootloader --location=mbr --driveorder=sda --append="rhgb quiet" # The following is the partition information you requested

# Note that any partitions you deleted are not expressed # here so unless you clear all partitions first, this is

# not guaranteed to work

clearpart --linux

part /boot --fstype ext3 --size=200

part swap --size=8192

part / --fstype ext3 --size=100 –grow

。。。

相关主题
相关文档
最新文档