引言
- centos7 已经停止维护
- 新服务器使用硬件 raid/network 可能不包含驱动
- 为可以正常 PXE 安装,则需要更新 pxe 所需驱动
现象
- 浪潮服务器 PXE 安装 centos7 时现象
- 明显无法找到硬盘, 可以理解为没有 raid 驱动
raid 信息
更新驱动方法
- 下载了驱动之后解压
# unzip /tmp/raid_driver.zip
Archive: /tmp/raid_driver.zip
inflating: mrlinuxdrv_rel/megaraid_sas_components.tgz
- 重新编译
# cd mrlinuxdrv_rel/
# ls
megaraid_sas_components.tgz
# tar xf megaraid_sas_components.tgz
# cd generic_srpm/
# rpmbuild --rebuild megaraid_sas-07.732.03.00-1.src.rpm
...
...
Checking for unpackaged file(s): /usr/lib/rpm/check-files /root/rpmbuild/BUILDROOT/megaraid_sas-07.732.03.00-1.x86_64
Wrote: /root/rpmbuild/RPMS/x86_64/megaraid_sas-07.732.03.00-1.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/megaraid_sas-debuginfo-07.732.03.00-1.x86_64.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.aaZieD
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd megaraid_sas-07.732.03.00
+ /usr/bin/rm -rf /root/rpmbuild/BUILDROOT/megaraid_sas-07.732.03.00-1.x86_64
+ exit 0
Executing(--clean): /bin/sh -e /var/tmp/rpm-tmp.lnjVnV
+ umask 022
+ cd /root/rpmbuild/BUILD
+ rm -rf megaraid_sas-07.732.03.00
+ exit 0
-
软件默认位置 /root/rpmbuild/RPMS/x86_64/megaraid_sas-07.732.03.00-1.x86_64.rpm
-
安装驱动测试
# modprobe megaraid_sas
# modinfo megaraid_sas
filename: /lib/modules/3.10.0-1160.118.1.el7.x86_64/weak-updates/megaraid_sas/megaraid_sas.ko.xz
description: Broadcom MegaRAID SAS Driver
author: megaraidlinux.pdl@broadcom.com
version: 07.732.03.00
license: GPL
retpoline: Y
rhelversion: 7.9
srcversion: C411389EBB1261D2C0A481C
alias: pci:v00001000d000010E7sv*sd*bc*sc*i*
alias: pci:v00001000d000010E4sv*sd*bc*sc*i*
alias: pci:v00001000d000010E3sv*sd*bc*sc*i*
alias: pci:v00001000d000010E0sv*sd*bc*sc*i*
alias: pci:v00001000d000010E6sv*sd*bc*sc*i*
alias: pci:v00001000d000010E5sv*sd*bc*sc*i*
alias: pci:v00001000d000010E2sv*sd*bc*sc*i*
alias: pci:v00001000d000010E1sv*sd*bc*sc*i*
alias: pci:v00001000d0000001Csv*sd*bc*sc*i*
alias: pci:v00001000d0000001Bsv*sd*bc*sc*i*
alias: pci:v00001000d00000017sv*sd*bc*sc*i*
alias: pci:v00001000d00000016sv*sd*bc*sc*i*
alias: pci:v00001000d00000015sv*sd*bc*sc*i*
alias: pci:v00001000d00000014sv*sd*bc*sc*i*
alias: pci:v00001000d00000053sv*sd*bc*sc*i*
alias: pci:v00001000d00000052sv*sd*bc*sc*i*
alias: pci:v00001000d000000CFsv*sd*bc*sc*i*
alias: pci:v00001000d000000CEsv*sd*bc*sc*i*
alias: pci:v00001000d0000005Fsv*sd*bc*sc*i*
alias: pci:v00001000d0000005Dsv*sd*bc*sc*i*
alias: pci:v00001000d0000002Fsv*sd*bc*sc*i*
alias: pci:v00001000d0000005Bsv*sd*bc*sc*i*
alias: pci:v00001028d00000015sv*sd*bc*sc*i*
alias: pci:v00001000d00000413sv*sd*bc*sc*i*
alias: pci:v00001000d00000071sv*sd*bc*sc*i*
alias: pci:v00001000d00000073sv*sd*bc*sc*i*
alias: pci:v00001000d00000079sv*sd*bc*sc*i*
alias: pci:v00001000d00000078sv*sd*bc*sc*i*
alias: pci:v00001000d0000007Csv*sd*bc*sc*i*
alias: pci:v00001000d00000060sv*sd*bc*sc*i*
alias: pci:v00001000d00000411sv*sd*bc*sc*i*
depends:
vermagic: 3.10.0-1160.118.1.el7.x86_64 SMP mod_unload modversions
parm: lb_pending_cmds:Change raid-1 load balancing outstanding threshold. Valid Values are 1-128. Default: 4 (int)
parm: max_sectors:Maximum number of sectors per IO command (int)
parm: msix_disable:Disable MSI-X interrupt handling. Default: 0 (int)
parm: msix_vectors:MSI-X max vector count. Default: Set by FW (int)
parm: allow_vf_ioctls:Allow ioctls in SR-IOV VF mode. Default: 0 (int)
parm: throttlequeuedepth:Adapter queue depth when throttled due to I/O timeout. Default: 16 (int)
parm: resetwaittime:Wait time in (1-180s) after I/O timeout before resetting adapter. Default: 180s (int)
parm: smp_affinity_enable:SMP affinity feature enable/disable Default: enable(1) (int)
parm: rdpq_enable:Allocate reply queue in chunks for large queue depth enable/disable Default: enable(1) (int)
parm: dual_qdepth_disable:Disable dual queue depth feature. Default: 0 (int)
parm: scmd_timeout:scsi command timeout (10-90s), default 90s. See megasas_reset_timer. (int)
parm: crashdump_enable:Firmware Crash dump feature enable/disbale Default: enable(1) (int)
parm: perf_mode:Performance mode (only for Aero adapters), options:
0 - balanced: High iops and low latency queues are allocated &
interrupt coalescing is enabled only on high iops queues
1 - iops: High iops queues are not allocated &
interrupt coalescing is enabled on all queues
2 - latency: High iops queues are not allocated &
interrupt coalescing is disabled on all queues
default mode is 'balanced' (int)
parm: event_log_level:Asynchronous event logging level- range is: -2(CLASS_DEBUG) to 4(CLASS_DEAD), Default: 2(CLASS_CRITICAL) (int)
parm: disable_ext_io:Disable 1M IO support Default: 0(1M IO enabled) (int)
parm: enable_sdev_max_qd:Enable sdev max qd as can_queue. Default: 0 (int)
parm: poll_queues:Not supported for this kernel. (int)
加载内核驱动
- 参考下面把模块载入 initramfs.img 中
# ls /boot/initramfs-$(uname -r).img $(uname -r)
/boot/initramfs-3.10.0-1160.118.1.el7.x86_64.img
# dracut -f --add-drivers megaraid_sas /boot/initramfs-$(uname -r).img $(uname -r)
- 验证驱动是否已经载入
# lsinitrd /boot/initramfs-`uname -r`.img | grep megaraid_sas
Arguments: -f --add-drivers 'megaraid_sas'
drwxr-xr-x 2 root root 0 May 15 16:16 usr/lib/modules/3.10.0-1160.118.1.el7.x86_64/weak-updates/megaraid_sas
-r--r--r-- 1 root root 500072 May 15 16:13 usr/lib/modules/3.10.0-1160.118.1.el7.x86_64/weak-updates/megaraid_sas/megaraid_sas.ko.xz
更新 pxe 文件
/var/lib/tftpboot/images/CentOS7.9-x86_64/
initrd.img <- 备份该文件
用上述文件替换该文件,并重命名为 initrd.img
参考替换后 pxe 现象
- 引导成功