在Hyper-V里安装Red Hat Enterprise Linux

在Hyper-V里安装Red Hat Enterprise Linux

本文介绍的是如何在 Hyper-V 虚机上安装 Red Hat Enterprise Linux Server RHEL ),以 X64 RHEL 5.1 版本为例。
 
其实,严格意义上来说,Hyper-V也属于Para-Virtualization(部分虚拟化)的范畴,只不过微软有专门的术语叫做Enlightenment。
 
所谓 Linux Hyper-V 支持,关键是要让Linux成为Enlightened OS,也就是说要理解底层Hypervisor的存在。这需要在 Linux 虚机里启用 xen 的内核支持,并安装对应的 Hypercall 适配器。
 
为什么要安装Hypercall适配器(Adaptor)?原因是Linux里没有Windows中的WinHv组件,无法把应用程序的常规调用转化成Hypervisor能够理解的Hypercall调用。Hypercall适配器是一个很薄的软件层,以便把来自 Linux 内核的基于 xen 的虚拟化函数调用,翻译成 Hyper-V 能够理解的 Hypercall 函数调用。这样 Linux 虚机就可以充分利用 Hyper-V 的高速内存总线 VMBus 所带来的性能极大提升,从而极大地改进性能。
 
而这需要专门的 Linux IC ,并且可能需要重新编译 Linux 内核,就目前来说( 2009 5 月7 日), SUSE 的安装最简单,不需要内核的重新编译。 Red Hat 相对复杂些,需要对内核进行编译,这比较消耗时间。
 
这里补充orpheus兄弟的提问
微软的Hyper-V层目前还没给linux提供直接调用的接口,可以这么理解吧?相对而言,VMware的ESX Server是不是做的更好呢?
 
盆盆的回答如下
微软和主要Linux厂商,包括Novell和Red Hat签署了互操作协议,两者之间可以兼容。而且微软和Citrix之间也有互协作关系,确保Xen和Hyper-V在更深层面的兼容性。所以不用担心Linux在Hyper-V上的表现。还有些Linux发行版本,虽然微软没有提供官方技术支持,但是实际上也可以顺利安装。VMware采用完全不同的架构,其内部架构对上层的虚机来说是不可见的,并不是采用Hyper-V/Xen那样的Para-Virtualization架构。曾经有高手做过比喻:VMware是一个浑身包裹着印度纱丽的美女,只能远远看到其绰约的身姿;而Xen则是穿着三点式的美女,能让您看到更多…当然,也不能完全这样进行区分,其实VMware也有Para-Virtualization的实现,大家都并存多种虚拟化手段,不能简单地说孰优孰劣。
 
本文的实验分为四个步骤,为了防止中间的误操作,推荐每个步骤都用 Hyper-V 的快照功能新建一个快照,以便一旦出错,可以快速回复到先前的状态。对于生产系统,在最后成功以后,请确保删除所有的快照,以便 Linux 虚机工作在最佳状态下。
 
本文本非完全由盆盆所原创,其中大多数的实验步骤和脚本、或者相关命令参考自国外的博文,该博文原链接如下:(如果您要转载,请确保加上这句话)
      http://www.jules.fm/Logbook/files/win2008_linuxic_rc2_rhel.html

一、准备工作

1. 确认Linux系统的版本
 
如果还没有安装,可以查看其安装光盘映像名称,如果是 X64 位,应该是类似如下形式:
rhel-5.1-server-x86_64-dvd
 
如果是 32 位,则应该是类似如下形式:
rhel-5.1-server-i386-dvd
 
如果已经安装,则可以运行以下命令:
uname -a
 
如果结果是“… x86_64 x86_64 x86_64 GNU/Linux ”,则表示是 X64 位版本。
提示
本文中所涉及的所有命令或者语句,均可以直接复制,然后在Hyper-V虚机中单击剪贴板、输入剪贴板文本,即可快捷方便地输入文本内容。
 

2. 订阅在线更新服务

     
必须订阅其 RHN 软件在线更新服务,否则在编译内核时会报错(对于 X64 位来说)。
订阅的方式有两种:
一种是购买 Red Hat 提供的收费服务,其报价可以参考以下网页:
https://www.redhat.com/wapps/store/catalog.html
 
另一种是申请临时服务,这是免费的,可以到以下网站申请(需要事先注册一个账户):
https://www.redhat.com/rhel/details/eval/
 
设置好以后,在 Linux 中单击应用程序、系统工具、软件包更新工具,按照屏幕提示输入所注册的用户名和密码,即可。

3. 下载Linux IC
   对于 Linux 版本,必须安装专门的 IC ,而不能直接在 Hyper-V 虚机里单击操作、插入集成服务安装盘来进行安装。
 
我们可以访问以下网站,以便下载 Linux 版本的 IC ,并解压缩,即可获得 ISO 映像文件。
http://connect.microsoft.com

4. 安装Linux
 
打开 Hyper-V 管理器,新建一个虚机,处理器选择一个( Linux 仅支持一个 CPU )、内存可以是 1GB 。除了默认配置外,请确保添加一块旧版网络适配器,以及 SCSI 虚拟硬盘。添加旧版网络适配器非常重要(必须连接到外部网络,以便可以访问互联网),因为在安装 Linux IC 以前,我们没有办法使用支持 VMBus 的网卡来下载必须的软件更新。
 
在安装 Linux 时,注意请不要安装 Red Hat 自带的 Virtualization 组件。盆盆在测试 RHEL 5.2/5.3 时,导致虚机无法正常引导,尚未确认是否由于安装了其自带的 Virtualization 组件所导致,如果有哪位老大知道,还请不吝赐教。
 
