赞
踩
需要安装: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
需要安装: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
#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安装网卡新驱动一步(内核自带的较旧):
解压缩
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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。