在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组件都能够正常工作,包括网络和磁盘子系统。




本文转自 ahpeng 51CTO博客,原文链接:http://blog.51cto.com/markwin/160335,如需转载请自行联系原作者

目录
打赏
0
0
0
0
265
分享
相关文章
BigCloud Enterprise Linux 8和Rocky Linux 8升级OpenSSH步骤
本文介绍了在BigCloud Enterprise Linux 8.2/8.6和Rocky Linux 8.10上升级OpenSSH的详细步骤。首先配置Telnet服务和GCC编译器以确保远程登录安全,接着备份旧版OpenSSH并下载、编译、安装最新版本(如9.9p1)。然后创建新的sshd系统服务配置文件,调整配置并启动服务。最后验证升级效果,关闭不必要的Telnet服务,并处理可能的防火墙和SELinux问题。通过这些步骤可有效修复低版本OpenSSH带来的高危漏洞。
127 13
|
3月前
|
Red Hat Enterprise Linux(RHEL)
Red Hat(红帽)是一家美国的软件公司,专注于开发开源软件产品。公司成立于1993年,总部位于美国北卡罗来纳州的罗利市。目前,Red Hat已成为全球最大的开源解决方案提供商和商业Linux主要供应商。 Red Hat由Bob Young和Marc Ewing共同创立。Marc Ewing最初创建了自己的Linux发行版,并将其命名为红帽Linux。1995年,Bob Young收购了Marc Ewing的企业,两者合并成为红帽软件公司。此后,红帽Linux逐渐发展成为一款备受欢迎的Linux发行版。 特点
75 10
Red Hat Enterprise Linux(RHEL)
Splunk Enterprise 9.4.1 (macOS, Linux, Windows) 发布 - 机器数据管理和分析
Splunk Enterprise 9.4.1 (macOS, Linux, Windows) 发布 - 机器数据管理和分析
43 0
Splunk Enterprise 9.4.1 (macOS, Linux, Windows) 发布 - 机器数据管理和分析
Red Hat Enterprise Linux 9.5 发布下载,新增功能亮点概述
Red Hat Enterprise Linux 9.5 发布下载,新增功能亮点概述
268 4
Red Hat Enterprise Linux 9.5 发布下载,新增功能亮点概述
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
272 3
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
149 2
如何在 VM 虚拟机中安装 Red Hat Enterprise Linux 9.3 操作系统保姆级教程(附链接)
如何在 VM 虚拟机中安装 Red Hat Enterprise Linux 9.3 操作系统保姆级教程(附链接)
|
12月前
|
Redhat Enterprise Linux磁带机简单操作
Redhat Enterprise Linux磁带机简单操作
151 2
Why does my Red Hat Enterprise Linux (RHEL) system swap despite of having free RAM?
Why does my Red Hat Enterprise Linux (RHEL) system swap despite of having free RAM? Swapping in a linux system happens under two conditions. 1) Anonymous mapped memory. 2) Oversized workload abusing memory overcommit. In our problem, only point 1 is valid. So, we will discuss that here.
117 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等