目前RAID卡型号越来越多,有些厂商新出的RAID卡驱动并未集成到银河服务器操作系统正式发行版本的ISO里面,就导致在安装银河麒麟服务器操作系统过程出现无法识别硬盘的情况,解决方法:在ISO的启动界面grub中加入linux dd, 加载服务器厂商提供的RAID卡驱动的iso文件。
如果在银河麒麟服务器ISO中集成新款RAID卡驱动,需要服务器厂商提供RAID卡驱动源码,以便在不同的小版本里面集成。在ISO中,有两处需要个修改,
1是initrd.img这个文件,需要在指定的目录加入RAID卡驱动的ko文件
2 将RAID卡驱动的rpm包,放到ISO的Packages目录,并修改*comple.xml文件,重新打包为ISO文件。
具体步骤:
2.1 以x86CPU 服务器操为例,在VMware虚拟机安装要定制的银河麒麟服务器版本,并将.ISO文件上传至服务器,挂载ISO文件到/mnt目录,再将/mnt目录所有文件复制到/root/下载/tmp/mnt目录。
2.2 复制iso中iso/linux/initrd.img文件到root目录,cp isolinux/initrd.img /root/。通过命令查看initrd.img文件压缩格式,
gzip compressed data, max compression, from Unix, original size modulo 2^32 61819904
将initrd.img文件重命名为initrd.img.gz,再通过gzip -d命令解压,得到initrd.img文件,通过cpio -i -F命令将initrd.img文件解压为文件夹。
2.3编译3SNIC公司提供的RAID卡驱动源代码,得到驱动文件.ko和rpm
通过命令将驱动.ko文件压缩为ko.xz文件,在initrd里的
lib/modules/4.19.90-52.22.v2207.ky10.x86_64/kernel/drivers/scsi下面创建一个sssraid目录,将ko.xz文件复制到此目录。接入来chroot initrd目录,再运行depmod -a命令,解决initrd.img目录内部ko文件之间的依赖关系。
再修改好的目录重新打包为initrd.img文件, 在initrd目录下执行下面的命令
find . |cpio -c -o |xz -9 --format=lzma >../initrd.img
将此initrd.img文件覆盖isolinux/initrd.img
2.4 将银河麒麟服务器操作系统ISO文件上传到服务器,挂载到/mnt目录,在root目录下创建iso目录,将/mnt下所有文件复制到/root/iso目录,将RAID卡驱动的
kmod-3snic-raid_hba-3s5xx-sssraid-1.0.6.6-kylinV10SP3.ky10.x86_64.rpm文件复制到/root/iso/Packages目录
2.5 进入/root/iso目录,
createrepo -g repodata/db50d3034447eae51538ac18f91b62921071e0498dca92cc9c5ae11accc99436-comps-v10-sp3-x86_64.xml .
修改.kylin-post-actions-nochroot文件,如不存在,则手动创建。添加如下内容
if [ ! -f "$ANA_INSTALL_PATH/tmp/i40e-2.21.12-1.ky10.x86_64.rpm" ]; then
cp /run/install/repo/Packages/i40e-2.21.12-1.ky10.x86_64.rpm $ANA_INSTALL_PATH/tmp/i40e-2.21.12-1.ky10.x86_64.rpm
fi
修改.kylin-post-actions文件,如不存在,则手动创建此文件
添加如下内容
rpm -i
/tmp/kmod-3snic-raid_hba-3s5xx-sssraid-1.0.6.6-kylinV10SP3.ky10.x86_64.rpm
2.6 重新制作iso文件
cd /root
mkisofs -v -U -J -R -T -V 'Kylin-Server-10' -input-charset utf-8 -m repoview -m boot.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -joliet-long -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e images/efiboot.img -no-emul-boot -o /root/KylinCustom.iso /root/iso/
3 银河麒麟服务器操作系统iso文件说明
解压完ISO文件,包含以下目录和文件
EFI:包含UEFI引导模式下所需要的文件
extra: 我自己创建的目录,用于存放附加要安装包的rpm包
images
isolinux
LICENSE:最终用户许可文件
manual: 用户手册
Packages:服务器操作系统安装包rpm格式
repodata: rpm包元数据及分组信息等。**-comps-v10-sp4-x86_64.xml文件片断如下
用于服务器在安装时可选择的组及组里面包含的rpm包,xml内容中不包含rpm包的版本信息。
14a8f1d1bcdf8880637afb7da9e2c3ff1526c8342e55f5181ee7e07d3b7fefee-other.xml.gz 文件,包含了rpm包的sha246值,rpm版本、作者、changelog等信息。
TRANS.BL:用mkisofs生成ISO时加上-T参数,即可给所有目录下生成TRANS.TBL文件,TRANS.TBL文件的作用是提供比ISO9660标准约定的基本文件名更加灵活的文件名,然而,ISO9660规范已经用Rock Ridge和Joliet扩展替代TRANS.TBL文件很久了,