1. 为什么是RHEL 8,为什么偏偏用VMware Workstation来装
先说个常见的场景。很多朋友第一次装Linux,往往图省事选了Ubuntu,图形界面漂亮、驱动齐全、遇到问题百度一下全是答案。但当你开始准备红帽认证,或者公司内部的开发、测试、生产环境统一用Red Hat Enterprise Linux,你会发现RHEL的安装和使用逻辑和Ubuntu完全是两码事。我这次选择在VMware Workstation上安装Red Hat Enterprise Linux 8虚拟机,就是因为这套组合在“贴近生产环境”和“本地折腾成本低”之间,几乎是平衡得最好的一个方案。
1.1 什么场景下,这台RHEL 8虚拟机值得装
- 准备RHCSA/RHCE认证,练习里用的就是RHEL,虽然现在认证已经切到RHEL 9,但很多企业的存量系统、培训资料、中间件版本兼容矩阵都还在RHEL 8上,先吃透8,再看9的差异非常轻松。
- 公司开发环境的依赖是以RHEL 8为基础镜像的,你本地不装一台同版本系统,很多“在我电脑上明明好的”这种问题就永远复现不了。
- 你在做操作系统相关的软件测试,比如写Systemd服务、SELinux策略、firewalld规则,这些在Ubuntu上验证完,部署到RHEL依然可能翻车,直接用RHEL虚拟机验证才是正路。
1.2 为什么不用VirtualBox、Hyper-V或WSL2
在Windows宿主机上跑Linux的方式很多,但它们各自的坑都很明显。VirtualBox免费且跨平台,但显卡性能、快照稳定性、以及和VMware在“企业级克隆/模板功能”上的差距,实际用起来会感觉更“玩具”一些。Hyper-V当然也行,但它属于Type 1虚拟化,开启后整个Windows都变成虚拟机宿主机,网络、声卡、睡眠这些行为会被改变,而且RHEL在Hyper-V的Dynamic Memory和集成组件配置上,明显不如VMware那么顺手。WSL2更适合跑命令行工具,不适合模拟完整的带图形界面的企业级Linux环境,更没法用来做RHEL的桌面或网络服务测试。
1.3 RHEL 8和7、9在安装层面的大体差异
RHEL 8的安装程序依旧是Anaconda,但相比7,界面和分区逻辑变化很大。它把软件仓库拆分成了BaseOS和AppStream两部分,安装时选软件包的方式也变成了基于模块流(Module Stream)的模式。相比9,8的安装流程其实更传统一些,比如网络配置还在“安装信息摘要”里直接改,SELinux默认强制,这些细节对第一次接触RHEL的人来说很有代表性。所以拿RHEL 8做入门练习,再去看9,你不会觉得跨度太大;反过来也行,但8的兼容性和可用软件源明显更成熟。
2. 动手前的硬性条件自查:硬件虚拟化、VMware版本与ISO镜像
这一步很多人直接跳过,然后装到一半蓝屏或者直接报“客户机操作系统已禁用 CPU”,回头再来找原因,白白浪费时间。我建议按照下面这几项过一遍,五分钟搞定。
2.1 Intel VT-x / AMD-V:物理机虚拟化的总开关
VMware Workstation是典型的Type 2虚拟化,它需要宿主机的CPU硬件虚拟化支持。如果你的CPU是Intel,对应的开关叫Intel VT-x,AMD平台叫AMD-V。这个东西默认在BIOS/UEFI里是开着的,但有些品牌机或者自己装过系统的机器,可能被不小心关掉了。
验证方法很简单:打开任务管理器,切到“性能”标签,看CPU页面有没有“虚拟化:已启用”。如果显示“已启用”,那就没问题;如果显示“已禁用”,就需要重启电脑,进BIOS/UEFI,在CPU Configuration、Advanced或类似菜单里找到Intel Virtualization Technology或者SVM Mode,改成Enabled。
注意:如果你装了Windows 11,又同时开了WSL2或Hyper-V,任务管理器可能会显示“虚拟化:已启用”,但VMware还是报错。这是因为Windows自带的虚拟化组件(Hypervisor)占用了VT-x,导致VMware无法直接使用。这个坑我放到第6章专门讲。
2.2 VMware Workstation该用哪个版本
目前主流的版本是VMware Workstation Pro 17,最新版本已经迭代到17.6.x。给个人用户已经免费,官网下载就能拿到正版授权,不需要去网上找许可证密钥。如果你是学生或者个人开发,直接用Workstation Pro;如果只是偶尔跑个虚拟机,Workstation Player也够用,但快照、克隆、多网卡这些功能会被限制。我个人还是建议直接上Pro,因为你后面很可能需要给RHEL做快照来练习分区、配置系统服务,快照功能在排障时太重要了。
2.3 RHEL 8的ISO从哪里下,怎么验
RHEL不像Ubuntu那样直接给公开ISO,它需要你有一个红帽账号。去红帽开发者网站(developers.redhat.com)注册一个免费的开发者订阅,就可以合法下载RHEL 8的安装镜像,这个订阅对个人学习和开发用途完全免费,而且可以继续使用dnf更新软件包。
下载的时候,建议选择DVD ISO,大概4-5GB,包含了图形安装环境和大部分常用软件包。如果你网速不好,也可以选最小化引导ISO,但那就需要在安装时自己配置安装源,新手不建议这么干。下载完成后,最好校验一下SHA256值,红帽官网每个ISO都提供了校验值,对比一下,避免下载到损坏的镜像,尤其是通过某些非官方渠道下载的时候,这步省不得。
物理机内存建议至少8GB,因为你要给虚拟机分2-4GB,Windows本身还要占不少。磁盘空间上,RHEL 8完整安装大概需要10GB,建议给虚拟机分配20-30GB,别卡着最低值,后面装中间件、编译软件会捉襟见肘。
3. 新建虚拟机时最容易出错的那几个配置项
很多人安装失败,问题往往不在安装过程,而是建虚拟机时参数就没选对。VMware Workstation的“新建虚拟机向导”看起来简单,几乎不用动脑,但有几个默认选项实际上并不适合RHEL 8,我一个个说。
3.1 客户机操作系统的类型不能随便选
这一步是新手最容易踩的坑之一。在“选择客户机操作系统”那一步,选择Linux,然后版本一定要选Red Hat Enterprise Linux 8 64-bit。有的朋友图省事,直接选了Other Linux 5.x 64-bit,也能启动,但VMware Tools的兼容性、虚拟显卡的驱动、某些虚拟设备的识别都会出问题。
我遇到过选错系统类型后,虚拟机的OpenGL加速用不了,图形界面明显卡顿,安装VMware Tools时也无法自动识别客户机环境。所以这一步别看它不起眼,实际上决定了VMware用哪一套虚拟硬件配置文件去适配系统。
3.2 CPU、内存、磁盘的合理分配
CPU方面,我建议分配2核,内存2-4GB。如果你要装带图形界面的“Server with GUI”,内存至少4GB;如果你只装最小化系统,2GB也够用。在CPU配置页面有个“虚拟化Intel VT-x/AMD-V”选项,默认是勾选的,建议保留勾选。这个选项的作用是把宿主机的硬件虚拟化能力暴露给虚拟机,如果你以后要在RHEL 8虚拟机里再跑KVM或Docker,这一项必须开启。
磁盘方面,我推荐20GB起步,动态分配即可。VMware的“立即分配所有磁盘”会把空间一次性占满,生成虚拟机大文件,除了某些对IO延迟极其敏感的场景,日常使用完全没必要。磁盘类型建议NVMe,RHEL 8对NVMe支持很好,比默认的SCSI(LSI Logic SAS)快一些,尤其是后面做快照和克隆时差距能感觉出来。
3.3 引导固件:UEFI还是BIOS
VMware Workstation 17创建RHEL 8虚拟机时,默认引导模式是UEFI,这是官方推荐,RHEL 8对UEFI支持完善,磁盘分区表默认用GPT。如果你在很老的虚拟机模板上克隆,或者引导模式是BIOS,安装时会提示你磁盘没有可引导设备。
但这里有个细节:如果你在BIOS模式下建了虚拟机,装完系统后想改成UEFI,那基本等于重装。所以建虚拟机时就要想好用哪种引导模式,我建议保持默认UEFI,这是RHEL 8和现代硬件的标准做法。
3.4 网络适配器和ISO镜像挂载
网络适配器类型,默认NAT模式就够了,这是最省心的选择。RHEL 8装好之后,如果宿主机能上网,虚拟机基本也能上网,不需要额外配置。如果你需要让局域网里的其他机器直接访问这台虚拟机,那就选桥接模式,但桥接模式需要路由器支持,且虚拟机要有一个和宿主机同网段的IP,这个我在第5章会展开。
CD/DVD那一步,勾选“启动时连接”,然后选择“使用ISO映像文件”,把下载好的RHEL 8 ISO挂载进去。等你装完系统,一定要记得把这个ISO从虚拟机里“断开连接”,或者调整启动顺序,否则重启后又会进入安装界面。这个低级错误我见过好多次,装完重启又进安装程序,还以为自己没装成功。
4. Anaconda安装向导一步一步说:从语言选择到首次重启
配置完虚拟机硬件,开机之后才是正戏。RHEL 8的安装界面启动后,第一屏会问你是否要测试介质,新硬盘建议跳过,按Tab或直接回车继续。进入图形安装界面之后,按照下面这些步骤来。
4.1 语言、时间和软件仓库
- 语言:自己习惯用中文就选中文,用英文也行。不过官方文档里的命令、目录结构都是英文的,建议有基础的朋友直接英文安装,后面看报错信息更方便。
- 日期与时间:选好时区,上海/北京都行。
- 安装源:如果用的是DVD ISO,安装程序会自动识别本地介质,这步一般不用动。
- 软件选择:这是RHEL 8安装中最重要的一个选项。它不像Ubuntu那样装完再选桌面环境,而是在安装阶段就决定你这套系统的软件包组合。新手建议选“带图形界面的服务器”(Server with GUI),开发测试建议“服务器”(Server),最小化安装(Minimal Install)适合熟悉命令行的朋友或者Docker镜像基础。软件选择这一项在RHEL里不仅仅是选个“要不要桌面”,它还会决定内置哪些开发工具、图形工具、网络服务组件。装完之后再补包虽然可行,但不如一开始就选对。
4.2 安装目的地:分区方案别傻傻用默认
点进“安装目的地”,你会看到磁盘,默认选“自动配置分区”。如果你只是想快速搭个环境,自动分区完全够用。但我建议你还是看看自动分区的方案——它默认是LVM逻辑卷,这是RHEL在企业环境里最常用的分区方式,比直接搞一堆物理分区灵活得多。
我常用的手动分区方案是:
- /boot,1GB,标准分区,ext4或xfs都行
- /,剩余空间,LVM逻辑卷,xfs
- swap,2GB,LVM逻辑卷
这样的好处是:/ 目录空间可以随时用lvextend扩展,不用重装系统。如果你以后要在上面跑数据库、Jenkins、容器镜像,磁盘空间不够的概率很大,LVM几乎避免了一半的后续磁盘扩容难题。
4.3 ROOT密码、普通用户和Kdump
RHEL 8双击ROOT密码,设置一个强密码,这是系统的超级管理员账号。然后创建用户,用户名随便,但一定要记得勾选“使此用户成为管理员”,这样这个用户会自动加入wheel组,之后能用sudo执行管理员命令,否则每次要切到root输密码,很麻烦。
Kdump那个选项,默认是开启的,原理是预留一块内存用于系统崩溃时收集信息。如果你这只是个2GB的虚拟机,我不建议开Kdump,因为崩溃转储功能会预先占掉一部分内存,而且本地虚拟机里收集的内核转储往往没人看。等以后做生产集群时再研究它不迟。
4.4 网络与主机名
在“安装信息摘要”里双击“网络与主机名”,右上角的以太网开关默认可能是关闭的,需要手动打开。打开后它会通过DHCP自动获取一个IP,例如192.168.x.x。这里可以顺手把主机名改成你想要的,比如rhel8-dev,不用安装完再用hostnamectl去改。
4.5 开始安装与重启
所有配置项没有感叹号提示之后,点击“开始安装”。这个时候安装程序会去格式化磁盘、复制软件包,大概需要5-15分钟,取决于你的硬盘速度。安装过程中还能顺手设置root密码和创建用户。
安装完成的界面会提示点击“重新引导”。这里有一个关键操作:在重启之前,把虚拟机的CD/DVD启动项断开ISO。你可以直接在VMware菜单的“虚拟机”->“可移动设备”->“CD/DVD”里断开连接,否则重启后又可能从ISO启动,回到安装界面。
5. 装完之后的首次启动配置,以及网络不通的排查实录
系统重启之后,你以为万事大吉,其实还有几个必须处理的问题,尤其是网络和软件源。这一步如果不弄好,你连dnf装个软件都会卡住。
5.1 接受许可协议与订阅管理
首次启动进入图形界面后,系统会提示你接受许可协议。按下接受后,接着是订阅管理。RHEL和CentOS最大的区别就在这里,RHEL需要注册订阅才能访问软件仓库。虽然你可以用本地DVD作为临时软件源,但最优雅的方式是用前面提到的红帽开发者订阅,在“系统”->“订阅管理”里注册你的红帽账号,系统会自动把BaseOS和AppStream仓库挂好,之后dnf install命令就能正常使用了。
如果没有订阅,你会发现dnf install nginx会报“没有可用软件包”,这不是网络问题,是仓库列表是空的。我见过太多人卡在这一步,以为是防火墙挡住,其实没用订阅。
5.2 安装open-vm-tools而不是“安装VMware Tools”
VMware菜单里有个“安装VMware Tools”的选项,平时在Ubuntu里点它就会挂载一个tar包,解压后运行安装脚本。但在RHEL 8上,建议别这么干。RHEL 8自带open-vm-tools软件包,这是VMware官方和红帽合作维护的开源版本,直接:
sudo dnf install open-vm-tools -y装完后,虚拟机的分辨率自适应、剪贴板共享、文件拖拽功能就能用了。这也是我把系统版本选对的好处之一——VMware、系统发行版和Tools版本三者匹配,才不会出现“Tools安装成功但功能不正常”的情况。
5.3 NAT模式下虚拟机无法上网,怎么排查
装了open-vm-tools之后,先测一下网络:
ping -c 4 baidu.com ping -c 4 192.168.10.1第一个测DNS和外部连通性,第二个测网关。如果ping不通baidu,但能ping通网关,说明DNS有问题,改一下DNS解析加一个114.114.114.114或者阿里云DNS。如果两个都不通,先看网卡状态:
ip addr nmcli device statusRHEL 8默认使用NetworkManager和nmcli管理网络。如果网卡是DOWN状态,试试:
sudo nmcli connection up ens160如果还是不行,进入/etc/sysconfig/network-scripts/目录看有没有ifcfg-ens160这个文件,内容里ONBOOT是不是no,如果是就改成yes然后重启NetworkManager。这是最常见的NAT模式上不了网的原因。
5.4 配置静态IP,让虚拟机地址固定下来
DHCP虽然省事,但虚拟机的IP老是变,SSH连接和端口转发就很麻烦。用nmtui是最直观的方式,交互式界面,回车进去之后选“编辑连接”,然后把IPv4配置从自动改成手动,填上IP、子网掩码、网关、DNS。在NAT模式下,网关一般是192.168.10.2或192.168.x.2,DNS可以填宿主机的网关或者是公共DNS。配置完重启一下网络:
sudo nmcli connection up ens160再验证一下IP是否固定。这里有个容易忽略的问题:如果你改了网络配置,firewalld里可能还留着旧的zone规则,SSH端口(22)默认允许,但如果你要开HTTP、HTTPS之类的端口,记得用firewall-cmd去放行。
6. 虚拟机日常使用中高频报错的根因与处理
最后这一部分,我把自己在实际使用RHEL虚拟机过程中遇到的最典型的几个报错整理成表,每个都是可以复现的排错思路,比单纯搜报错信息更实用。
| 报错信息 | 根因 | 处理办法 |
|---|---|---|
| 客户机操作系统已禁用 CPU,请关闭或重置虚拟机 | 物理机VT-x未开启,或Windows Hyper-V占用了硬件虚拟化 | BIOS里开启虚拟化;关闭“Windows功能”里的Hyper-V;确认任务管理器虚拟化状态 |
| VMware Workstation 无法连接到虚拟机,请确保您有权运行该程序 | 服务未启动,或工作目录/临时目录权限被修改 | 以管理员身份运行VMware;检查vmware-authd服务状态;重装VMware解决权限残留 |
| 不可恢复错误(vcpu-1) exception 0xc0000005 | 典型的访问违规,常见于Windows内核隔离/内存完整性开启,或驱动冲突 | 关闭Windows“内存完整性”功能;升级VMware到17.6;更新显卡驱动 |
| 虚拟化不支持或未启用 | 较老的CPU或虚拟机嵌套虚拟化未开启 | 检查CPU型号是否支持VT-x;在VMware硬件配置里勾选“虚拟化Intel VT-x/AMD-V” |
| WSL2 无法启动 | VMware启用时Hyper-V设置冲突 | 注意:Windows 11下两者可以共存,但需要Windows Hypervisor Platform特性开启,或者二选一 |
6.1 “客户机操作系统已禁用 CPU“:80%是VT-x或Hyper-V的问题
这个报错几乎每个用VMware的人都会遇到一次。它其实就是第2章说的VT-x没被VMware拿到,或者Windows本身的虚拟化层抢走了CPU虚拟化权限。排查链路过一遍:
- 任务管理器->性能->CPU确认虚拟化是否为“已启用”。
- 如果“已启用”,看看你是不是装了Docker Desktop、WSL2、VirtualBox等,这些都可能启用Hyper-V。在管理员PowerShell里执行:
看最后面的Hyper-V要求,如果有“检测到虚拟机监控程序”,说明Hypervisor在运行。systeminfo - 如果不需要Hyper-V,在“启用或关闭Windows功能”里关掉Hyper-V,重启,问题通常就能解决。如果你又必须要用WSL2,那就得启用“Windows虚拟机监控程序平台”这个特性,让VMware和Hyper-V共存,但性能会有一定损耗,这个看个人取舍。
6.2 不可恢复错误 (vcpu-1) exception 0xc0000005
这个报错我印象太深了,一次是升级VMware后忘了重启电脑直接开虚拟机,一次是Windows自动更新完显卡驱动之后,RHEL虚拟机一开机就崩。0xc0000005本质上是内存访问违规,在VMware里,通常是因为某个进程访问了它没有权限访问的内存地址。常见诱因是Windows 11的“内存完整性”(基于虚拟化的安全,VBS)和VMware的虚拟化引擎冲突。关闭方法:Windows安全中心->设备安全性->内核隔离,关闭内存完整性,重启。如果还不行,升级VMware Workstation到最新版,新版本对Win11 24H2兼容性已经改进了很多。
6.3 虚拟机一直转圈或安装时蓝屏
这个问题在比较老的VMware版本上很常见,原因主要是UEFI引导和Windows 11要求的安全启动不匹配。解决办法是:创建虚拟机时选择Workstation 17.x的硬件兼容性;固件类型选择UEFI并勾选“启用安全引导”;安装Windows虚拟机时如果蓝屏,把虚拟机的内存分配改成4GB以上,处理器核数改成2个以上,大概率能绕过去。RHEL 8对这个问题的敏感度低一些,但如果你在RHEL 8虚拟机里又嵌套虚拟化跑Windows,同样的逻辑也适用。
6.4 装了快照之后磁盘空间暴涨,别慌
VMware快照功能太好用了,RHEL 8虚拟机做实验前拍一个快照,出问题了还原,几分钟就能回滚。但快照会生成额外的磁盘文件,如果你频繁做快照,宿主机的C盘或存放虚拟机的盘很容易爆掉。我建议把虚拟机文件放到空间充足的盘符下,快照只留最近一两个,用完之后及时删除。在VMware里,快照管理器的“删除”按钮并不是删除虚拟机数据,而是把快照合并到主磁盘,这个操作需要时间,期间虚拟机尽量别关机。
6.5 虚拟机RHEL 8的SELinux导致的“奇怪”问题
最后说一个不算报错但很容易让人抓狂的问题:RHEL 8默认强制开启SELinux,你在虚拟机里部署Nginx、SSH服务时,有时候明明防火墙放行了,外部还是访问不了,十有八九是SELinux在拦截。排查时用:
sudo setenforce 0临时关掉验证一下,如果确认是SELinux,就去改对应的布尔值,而不是简单粗暴地setenforce 0。比如允许Nginx访问网络:
sudo setsebool -P httpd_can_network_connect 1这个知识虽然不是VMware特有的,但在RHEL虚拟机环境里,和VMware的网络模式叠加起来,就会显得特别玄学。
我在实际使用中还有一个习惯:每次装完RHEL 8虚拟机,都先做一次“干净状态”的快照,然后在这个基础上再去装中间件、改配置。这样即使用一个下午把环境搞崩了,一条快照还原命令就能回到初始状态,比重新装系统快得多。折腾虚拟机这件事,很多坑其实都是配置顺序不对或者基础条件没满足导致的,把这套流程走顺之后,RHEL 8的安装也就那么回事。