wxin 发表于 2018-5-7 12:55:43

在装有raid卡的服务器上安装Ubuntu

  1、开机时进入Raid Bios,选择创建Raid,这个大家随意,按需自选。
  2、然后放入ubuntu系统盘,步骤与一般安装无异,直到识别硬盘时会发现无法识别硬盘
  3、用跟你需要装的系统相同内核的系统,重新编译下rockraid的驱动程序,源码可以去官网下载,貌似最新的是v1.3
  4、编译过程如下
  首先解压该文件
  然后依次修改以下文件(“-”为去掉该行,“+”为加上该行)
  修改 inc/linux/Makefile.def
  -KERNEL_VER := 2.$(shell expr `grep LINUX_VERSION_CODE $(KERNELDIR)/include/linux/version.h | cut -d\-f3` / 256 % 256)
+KERNEL_VER := $(shell uname -r | cut -f1-2 -d.)
  +ifneq ($(KERNEL_VER), 3.0)
ifneq ($(KERNEL_VER), 2.6)
ifneq ($(KERNEL_VER), 2.4)
-$(error Only kernel 2.4/2.6 is supported but you use $(KERNEL_VER))
+$(error Only kernel 2.4/2.6/3.0 is supported but you use $(KERNEL_VER))
endif
endif
+endif
  -ifeq ($(KERNEL_VER), 2.6)
+ifeq ($(KERNEL_VER), $(filter $(KERNEL_VER),3.0 2.6))
  修改osm_linux.h
  -#ifndef AUTOCONF_INCLUDED
-#include <linux/config.h>
-#endif
  修改os_linux.c
  -blkdev_get(bdev, FMODE_READ)
+blkdev_get(bdev, FMODE_READ, NULL)
  修改osm_linux.c
  -static int hpt_queuecommand (Scsi_Cmnd * SCpnt, void (*done) (Scsi_Cmnd *))
+static int hpt_queuecommand_lck (Scsi_Cmnd * SCpnt, void (*done) (Scsi_Cmnd *))
  同样,在osm_linux.c中,在static int hpt_reset (Scsi_Cmnd *SCpnt)之前,添加以下

  +#ifdef DEF_SCSI_QCMD
+DEF_SCSI_QCMD(hpt_queuecommand)
+#else
+#define hpt_queuecommand hpt_queuecommand_lck
+#endif
static int hpt_reset (Scsi_Cmnd *SCpnt)
{
  修改install.sh
  case ${KERNEL_VER} in
      2.4 )
      OBJ=o
      MODVER=`modinfo -f%{kernel_version} ${PWD}/${TARGETNAME}.${OBJ}`
      ;;
      2.6 )
      OBJ=ko
      MODVER=`modinfo -F vermagic ${PWD}/${TARGETNAME}.${OBJ} | cut -d' ' -f1`
      ;;
+       3.0 )
+       OBJ=ko
+       MODVER=`modinfo -F vermagic ${PWD}/${TARGETNAME}.${OBJ} | cut -d' ' -f1`
+       ;;
esac
  文件修改完成
  接下来就可以编译驱动
  进入products,执行make命令,执行完毕后会有条警告命令,不用理会,将制作出来的驱动放入u盘,链接到要安装系统服务器上,放进安装光盘,执行安装,直到扫描硬盘那步,你会发现系统只识别了u盘,没有硬盘,不要慌,选择返回,然后选择shell命令行模式,命令如下
  首先查看你的u盘,挂载它(例如u盘的盘符为/dev/sda1)
  mount /dev/sda1 /mnt
  找到你放进去的驱动,执行以下命令
  insmod 驱动名称
  如果没有任何提示,说明成功导入驱动
  输入exit推出命令行
  重新选择扫描硬盘
  这次发现硬盘出现了,按照步骤安装完系统(网上有其他方法说这步需要不重启,而是选择将驱动导入到initrd.img中,不过我怎么试都没成功,以下是我做的方法,仅供参考),直接重启电脑,进入安装模式后选择修复模式,按照以上步骤让系统识别硬盘,返回后,选择修复模式,选择“/”分区启动命令行,如果你的/boot或其他盘符没有在/分区上,那么请挂载他们。拷贝/boot/initrd.img-版本号,到你的u盘,放到其他电脑上,解压他(步骤参考此处),将驱动拷贝进/lib/你的版本号/kernel/driver/scsi/中,再次压缩(步骤参考以上),将此文件替换服务器中的文件,重启服务器,ok,完成。
  注:驱动有两个不同的版本,最后压缩进initrd的应该是server版本,请找对应的机器进行编译。
  欢迎大家指出错误!
页: [1]
查看完整版本: 在装有raid卡的服务器上安装Ubuntu