Kickstart centos 5-6-7-8 加入MegaRaid的rpm包等自定义工具方法

 

CentOS 8,需要修改images/install.img

需要安装:yum install -y squashfs-tools
# unsquashfs -l install.img
squashfs-root
squashfs-root/LiveOS
squashfs-root/LiveOS/rootfs.img
# mkdir -p /mnt/tmp
# mount install.img /mnt/tmp -o loop
# cp -a /mnt/tmp/LiveOS .
# mkdir sqashfs-root
# mv LiveOS sqashfs-root/
# cd sqashfs-root/LiveOS
# umount /mnt/tmp
# mount rootfs.img /mnt/tmp -o loop
# cd /mnt/tmp/
解压文件:MegaCli-8.07.14-1.noarch.rpm
#rpm2cpio ../MegaCli-8.07.14-1.noarch.rpm | cpio -idv
由于系统自带的ncurses-libs是6.1的,版本较高,需要创建一个软链接,否则MegaCli命令无法运行
ln -s usr/lib64/libncurses.so.6.1 usr/lib64/libncurses.so.5
# cd -
# umount /mnt/tmp
# cd ../../   ## you want to be above sqashfs-root/
# mksquashfs sqashfs-root ./install.img.new -comp xz -Xbcj x86
### overwrite the remote LiveOS image with it on your local mirror

CentOS7以上比较特殊,需要修改LiveOS/squashfs.img


需要安装:yum install -y squashfs-tools
# unsquashfs -l squashfs.img
squashfs-root
squashfs-root/LiveOS
squashfs-root/LiveOS/rootfs.img
# mkdir -p /mnt/tmp
# mount squashfs.img /mnt/tmp -o loop
# cp -a /mnt/tmp/LiveOS .
# mkdir sqashfs-root
# mv LiveOS sqashfs-root/
# cd sqashfs-root/LiveOS
# umount /mnt/tmp
# mount rootfs.img /mnt/tmp -o loop
# cd /mnt/tmp/
解压文件:MegaCli-8.07.14-1.noarch.rpm
#rpm2cpio ../MegaCli-8.07.14-1.noarch.rpm | cpio -idv
# cd -
# umount /mnt/tmp
# cd ../../   ## you want to be above sqashfs-root/
# mksquashfs sqashfs-root ./sqashfs.img.new -comp xz -Xbcj x86

### overwrite the remote LiveOS image with it on your local mirror
# cd /path/to/7.2/x86_64/LiveOS/
# mv squashfs.img squashfs.img.orig
# scp somenode:/path/to/sqashfs.img.new sqashfs.img

CentOS6,修改initrd.img文件

#cd /tmp
#mkdir initrd-new
#cd initrd-new
#xz -dc ../initrd.img | cpio -id
解压文件:MegaCli-8.07.14-1.noarch.rpm
#rpm2cpio ../MegaCli-8.07.14-1.noarch.rpm | cpio -idv
#find . | cpio -c -o | xz -9 --format=lzma > ../initrd-new.img

1、网卡驱动rpm包制作

intel x722网卡在CentOS 6.9以下的小版本系统里,默认不支持。根据红帽官网的说明,兼容性如下:
其中kernel-2.6.32-696.el6对应的centos版本为centos6.9,所以服务器厂家默认不建议您安装低于此版本的系统。

红帽官网链接:https://access.redhat.com/articles/3135591

附inter官网下载驱动链接:
https://downloadcenter.intel.com/zh-cn/download/24411/-Linux-PCIe-40-?product=46828

intel x722网卡其驱动使用i40e的源码包里说明了,可以直接在对应目标版本的内核系统上(此处举例为2.6.32-754.17.1.el6.x86_64)生成rpm包:rpmbuild -tb i40e-<x.x.x>.tar.gz

 

为了便于区别,新的rpm包修改了下名字,不影响使用 i40e-2.10.19.82-2.6.32-754.17.1.el6.x86_64.rpm 。

2、如果是需要修改PXE安装时候的内核,需要先将对应内核版本rpm的文件解压到initrd-new文件夹里,此处是因为i40e需要高版本的内核才能编译通过:

rpm2cpio ../kernel-2.6.32-754.17.1.el6.x86_64.rpm | cpio -idv

rpm2cpio ../kernel-devel-2.6.32-754.17.1.el6.x86_64.rpm | cpio -idv

rpm2cpio ../kernel-firmware-2.6.32-754.17.1.el6.noarch.rpm | cpio -idv

将需要添加的网卡驱动解压进去 :

rpm2cpio ../i40e-2.10.19.82-2.6.32-754.17.1.el6.x86_64.rpm | cpio -idv

 

然后将新生成的boot子文件夹从initrd-new 里面mv到外面,因为PXE时候使用的内核来自vmlinuz文件:

mv initrd-new/boot ../

然后重新打包img

#find . | cpio -c -o | xz -9 --format=lzma > ../initrd-new.img

然后在外层目录比如/tmp中将对应内核文件拷贝一份,将这个新的vmlinuz 替换原来/tftpboot/pxelinux.cfg对应系统模板里的”KERNEL“ 开头行对应配置文件

cp boot/vmlinuz-2.6.32-754.17.1.el6.x86_64 vmlinuz

以下面的修改为例,使用了新的vmlinuz和initrd.img文件,cfg文件根据实际需要修改,另外cfg文件里添加了rpm安装网卡新驱动一步(内核自带的较旧):

CentOS5

解压缩
mv initrd.img initrd.img.gz
gunzip initrd.img.gz
cpio -ivmd < initrd.img
解压后得到以下文件\目录
# ls
bin dev etc init initrd.img modules proc sbin selinux sys tmp var
#rpm2cpio ../MegaCli-8.07.14-1.noarch.rpm | cpio -id
重新打包
rm -f initrd.img
find . | cpio -c -o > ../new
gzip ../new
mv ../new.gz initrd.img

 

参考链接:http://fibrevillage.com/storage/410-removing-fc-fibre-channel-devices-from-the-anaconda-kernel-at-sl7-rhel7

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值