我正在使用 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
这你可能会感兴趣。