定制安装光盘在RAID卡上安装LInux

简介:

目前方案:

方案一:直接在启动安装程序时加载官方提 供驱动,已失败。
linux dd,指定驱动的位置和名称失败;指 定驱动盘失败。
linux text,切换到2号控制台,挂载U盘, 复制驱动目录到/tmp/hptdd下,执行step1, 失败。
 
结论:官方驱动程序不适应相应的内核版本。最不解的是5U5版本的驱动居然在CENT5.5的系统中都不能支持,就别说Elastix了。
===================================== ========================
 
方案二:编译内核并替换掉原有光盘中的内核文件。然后生成新的initrd.img文件。
1、内核源码的选择问题
 
标准版本的内核源码编译后用在光盘安装应 该是没问题。但是为了能使用这份源码编译 生成rr272x_1x.ko文件,我还是选择了使用与光盘中内核版本相同的源码,下载地址如下:
http://vault.centos.org/5.6/centosplus/SRPMS/kernel-2.6.18-238.12.1.el5.centos.plus.src.rpm
 
2、下载,并解压驱动源码
 
注意由于源码是.src.rpm文件,所以步骤如下:
#rpm -ivh kernel-2.6.18-238.12.1.el5.centos.plus.src.rpm "安装源码RPM
#rpmbuild -bp /usr/src/redhat/SPECS/kernel-2.6.spec "生成源码文件
 
3、先编译出.ko(驱动模块文件)备用
 
在以下位置下载相应驱动源文件http://www.highpoint-tech.cn/China_new/product_support_sas6c.htm
# yum install ncurses-devel   "(此步要求您的Linux工作站目前已联网)准备编译环境,如果没有gcc、ncurse类推处理。
# tar xzvf rr272<tab>       "解压驱动源码包,注意是名为rr…….src.……这样的驱动包。
# cd rr272x-linux-src-v1.1<tab>/product/rr272x/linux/ "进入驱动安装目录
# make patchkernel KERNELDIR=<内核源文件目录> KERNEL_VER=2.6 "把驱动补丁嵌入内核,本例源文件目录为/usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.x86_64
#cd 内核源码路径
#make SUBDIRS=驱动源码目录 "编译出驱动模块文件rr272x_1x.ko,此文件非常重要。
 
4、编译内核,把rr272x_1x的驱动直接写入内核文件,而不是以模块方式存在(保险起见)
 
#cd /usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.x86_64 "进入 源码目录
#cp /boot/config* .config "为避免编译失败,复制系统原有的内核配置文件。
#make menuconfig "开始编译
我选择了以下项目:
--kernel hack里所有项目都拿掉不要(重要!)
--device driver下scsi device、scsi disk和low level项目下的"HighPoint RocketRAID 272x support" 全部加载到内核中
--low level下的"bus logic"加载到内核中(只有虚拟机vmware需要此驱动)
--iptables防火墙的一些相关选项,这个必须根据个人经验,与本案例无关
--其它项目如NTFS支持、不完整源码、源码校验等常用项目在本案例中不是很紧要,新手建议尽量少的修改选项。如果需要支持或移除某些功能可以自行实验(需要反复编译验证选项是否正确,有些项目选择会导致编译失败,此乃天命,君勿自扰)
 
如果编译失败或出现错误,就重新make menuconfig,建议不要按错误提示去修改include文件(会导致编译模块失败)。
#make modules "编译内核所需的模块文件
#make modules_install "把模块放到应该去的地方
#make install "安装新内核到系统中(本案例中,此步无意义)
 
5、提取安装光盘所需的内核文件,然后生成光盘所需的initrd.img文件。
 
我们需要的内核文件是/boot/vmlinuz-2.6.18-prep    把它提取到某个目录。
下面生成initrd.img文件:
#mkdir /tmp/initrd "创建新镜像文件目录
#mkdir /tmp/initcd "创建光盘中原有镜像文件的解压目录
插入原安装光盘
#mount /dev/cdrom /mnt/cdrom "挂光盘
#cd /tmp/initcd
#gzip -dc /mnt/cdrom/isolinux/initrd.img|cpio -dvi "解压原光盘中的镜像文件
#cd modules   "进入模块目录
#gzip -dc modules.cgz|cpio -dvi    "解压模块文件
#cd 2.6.18-prep/x86_64    "进入模块所在目录
#find .>cp.sh   "把安装光盘的initrd.img中所需要的所有模块文件名列出并写入cp.sh这个文件,此步用于准备脚本。
#rm -rf *     "删除原有的所有模块文件,方便观察效果
#vim cp.sh      "写脚本
利用vim的查找替换功能(如果不会可以复制到windows中用wordpad解决),把所有的行改为以下的样子:
原先的行是./crc16.ko
改为find /lib/modules/2.6.18-prep/ -name "crc16.ko" -exec cp {} . \;
这句的意思是在我们自己编译的模块中找到安装光盘所需要的,然后复制到我现在这里。
#chmod 700 cp.sh "给我们的脚本加执行权限
#./cp.sh      "执行我们的脚本,如果顺利的话,应该会把刚才删除的文件都 找回来 ,但已经是我们自己编译的模块文件了。
#rm -rf cp.sh   "过河拆桥
#cd ../..     "回到模块目录
#find 2.6*|cpio -o -H newc|gzip -9>modules.cgz "生成新的modules.cgz文件
#rm -rf 2.6*    "过河拆桥
#cd ..        "回到镜像文件解压的根目录
#find .|cpio -o -H newc|gzip -9>initrd.img     "生成新的镜像文件
 
