admin管理员组

文章数量:1532252

在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/wapps/store/catalog.html   另一种是申请临时服务,这是免费的,可以到以下网站申请(需要事先注册一个账户): https://www.redhat/rhel/details/eval/   设置好以后Linux中单击应用程序、系统工具、软件包更新工具,按照屏幕提示输入所注册的用户名和密码,即可。

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

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上安装的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/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%”语句前插入以下的语句:   对于64RHEL,应该插入以下语句:  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组件都能够正常工作,包括网络和磁盘子系统。 安装 Linux Red 计算机

0

分享

微博 QQ 微信

收藏

上一篇:Vista风格的文件改名方式 下一篇:哎,昨天调服务器,碰到兼容性问题... linfj

375篇文章,224W+人气,2粉丝

关注

Ctrl+Enter 发布

发布

取消

猜你喜欢

我的友情链接 UPS系统的配置与计算 红警全能王V2012 让VMware ESXi虚拟交换机支持VLAN 在Hyper-V、Virtual PC等虚拟机中使用USB设备的方法 Haproxy安装及配置 AVG Anti-Spyware V7.5.0.50 的破解方法 SQL自动审核-自助上线平台 V2.0 linux命令eval的用法 CentOS 下JDK安装 SCCM 2016安装部署 kubeadm安装kubernetes v1.11.3 HA多主高可用并启用ipvs Ansible-playbook批量添加zabbix监控项目、同步配置信息(二) Powershell 修改Office365和AD账户 Filebeat 关键字多行匹配日志采集(multiline与include_lines) suse-zypper常用命令大全及软件仓库配置 对接SAP人事档完成AD账号的自动授权 1.EVE-NG最好用的模拟器,仿真环境时代来临! /usr/bin/perl^M: bad interpreter: No such file or directory 队列工厂之(MSMQ)

扫一扫,领取大礼包

0

分享 关注 linfj

转载于:https://blog.51cto/netlin/159434

本文标签: RedhyperhatLinuxEnterprise