还有一点,请确保安装所有必须的开发工具和组件,盆盆是安装了看上去和开发有关的所有组件 :)
 
安装好以后,在 Hyper-V 虚机里挂载从 connect.microsoft.com 上安装的 Linux IC 光盘映像文件。然后将光盘里的所有文件全部复制到 /opt/linux_ic 目录下。

5.
下载内核源码安装包
     首先运行以下命令,获取当前的内核版本号:
    
rpm -q kernel
盆盆的 RHEL 5.1 版本,其内核版本号为“ kernel-2.6.18-53.el5 ”,所以其对应的内核源码安装包为 kernel-2.6.18-53.el5.src.rpm 。我们可以到以下地址去下载:
ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/SRPMS/kernel-2.6.18-53.el5.src.rpm 红体字部分请用正确的版本号替代
 
下载好以后,也可以复制到 /opt 目录下。
 
然后运行以下命令,以便安装编译内核所需的组件:
yum install redhat-rpm-config gcc rpm-build make gnupg
 
接下来的步骤,对于 X64 位的 RHEL 来说很重要,我们必须安装 unifdef 组件,否则在编译内核时,会提示 "unifdef is needed by kernel****" 的错误信息:
yum install unifdef
 
在运行 yum 时,如果提示 RHN 未激活之类的报错信息,请参考本文前面的“ 2. 订阅在线更新服务”部分进行设置。
 
然后就可以安装所下载的内核源码包了。首先进入内核源码包的保存位置,然后开始安装:
cd /opt
rpm -ivh kernel-*.src.rpm

二、编译内核

安装好所下载的内核源码包,可以用文本编辑器打开“ /usr/src/redhat/SPECS/kernel-2.6.spec ”文件
 
确保在“ build% ”语句前插入以下的语句:
 
对于64位RHEL,应该插入以下语句:
 patch -p1 -d ../linux-%{kversion}.%{_target_cpu} < /opt/linux_ic/patch/x2v-x64-rhel.patch
 
如果是 32 RHEL ,则应该插入以下语句:
 patch -p1 -d ../linux-%{kversion}.%{_target_cpu} < /opt/linux_ic/patch/x2v-x32-rhel.patch
 
同时在该文本文件里搜索定义“ %define with_xen ”的行,确保将该行的定义值从 0 改为 1 ,这样就可以编译带 xen 支持的 Linux 内核,否则将无法支持 Hyper-V VMBus 架构:
%define with_xen 1
 
然后输入以下命令,进入该文件所在的路径,并开始编译:
cd /usr/src/redhat/SPECS
rpmbuild -ba kernel-2.6.spec
 
如果是 32 RHEL ,应该输入以下命令:
rpmbuild -ba --target i686 kernel-2.6.spec
 
编译的时间相当长,估计大概要6~8个 小时!(笔者是晚上睡前开始编译的,第二天一早已经编译完毕),毕竟在虚机里编译,在没有安装 Linux IC 前,这个表现是正常的。

三、安装内核

内核编译完毕,就可以开始安装了。
 
对于 X64 位系统,可以运行以下命令:
cd /usr/src/redhat/RPMS/x86_64
rpm -ivh kernel-xen-2*rpm
rpm -Uvh kernel-xen-devel-2*rpm
 
对于 32 位系统,可以运行以下命令:
cd /usr/src/redhat/RPMS/i686
rpm -ivh kernel-xen-2*rpm
rpm -Uvh kernel-xen-devel-2*rpm
 
然后运行以下命令,以便在 Linux 中添加相应的 Hypercall 适配器( x2v 适配器,应该就是 xen to Hyper-V 的缩写吧):
cd /opt/linux_ic
perl setup.pl x2v /boot/grub/grub.conf
 
然后检查 Red Hat 的引导配置文件“ /boot/grub/grub.conf ”,应该类似下图所示。

    注意如果是 32 位系统,则“ kernel ”一行应该是“ kernel /x2v-pae.gz ”,注意必须是“ pae ”(物理地址扩展)而不是“ 32 ”。
然后重启 Linux 虚机。

四、安装驱动

   在
Linux 虚机里,微软所提供的 Linux IC 一共包含三个驱动, VMBus 总线、网络和磁盘子系统。在安装驱动前,首先要修复到“ /lib/modules ”的链接:
cd /lib/modules/`uname -r`
ln -nsf /usr/src/kernels/`uname -r`-`arch` build
 
接下来的驱动安装和 SUSE 没有什么区别,运行以下命令即可:
/opt/linux_ic/setup.pl drivers
 
重启 Linux 虚机以后,应该可以正常运行,并且所有的 Synthetic 组件都能够正常工作,包括网络和磁盘子系统。
分享至
一键收藏,随时查看,分享好友!
0人
了这篇文章
类别: 计算机┆阅读( 0)┆评论( 0) ┆ 返回博主首页┆ 返回博客首页
上一篇 Vista风格的文件改名方式 下一篇 哎,昨天调服务器,碰到兼容性问题了,吓了一大跳

相关文章

  • Red Hat Linux 安装 (本地、网络安装)
  • 原创 Red Hat Enterprise Linux 5 安装手册
  • 详解red hat linux9.0在虚拟机vmware上网配置
  • 终于装上了Linux系统!

职位推荐

  • 网络安全工程师
  • 系统运维工程师
  • 前台兼人事助理
  • 高级网络运维工程师
  • 系统工程师

文章评论

 
 

发表评论            

昵  称:
登录  快速注册
验证码:

点击图片可刷新验证码请点击后输入验证码博客过2级,无需填写验证码

内  容:

同时赞一个

每日博报 精彩不止一点关闭

你可能感兴趣的:(linux,安装,enterprise,Hyper-v,red,hat)