• 安装系统时无raid驱动处理办法


    • 场景描述

    安装系统时可以进入安装界面,但是无法识别到硬盘,查看服务器硬件均无异常且从bios或者raid配置界面中能正常看到raid信息及硬盘信息,运行lspci 命令查看到服务器有raid卡,但是未加载驱动。

    • 获取驱动程序模块

    查看raid卡的型号获取设备id,并查询驱动名称。

    #Lspci -knn | grep -i raid -A 5

    例如驱动是megaraid_sas。下载源码后在其他环境的同版本系统中编译好驱动,拿到megaraid_sas.ko 文件。在目标系统中查看驱动信息,例如内核版本是否一致。

    #modinfo megaraid_sas.ko

    #uname -a

    • 加载驱动安装系统

    1、挂载上驱动盘后,切到其他终端手动执行命令加载驱动

    #insmod megaraid_sas.ko

    2、确认驱动是否正确加载,通过dmesg命令能看到驱动加载后显示驱动信息

    #dmesg

    3、查看已经正确识别到硬盘,

    #lsblk或者fdisk -l

    4、切回安装界面继续安装完系统

    • 更新initrd

    1、安装完先不要重启系统,可直接进行更新操作。安装完的系统会挂载在/target目录。在目标系统中新建temp目录并拷贝驱动模块。

    #mkdir -p /target/temp

    #cp megaraid_sas.ko  /target/temp

    2、通过chroot进入目标系统执行更新操作。

    #chroot /target

    3、拷贝驱动到内核驱动相应目录,更新模块信息

    #cp /temp/megaraid_sas.ko  /lib/modules/`uname -r`/kernel/drivers/scsi/megaraid/

    #depmod -a

    4、重新生成initramfs(也可通过执行mkinitrd /boot/initramfs-`uname -r`.img `uname -r`)

    U系系统可执行

    #update-initramfs -u

    R系系统可执行

    #dracut -f

    5、更新完后可通过lsinitrd/lsinitramfs 命令查看生成的文件中是否包含目标驱动。

    • 问题处理

    1、驱动更新已确认完成,但是还是无法启动系统。

    需要直接移走或者删除默认的内核驱动,例如accraid。

    2、执行mkinitrd命令提示文件已存在

    将默认的initramfs文件重命名作为备份,或者加一个-f参数强制覆盖

  • 相关阅读:
    2022-11-27 ARM- 用C语言实现stm32的三盏灯的点亮
    CRM系统中人工智能对销售业务的帮助
    矩阵键盘中断扫描
    测试的核心竞争力是什么?
    System V IPC+消息队列
    CobalStrike(CS)上线隐藏IP和流量
    四十七、Fluent近壁面处理
    Swift 和 Python 两种语言中带关联信息错误(异常)类型的比较
    mysql自动删除过期的binlog
    redis基础
  • 原文地址:https://blog.csdn.net/weixin_38887743/article/details/134494605