我是 SystemImager 映像部署软件开发人员。我正在尝试支持外部磁盘驱动程序,但遇到了一个愚蠢的问题。
当我运行预安装脚本时(udev 已经解决),我通过网络获取驱动程序(例如,支持 RHEL 8 上旧硬件的特定 megaraid_sas.ko)
当驱动程序加载时,它将磁盘识别为 /dev/sde 安装工作正常(EFI 系统),重建 initramfs 以包含驱动程序。 grub2-mkconfig 生成一个带有 root=(hd4,gpt2) 的配置文件 efibootmgr 创建正确的条目(它使用 UUID)
不幸的是,重新引导 grub 时无法找到内核(hd4,而 BIOS 看到 hd0)=> 第一个问题。当我解决这个问题时,=>第二个问题:内核加载 megaraid_sas.ko (因为它在 intraants 文件中)并且这个 megaraid 磁盘被视为 /dev/sda !如果我尝试从紧急模式继续,手动安装 /sysroot,lvm 无法尝试找到 /dev/sde...
有没有办法: -> 在安装时告诉 UDEV 不要使用 /dev/sda 直到我说可以? (最好的解决方案,因为它还可以解决 grub 和 lvm 问题)或者在启动时,有没有办法告诉内核 megaraid_sas 应该使用 /dev/sde?
我尝试查看 anaconda dracut 模块,但无法理解重启后如何处理 OEMDRV。 (他们在开发人员检测到磁盘设备后很久就从网络下载驱动程序)。
任何想法?