1、创建一个临时目录,将光盘中的isolinux/initrd.img文件拷贝到临朝目录中,将initrd.img解压到这个临时目录中。 mkdir /root/initrd cd /mnt/isolinux cp -a initrd.img /root/initrd xz -dc initrd.img | cpio -id 再将initrd.img文件删除 2、上传Linux_MegaCLI-8-07-07.zip文件到/root目录下,解压后,先在本系统安装 unzip Linux_MegaCLI-8-07-07.zip rpm -ivh MegaCli-8.07.07-1.noarch.rpm 使用rpm -lqp命令查看 MegaCli-8.07.07-1.noarch.rpm中包含的文件安装路径 rpm -lqp MegaCli-8.07.07-1.noarch.rpm /opt/MegaRAID/MegaCli/MegaCli /opt/MegaRAID/MegaCli/MegaCli64 /opt/MegaRAID/MegaCli/libstorelibir-2.so.13.05-0 3、在/root/initrd目录中创建opt目录,并将/opt/MegaRAID目录拷贝至/root/initrd/opt目录中 mkdir /root/initrd/opt cp -a /opt/MegaRAID /root/initrd/opt/ 4、将系统的根切换到/root/initrd目录下,执行/opt/MegaRAID/MegaCli/MegaCli64 -h发现报错。 cd /root/initrd chroot $PWD /opt/MegaRAID/MegaCli/MegaCli64 -h /opt/MegaRAID/MegaCli/MegaCli64: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory 退出刚切换的根环境,用ldd命令查看libncurses.so.5动态链接库文件所在目录 exit ldd /opt/MegaRAID/MegaCli/MegaCli64 linux-vdso.so.1 => (0x00007ffebf535000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00000037f0e00000) libncurses.so.5 => /lib64/libncurses.so.5 (0x00000037f2e00000) libdl.so.2 => /lib64/libdl.so.2 (0x00000037f0600000) libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00000037f3a00000) libm.so.6 => /lib64/libm.so.6 (0x00000037f1600000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00000037f2600000) libc.so.6 => /lib64/libc.so.6 (0x00000037f0a00000) /lib64/ld-linux-x86-64.so.2 (0x00000037f0200000) libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00000037f2200000) 经验证缺少/lib64/libncurses.so.5和/usr/lib64/libstdc++.so.6两个库文件。 用ls -l命令查看 ls -l /lib64/libncurses.so.5 lrwxrwxrwx. 1 root root 17 Sep 13 08:34 /lib64/libncurses.so.5 -> libncurses.so.5.7 ls -l /usr/lib64/libstdc++.so.6 lrwxrwxrwx. 1 root root 19 Sep 13 08:34 /usr/lib64/libstdc++.so.6 -> libstdc++.so.6.0.13 将 /lib64/libncurses.so.5、/lib64/libncurses.so.5.7、 /usr/lib64/libstdc++.so.6及/usr/lib64/libstdc++.so.6.0.13文件拷贝到/root/initrd/lib64目录下。 cp -a /lib64/libncurses.so.5 /lib64/libncurses.so.5.7 /root/initrd/lib64/ cp -a /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.0.13 /root/initrd/usr/lib64/ 5、再次将根切换到/root/initrd目录下,将MegaCli64命令验证命令是否能执行成功。 cd /root/initrd chroot $PWD /opt/MegaRAID/MegaCli/MegaCli64 -h 6、将/root/initrd目录重新封装成initrd.img文件 cd /root/initrd find . | cpio -c -o | xz -9 --format=lzma > /root/initrd.img 7、将生成的initrd.img文件替换光盘中的isolinux/initrd.img或pxe装机中的initrd.img文件。 8、重新封装的自动应答光盘或者pxe装机的kickstart文件的%pre阶段添加/opt/MegaRAID/MegaCli/MegaCli64命令配置raid 范例如下: %pre /opt/MegaRAID/MegaCli/MegaCli64 -CfgClr -a0 /opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r1[252:0,252:1] -WB -a0 /opt/MegaRAID/MegaCli/MegaCli64 -AdpBootDrive -set -L0 -a0 /opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r0[10:0] -WB -a0 /opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r0[10:1] -WB -a0 /opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r0[10:2] -WB -a0 /opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r0[10:3] -WB -a0 /opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r0[10:4] -WB -a0 /opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r0[10:5] -WB -a0 /opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r0[10:6] -WB -a0 /opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r0[10:7] -WB -a0 /opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r0[10:8] -WB -a0 /opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r0[10:9] -WB -a0 /opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r0[10:10] -WB -a0 /opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r0[10:11] -WB -a0 #在以上是在浪潮NF5280M4机型中测试成功 #注意:pxe装机时,需要重新封装的是images/pxeboot/initrd.img这个伪文件系统。 #isolinux/目录下的内核和伪文件系统是给光盘安装使用的,images/pxeboot/目录下的内核和伪文件系统是给pxe装机使用的。