驱动说明

  • IDE    :IDE和SATA是最常用的两种磁盘格式,基本每个系统上都会有;
  • SATA:同IDE;
  • SCSI :系统上一般缺少此驱动,需要手动安装;

Linux下的名称

  • IDE硬盘:hd[a,b,c,...]
  • SATA/SCSI/USB硬盘:sd[a,b,c,...]  ==>都是使用SCSI模块来驱动;
  • U盘:sd[a,b,c,...]
  • 当前CD ROM/DVD ROM:/dev/cdrom

速度

  • IDE:理论max133MB;
  • SATA:1代,max150MB,2代max300MB;

安装SCSI 驱动

主要包括两部分:
  1. 引导小系统isolinux安装scsi驱动;
  2. 大系统安装scsi驱动;

引导小系统安装SCSI驱动

主要工作:添加virtio_scsi.kosym53c8xx.ko,然后insmod这两个模块;

  • 拷贝virtio_scsi.ko到目录:/..../isoBuilder/init/lib/modules/2.6.18-194.el5/kernel/drivers/virtio

  • 拷贝sym53c8xx.ko到目录:/..../isoBuilder/init/lib/modules/2.6.18-194.el5/kernel/drivers/scsi

  • 修改insmod.sh,目录:/.../isoBuilder/init/etc/init.d
添加:
  1. #!/bin/sh
  2.  
  3. insmod_self()
  4. {
  5.     modprobe ${1}
  6. }
  7. ....
  8. insmod_self sym53c8xx
  9. insmod_self virtio
  10. insmod_self virtio_balloon
  11. insmod_self virtio_ring
  12. insmod_self virtio_pci
  13. insmod_self virtio_scsi

大系统安装SCSI驱动

在此之前,先介绍一些概念,在说具体操作。

概念介绍

下图是Centos5.x 系统的kernel目录下的文件(这里的boot目录实际是正常系统的kernel目录):

文件说明

  • initrd-2.xxx.el5.img :虚拟文件系统;
  • vmlinuz-2.6xx.el5    :linux内核文件;

两难困境

  1. 在启动过程中,Linux内核文件根本不认识SATA磁盘,所以需要加载SATA磁盘的驱动,否则根本就无法挂载根目录
  2. 但是SATA的驱动程序在/lib/modules内,你根本无法挂载根目录,又怎么能读取到 /lib/modules内的驱动程序呢

两难困境的解决

为解决此问题,需要使用虚拟文件系统(initialRAM Disk),一般使用文件名:/boot/initrd
它能够bootloader来加载到内存,然后这个文件会被解压并且在内存当中仿真成一个根目录,且此仿真在内存当中的文件系统能够提供一个可执行程序,通过该程序来加载启动过程中所需要的内核模块,通常这些模块就是USB、RAID、LVM、SCSI等文件系统与磁盘驱动的接口。
下面将简单的介绍虚拟文件系统文件initrd

initrd介绍

initrd内所包含的模块大多与启动过程相关,而主要以文件系统和硬盘模块(如:USB、SATA、SCSI等)为主;
一般来说,需要initrd的时刻包括:
  1. 根目录所在磁盘为SATA、USB或SCSI等连接接口;
  2. 根目录所在文件系统为LVM、RAID等特殊格式;
  3. 根目录所在文件系统为非传统Linux“认识”的文件系统时;
  4. 其他必须在内核模块加载时提供的模块;
因为我们需要支持IDE、SATA、SCSI磁盘格式,所以需要使用initrd,而SCSI内核驱动又需要手动去安装,因此我们需要将SCSI驱动添加到initrd目录结构中并重新生成initrd的image文件;

主要工作步骤

  1. 在虚拟文件系统添加SCSI驱动,然后重新编译为initrd文件;
  2. 替换initrd文件;
虚拟文件系统initrd-xxx主要的改变:添加virtio_scsi.kosym53c8xx.ko,然后insmod这两个模块;
替换initrd-2.6.18-194.el5.img(虚拟文件系统),目录:/.../package/install/hsmos/kernel

说明:
新的initrd-2.6.18-194.el5.img文件中有scsi的驱动,
  1. [root@localhost initrd]# mv initrd-2.6.18-194.el5.img initrd-2.6.18-194.el5.gz     //gzip解压需要修改后缀名
  2. [root@localhost initrd]# gunzip initrd-2.6.18-194.el5.gz     //解压,得到initrd-2.6.18-194.el5
  3. [root@localhost initrd]# file initrd-2.6.18-194.el5
  4. initrd-2.6.18-194.el5: ASCII cpio archive (SVR4 with no CRC)
  5. [root@localhost initrd]# cpio -idmv < initrd-2.6.18-194.el5
  6. [root@localhost initrd]# ls lib
  7. .........
  8. sym53c8xx.ko
  9.  virtio_balloon.ko
  10.  virtio.ko
  11.  virtio_pci.ko
  12.  virtio_ring.ko
  13.  virtio_scsi.ko



  

支持IDE、SATA、SCSI脚本

主要思路:

  1. 首次安装好系统后,重写grub.cfg,修改为LABEL方式;
  2. 修改rc.local,在下次启动时,将grub.cfg修改为以/dev/[s,h]dx方式启动;
  3. 关机;
  4. 导出ova;

具体流程:

  1. 选择好一种磁盘格式,如:SATA,安装好系统;
  2. 执行 支持 磁盘格式的脚本:doforvm(主要是修改了grub.cfg文件和fstab文件,最后会关机)
  3. 导出ova;
  4. 将导出的ova安装在其他磁盘中,如:IDE、SCSI中;
  5. 新磁盘下的系统重启后执行的rc.local会重新将grub.cfg文件和fstab文件修改回去;