6、用ultraISO等光盘镜像工具打开原安装光盘
 
把前步的 vmlinuz-2.6.18-prep文件放到光盘isolinux目录下,改名为vmlinuz,替换原文件。
把前步的initrd.img文件放到光盘isolinux目录下,替换原文件。
 
7、为了让操作系统在将来安装完成后仍然能识别rr272x的驱动,进行光盘的后续工作:
 
编辑光盘根目录下的ks_default.cfg文件,找到reboot --eject这行,在前面加"#"注释掉。
在光盘中创建AI目录(我的意思是After Install,不是人工智能哦)
#mkdir /tmp/new    "随便建个目录
#cp /boot/initrd-2.6.18-238.12.1.el5.img . "把现在用的镜像文件复制过来
#gzip -dc initrd-2.6.18-238.12.1.el5.img|cpio -ivd    "解压
#rm -rf initrd-2.6.18-238.12.1.el5.img "过河拆桥
#把前面提取的rr272x_1x.ko文件放到lib目录下
#vim init "编辑初始化文件,加入以下内容
echo "Loading rr272x_1x.ko module"
insmod Loading rr272x_1x.ko module
#find .|cpio -o -H newc|gzip -9>../initrd-2.6.18-238.12.1.el5.img     "生成新的镜像文件
把刚才生成的initrd-2.6.18-238.12.1.el5.img放到光盘的AI目录。
 
8、刻盘,用此盘安装系统后,千万不要马上重启。alt+f2进入2号控制台。
把我们自己生成的initrd-2.6.18-238.12.1.el5.img放到/boot下替换原文件。
 
至此,方案二完成。
 
=====================================
方案三:手工编译制作driver disk以适应 内核版本,并回到方案一。
1、生成驱动源码,参见方案二。
2、生成.ko文件
进入内核源码目录
make SUBDIRS=驱动源码目录
在驱动源码目录中找到.ko文件,提取到某个目录比如/tmp/myimg
3、cd /tmp/myimg
--写文件modules.dep,内容为:
rr272x_1x: scsi_mod
--写文件rhdd,内容为:
rr272x_1x-v1 driver disk for Elastix (Generated By bob)
--写文件modinfo,内容为:
Version 0
rr272x_1x
   scsi
   "RocketRAID 271x/272x SAS Controller"
--写文件pcitable,内容为:
0x1103 0x02720 "rr272x_1x" "HighPoint|RocketRAID 272x_1x SAS Controller"
0x1103 0x02721 "rr272x_1x" "HighPoint|RocketRAID 272x_1x SAS Controller"
0x1103 0x02722 "rr272x_1x" "HighPoint|RocketRAID 272x_1x SAS Controller"
0x1103 0x02710 "rr272x_1x" "HighPoint|RocketRAID 272x_1x SAS Controller"
0x1103 0x02711 "rr272x_1x" "HighPoint|RocketRAID 272x_1x SAS Controller"
 
4、生成cgz文件(加上前步所编辑的共五大文件)
#mkdir -r 2.6.18-238.12.1.el5/x86_64 "创建规定模式的目录名,不然可能找不到
#cp 我们的.ko文件 2.6.18-238.12.1.el5/x86_64 "把模块文件复制过来
#find 2.6<tab> |cpio -H crc -o|gzip - 9>modules.cgz
#rm -rf 2.6*    "过河拆桥
#cd ..
#find .|cpio -H crc -o|gzip - 9>bob.img "生成驱动盘镜像文件
把这个文件放到U盘就行。
 
5、安装时用标准的安装光盘启动系统,在出现安装方式选择界面前一定要插入U盘。
输入linux dd,选择U盘,找到bob.img即可。


本文转自 霜寒未试 51CTO博客,原文链接:http://blog.51cto.com/51bbs/769243,如需转载请自行联系原作者
相关文章
|
2天前
|
Linux Python
Linux 安装python3.7.6
本教程介绍在Linux系统上安装Python 3.7.6的步骤。首先使用`yum`安装依赖环境,包括zlib、openssl等开发库。接着通过`wget`下载Python 3.7.6源码包并解压。创建目标文件夹`/usr/local/python3`后,进入解压目录执行配置、编译和安装命令。最后设置软链接,使`python3`和`pip3`命令生效。
|
4天前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
57 20
|
5天前
|
Unix Linux 编译器
UNIX/Linux 上的安装
UNIX/Linux 上的安装。
21 2
|
1月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
58 4
|
1月前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
46 5
|
1月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
70 2
|
1月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
44 3
|
1月前
|
存储 缓存 Linux
【Linux】另一种基于rpm安装yum的方式
通过本文的方法,您可以在离线环境中使用RPM包安装YUM并进行必要的配置。这种方法适用于无法直接访问互联网的服务器或需要严格控制软件源的环境。通过配置本地YUM仓库,确保了软件包的安装和更新可以顺利进行。希望本文能够为您在特定环境中部署YUM提供实用的指导。
164 0
|
1月前
|
关系型数据库 MySQL Linux
Linux-安装Mariadb
本文介绍了在 Alibaba Cloud Linux 系统上安装和配置 MariaDB 10.5 的步骤。包括下载安装、初始化数据库、启动服务、处理启动失败的常见问题(如权限问题),以及如何连接数据库、设置密码和允许外部连接。通过这些步骤,您可以顺利完成 MariaDB 的安装和基本配置。
58 0
|
2月前
|
Linux 网络安全 虚拟化
适用于Linux的Windows子系统(WSL1)的安装与使用记录
并放到启动文件夹,就可以开机自动启动了。
78 0
下一篇
DataWorks