在 SuSE 安装 initrd 中为 PXE 加载多路径

在 SuSE 安装 initrd 中为 PXE 加载多路径

我正在使用 SLES11-SP1 重新安装集群节点。节点在 SAN 上启动,安装后将使用官方 RDAC 驱动程序。但在安装期间(使用 PXE 从网络启动),没有多路径驱动程序,因此某些活动(如搜索磁盘和分区)非常慢。

我想修改 SuSE 提供的 network-install initrd,以便在安装过程中使用 dm-multipath。使用 dm-multipaht 进行多路径工作,并且我有一个 multipath.conf 文件。我可以将它们添加到 initrd 中。但我不知道如何在安装过程中自动加载模块并启动 multipathd 守护进程。有一个名为“init”的程序,它是 SuSE 安装程序。

在将控制权移交给名为“init”的安装程序之前,如何启动“modprobe dm-multipathd”和“multipathd”?

答案1

这有点猜测,但我最近修改了 Ubuntu 10.04 安装程序的 initrd,以添加新版本的 Intel e1000e 驱动程序。
如果您不能做类似的事情(就修改 initrd 而言)来为 SLES 安装程序添加多路径支持,我会感到非常惊讶。

完整说明/演练如下这里,但基本上可以归结为使用

zcat initrd.gz | (while true; do cpio -i -d -H newc --no-absolute-filenames || exit; done)

解压 initrd,然后修改它,然后重新压缩它

find . | cpio -H newc -o > ../initrd.cpio
cd ..
gzip initrd.cpio

我想,值得一试。

理论上,一旦模块位于 initrd 中,您就应该能够指示内核将其作为 GRUB 中的内核参数加载。GRUB 可以使用 module 指令将模块传递给内核,如下所示:

module /boot/module_to_load

你可能会感兴趣。

相关内容