说明:
doforvm脚本:主要是修改了grub.cfg文件和fstab文件;









附件列表

【虚拟化】支持IDE/SATA/SCSI的更多相关文章

  1. IDE SATA SCSI iSCSI等存储硬盘对比与分析

    原文地址:http://blog.csdn.net/trochiluses/article/details/21229283 IDE是并口硬盘,(5400-7200转): SATA是串口硬盘,(720 ...

  2. IDE硬盘 SCSI硬盘 SATA硬盘

    IDE一般是有扁平电缆连接的,一个扁平电缆可以连接2个IDE硬盘,而一个计算机一般提供2个扁平电缆,所以一般允许4块IDE硬盘.IDE经过多年的发展,成熟,廉价,稳定.一般老式的电脑中装的都是这种硬盘 ...

  3. ATA/SATA/SCSI/SAS/FC总线简介

    ATA/SATA/SCSI/SAS/FC 都是应用于存储领域的总线,在当今的存储系统中,普遍应用的硬盘接口主要有 SATA . SCSI . SAS 和FC , ATA 比较古老,在一些老的低端存储系 ...

  4. 解决在VMware中安装64位系统时“此主机具有虚拟化支持能力的,但虚拟化技术被禁用”的方法

    您已经配置此虚拟机使用64位客户操作系统.然而,64位操作系统不可用.此主机具有虚拟化支持能力的,但虚拟化技术被禁用.这通常是因为虚拟化技术已经在BIOS /固件设置或禁用或主机没有权限改变此设置. ...

  5. Docker核心实现技术(命名空间&控制组&联合文件系统&Linux网络虚拟化支持)

    作为一种容器虚拟化技术,Docker深度应用了操作系统的多项底层支持技术. 早期版本的Docker是基于已经成熟的Linux Container(LXC)技术实现的.自Docker 0.9版本起,Do ...

  6. 权威公布:彻底搞清楚哪些笔记本和台式机主板能够支持42mm SATA M.2 NGFF(2242)接口的固态硬盘!!!

    在京东,天猫上搜寻半天.致电联想客服以及各个固态盘的店小二.都搞不清楚兼容性问题.并且联想客服的回答明显错误,官网描写叙述也错误,客服project师也含糊不清说:要拆机试一试才知道是否兼容. 我就不 ...

  7. 主流磁盘接口比较(SATA/SCSI/SAS/FC)[转]

    数据越来越多,用户对存储容量的要求是越来越高.作为数据存储最基本的介质——硬盘,其种类也越来越多.面对市场上纷繁复杂的硬盘,用户又该如何选择呢?本文就对SATA.FC.SAS三种硬盘进行了比较,希望能 ...

  8. Linux HDD information (SATA/SCSI/SAS/SSD)

    举例一: [reistlin@reistlin.com ~]$ cat /proc/scsi/scsi | grep Model Vendor: ATA Model: OCZ-VERTEX2 3.5 ...

  9. BIOS中未启用虚拟化支持系列~~例如:因此无法安装Hyper-V

    异常处理汇总-服务器系列:http://www.cnblogs.com/dunitian/p/4522983.html 一般都是启动一下CUP虚拟化就可以了 比如华硕的:

随机推荐

  1. Open vSwitch FAQ (三)

    Quality of Service (QoS) Q: How do I configure Quality of Service (QoS)? A: Suppose that you want to ...

  2. 给linux添加一个回收站

    http://blog.chinaunix.net/uid-26805356-id-3492419.html 都知道linux没有回收站,如果一不小心 rm -rf之后,很难恢复,所以就编写了一个回收 ...

  3. archlinux下查看机器的ip地址

    问题原因 默认archlinux没有安装ifconfig这个在其它发行版中常用的命令,刚开始不知道怎么查看机器的ip. 解决方案 使用archlinux中已经安装的ip命令.在后面跟上addr, ro ...

  4. 一张图让你学会LVM

    导读 随着科技的进步,人们不知不觉的就进入了大数据的时代,数据的不断增加我们发现我们的磁盘越来越不够用了,接下来就是令人头疼的事情--加硬盘,数据的备份与还原.LVM就是Linux下专门针对我们数据的 ...

  5. linux 中 chmod/chown/cngrp的用法与区别

      1.chgrp(转变文件所属用户组) chgrp 用户组 文件名 .若是整个目次下的都改,则加-R参数用于递归. 如:chgrp -R user smb.conf 2.chown(转变文件拥有者) ...

  6. 软件工程课程作业(一)—20道随机四则运算题(C++)

    一.编程思想: 1.定义所需要变量2.设置数组,存储运算符,3.通过随机函数random(0,100)找出运算数,random(0,4)找出运算符4.通过输出显示运算式. 二.源代码: //2016 ...

  7. 发布常见问题(C#)

    1.Sys.WebForms.PageRequestManagerServerErrorException: 在服务器上处理请求时出现未知错误.服务器返回的状态码为: 500 可能的原因: asp.n ...

  8. 使用Spring + Jedis集成Redis

    转自:http://my.oschina.net/u/866380/blog/521658 摘要 使用Spring和Jedis完成分片Redis的集成 一.集成环境 Tomcat7 JDK1.7 Je ...

  9. MySQL常用配置

    查看MySQL的参数信息 mysql> show variables; 查看key_buffer_size的使用情况 mysql> show status like 'key_read%' ...

  10. hdu1025 dp(最长上升子序列LIS)

    题意:有一些穷国和一些富国分别排在两条直线上,每个穷国和一个富国之间可以建道路,但是路不能交叉,给出每个穷国和富国的联系,求最多能建多少条路 我一开始在想有点像二分图匹配orz,很快就发现,当我把穷国 ...