兄弟们,RHEL9.7出来之后我第一时间就把它塞进VMware Workstation虚拟机里跑。这台虚拟机从建到装、从优化到踩坑,前后折腾了两天多,最后总算是稳定运行。这篇文章不聊虚的,就把完整的搭建过程、性能优化思路、以及我在VMware Workstation里遇到的几个典型问题(连不上虚拟机、Linux蓝屏、网络问号)全部捋一遍,给想上RHEL9.7又不想在物理机上折腾的朋友一份能直接照做的方案。
1. 为什么是RHEL9.7虚拟机?——先搞清楚你装它干嘛
1.1 RHEL9.7到底是个什么版本
如果你在Red Hat官网转过一圈就会知道,RHEL9.7不是横空出世的新体系和RHEL10,它属于RHEL 9.x生命周期里的一个常规更新小版本。内核层面比9.4、9.5更现代,对一些新硬件和容器场景支持更友好,同时保留了9.x系列一贯的稳定特性和订阅策略。
很多人一听到Red Hat Enterprise Linux就觉得“那是企业用的,跟我没关系”,其实不是这样。RHEL对所有开发者开放了免费的开发者订阅,个人学习、实验、写代码完全够用。你只需要注册一个账号,就能下载ISO镜像,也能拿到yum源使用权限。这个门槛比我想象中低很多,所以用RHEL9.7虚拟机作为日常测试环境或者学习发行版,完全可行。
1.2 虚拟化部署的价值在这类场景里特别明显
为什么我坚持用虚拟机而不是装物理机?因为RHEL9.7很多时候是被当作服务器、容器宿主机或者中间件环境来用的。如果直接在物理机上装,遇到一个问题就要多一台备用机器做快照备份,非常不划算。虚拟机里可以随时打快照,改坏了参数秒回滚,还能克隆出多套环境做集群实验。
另外,RHEL是订阅制系统,你装了之后想续订、重装、迁移,虚拟机的抽象层能让你省掉大量重复配置的时间。一套工作流跑通了,以后复制一份就能用,这种体验在物理机上很难获得。
1.3 这篇内容适合哪些人
如果你是下面任意一类人,这篇文章应该能帮上忙:
- 刚接触RHEL,想在Windows笔记本上用VMware Workstation搭一个测试环境。
- 公司项目要求使用RHEL9.x版本,需要提前在虚拟机里验证部署方案。
- 被VMware Workstation的“无法连接到虚拟机”提示、安装Linux蓝屏、虚拟机网络图标问号等问题折磨过的朋友。
- 系统装完之后想进一步优化虚拟机性能,让RHEL9.7跑得更顺手。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 装之前把这些查清楚:镜像、VMware版本、宿主机固件
2.1 镜像下载与校验步骤
RHEL9.7的ISO建议去Red Hat官网的Developer专区下载,不要随便在第三方站点下打包镜像,安全和完整性都没保证。下载前需要注册账号,然后进到Downloads页面选择Red Hat Enterprise Linux,确定版本号9.7,一般会有DVD ISO和Boot ISO两种,建议直接用DVD ISO省去安装时联网拉包的麻烦。
镜像下载完,别急着建虚拟机,第一步先校验SHA256。Windows系统在PowerShell里执行:
powershell复制Get-FileHash .\rhel-baseos-9.7-x86_64-dvd.iso -Algorithm SHA256
然后和官网页面给出的校验值对比。这一步看着多余,但能避免下载了一半损坏的文件导致安装中途报错。我遇到过一次ISO损坏,安装程序在读取存储库阶段直接崩溃,排查两小时才发现是镜像问题,浪费的时间远比校验一次多。
2.2 VMware Workstation版本选择
建议使用较新的VMware Workstation Pro版本,我自己用的是17.x系列。RHEL9.7的虚拟硬件兼容性在老版本里有可能不被完全识别,特别是网卡、显卡和vmmemctl组件,用新版本能省掉很多底层兼容问题。
如果你在Workstation 17里新建虚拟机时,客户机操作系统类型列表找不到RHEL 9.7,可以直接选择“Red Hat Enterprise Linux 9 64-bit”。只要内核是9.x系列,这个选项完全足够。系统类型列表不需要精确到小版本,安装后一样能够正常识别RHEL9.7。
2.3 宿主机虚拟化检查:BIOS里VT-x/AMD-V必须打开
这一步很多人都忽略,但恰恰是Linux安装蓝屏和VMware无法启动虚拟机的头号元凶。安装RHEL9.7之前,先确认Windows宿主机本身的虚拟化是否处于开启状态。
最简单的检查方法:打开任务管理器,切到“性能”页签,下方能看到“虚拟化:已启用”的提示。如果显示“已禁用”,需要重启电脑进入BIOS/UEFI,找到Intel Virtualization Technology或AMD SVM Mode,把它设为Enabled。不同主板厂家的BIOS路径不同,但关键英文关键词都是Virtualization、VT-x、SVM。
还有一个常被忽略的地方:Windows功能里的“虚拟机平台”。如果你之前用过WSL2或者Hyper-V,再回来用VMware Workstation,有时会提示虚拟化被占用或者启动后蓝屏。这时候需要去“控制面板->程序->启用或关闭Windows功能”,看一下“虚拟机平台”和“Hyper-V”勾选状态。VMware Workstation 17已经支持与Windows Hypervisor Platform共存,但老版本确实容易冲突,如果出现蓝屏,可以尝试把Hyper-V关掉,保留“虚拟机平台”或全部关掉,按实际环境测。
2.4 别忽略系统服务
真正动手前,把VMware相关服务确认一遍会省很多事。按Win+R,输入services.msc,找到名字里带VMware的服务,重点看VMware Authorization Service、VMware DHCP Service、VMware NAT Service,确保它们的启动类型不是“禁用”,状态最好是“正在运行”。很多“VMware Workstation无法连接到虚拟机”的报错,根源就是Authorization Service挂掉了,服务重新启动一次立刻恢复。这个我在后面“踩坑记录”部分还会细说。
3. 从创建虚拟机到RHEL9.7系统安装完成
3.1 新建虚拟机的推荐配置
直接在VMware Workstation里点击“创建新的虚拟机”,我建议选择“自定义(高级)”,虽然“典型”更快,但自定义能让我们把虚拟硬件规格一步到位,省得后面改。关键参数给你列出来:
| 配置项 | 推荐值 | 说明 |
|---|---|---|
| 虚拟机兼容性 | Workstation 17.x | 保证虚拟硬件支持度 |
| 客户机操作系统 | Red Hat Enterprise Linux 9 64-bit | 对应RHEL9内核 |
| CPU | 2核起步,建议4核 | 按宿主机CPU线程数酌情调 |
| 内存 | 4GB起步,建议8GB | 后面跑服务不紧张 |
| 磁盘 | 60GB,建议80GB | 用虚拟磁盘动态分配 |
| 磁盘类型 | NVMe或SCSI | 性能不错,对RHEL兼容性好 |
| 网络 | NAT模式 | 最省心,能上网又能和宿主机通信 |
| I/O控制器 | LSI Logic SAS 或 VMware Paravirtual SCSI | 后者性能更好,需装open-vm-tools |
| 固件类型 | UEFI | RHEL9默认支持UEFI,安装顺利 |
提示:如果你的需求只是轻量测试,磁盘容量可以选40GB,但考虑到RHEL9.7加上软件包很容易膨胀,还是建议60GB起步。动态分配模式下,实际占用不会立刻到60GB,所以不用担心浪费宿主机空间。
3.2 挂载ISO并启动引导
新建虚拟机的过程中会让你选安装介质,直接指向下载好的RHEL9.7 ISO。如果忘记选也没关系,创建完成后双击CD/DVD选项,勾选“使用ISO镜像文件”,再把ISO路径填进去。确认后启动虚拟机,屏幕会出现RHEL引导菜单,直接选第一项“Install Red Hat Enterprise Linux 9.7”或者按Enter。
如果屏幕一直黑屏或者卡在某个字符界面,先试试按一次Ctrl+Alt+Del重启虚拟机,并在虚拟机设置里把“虚拟化引擎”下的“虚拟化Intel VT-x/EPT”或“AMD-V/RVI”取消勾选。因为RHEL9.7的Anaconda安装器在某些宿主机上会和嵌套虚拟化抢资源,导致图形界面起不来。取消后一般能正常进入安装器。
3.3 安装源、软件选择、磁盘分区
进入安装器后,首先会让你选择安装源。如果你用的是DVD ISO,安装源通常是默认的本地介质,不需要联网。如果你不想占带宽或者想要最新的安装包,可以改成“Red Hat开发的网络安装源”,但那样要求你的网络能正常访问RHN/CDN,国内不一定稳,所以建议就用DVD ISO。
接下来是软件选择。RHEL9.7默认会安装带图形界面的服务器版本,体积大,启动慢。如果你对图形界面没有刚需,建议选择“最小安装”基础环境,这样系统体积小,资源占用低,后面需要什么包再手动装。如果只是想快速体验RHEL9.7,或者需要图形工具管理,可以选“带图形界面的服务器”,但内存建议6GB以上。
磁盘分区建议用默认的“自动配置分区”,RHEL安装器会自动分配/boot、/、/home、swap等逻辑卷。如果你想手动分区,需要注意/boot必须是独立分区,格式建议XFS,swap建议给到物理内存的1到2倍。手动分区的好处是方便后面做LVM扩容,但对新手来说自动分区完全够用。
3.4 设置root密码和用户账户
分区方案选完后,安装摘要页面里需要设置root密码和创建普通用户。这里有个细节:安装RHEL9.7时如果root密码设得太简单,安装器会要求你双击确认两次。建议直接设置一个强密码,比如字母+数字+特殊符号的组合。普通用户记得勾选“将此用户作为管理员”,后面用sudo会方便很多。
SSH配置方面,如果你准备安装后用SecureCRT、Xshell这类工具连接虚拟机,可以在安装摘要页中点开“Root密码”下方的“用户设置”,创建用户时把“允许使用SSH登录”选上。这比安装完再去改配置文件省事。
3.5 安装完成后的第一次重启
安装过程一般十几分钟,取决于磁盘速度和ISO读取速度。装完重启会进入首次启动引导,会让你接受许可协议并完成初始设置,按提示操作即可。第一次进入系统后,先打开终端,执行一句最简单的验证:
bash复制cat /etc/redhat-release
如果输出类似Red Hat Enterprise Linux release 9.7,说明系统和版本识别正常。到这里,RHEL9.7虚拟机已经算搭起来了,但离“好用”还有一段距离。
4. 系统装完必须做的五件优化:订阅、yum、SSH、防火墙、文件系统
4.1 注册订阅与启用仓库
RHEL不像CentOS那样装完直接用yum源。它默认没有启用软件仓库,你执行dnf install大概率会得到“没有匹配的软件包”或“仓库未启用”的提示。解决办法是注册订阅:
bash复制sudo subscription-manager register --username 你的RedHat账号 --password 你的密码
sudo subscription-manager attach --auto
如果你用的是开发者订阅,执行完这两条命令之后,仓库会自动变成可用状态。如果没有开发者订阅,也可以在Red Hat官网申请免费的Developer Subscription for Individuals,申请完成后同一账号即可。
注册完了,习惯性跑一遍更新:
bash复制sudo dnf update -y
这一步会把系统内核、系统库、安全补丁全部升级到当前订阅源里的最新版本。更新完后建议重启一次,确保内核模块都能正常加载。
4.2 配置EPEL仓库
RHEL默认仓库里的软件包数量有限,很多实用工具比如htop、jq、tmux都不一定能直接装到。这时候需要引入EPEL(Extra Packages for Enterprise Linux)仓库。RHEL9.7对应EPEL 9:
bash复制sudo dnf install -y epel-release
装完之后再用dnf search或者dnf install,你会发现软件包的选择多出一大截。EPEL里的包和RHEL官方仓库的冲突一般很少,只要官方源优先,问题是可控的。
4.3 SSH优化:从密码登录切换到密钥登录
虚拟机搭建好之后,很多人习惯用图形界面操作,但后期做自动化、远程管理,还是SSH最方便。RHEL9.7默认启用SSHD服务,如果你在安装时创建过普通用户并勾选了SSH登录,直接就能从宿主机连过去。
为了安全,建议把root密码登录关掉,改用密钥认证。操作思路是先在宿主机生成密钥对,再把公钥追加到虚拟机的~/.ssh/authorized_keys里。具体命令如下:
bash复制ssh-keygen -t ed25519 -C "rhel9.7-vm"
ssh-copy-id user@虚拟机IP
然后编辑/etc/ssh/sshd_config,确认以下两个参数:
text复制PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
修改后重启SSHD:
bash复制sudo systemctl restart sshd
如果你习惯用密码登录,PasswordAuthentication这一项可以保持yes,但生产环境里我建议还是关掉密码登录,禁用root直连,减少被暴力破解的风险。
4.4 关闭不需要的服务和防火墙调整
RHEL9.7默认启动的服务比CentOS 7那时少了很多,但依然有些服务不是每个人都需要。比如cups(打印服务)、avahi-daemon(mDNS广播)、bluetooth(蓝牙)在虚拟机场景下基本都是纯资源占用。可以查一下当前开启的服务:
bash复制systemctl list-units --type=service --state=running
如果你确认自己用不上,就关掉并禁用:
bash复制sudo systemctl disable --now cups avahi-daemon bluetooth
防火墙方面,RHEL9默认开启了firewalld,如果你只是测试环境、并且虚拟机只通过NAT联系外界,可以考虑直接暂停防火墙,减少自己给自己挖坑的行为:
bash复制sudo systemctl stop firewalld
sudo systemctl disable firewalld
但如果你以后要把虚拟机当成服务端,让宿主机或局域网其他机器访问,那就别停firewalld,应该放行对应端口。比如开放SSH:
bash复制sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
4.5 文件系统挂载和参数优化
安装完系统后,文件系统默认用的是默认挂载参数。为了减少SSD/机械盘的无效写入,可以给根分区加上noatime挂载参数。编辑/etc/fstab,找到/对应的那行,在defaults后加,noatime,看起来像这样:
text复制/dev/mapper/rhel-root / xfs defaults,noatime 0 0
改完执行sudo mount -o remount /让参数生效。虚拟机里跑RHEL,磁盘IO往往是最大瓶颈,noatime这种小优化能减少每次文件访问的元数据更新,对于日志写入频繁的场景效果还是能感知到的。
另外,关于swap,如果你的虚拟机内存只有4GB,保留swap是必要的;如果内存到了8GB以上,可以考虑把vm.swappiness降下来,让系统少用swap:
bash复制echo 'vm.swappiness=10' | sudo tee /etc/sysctl.d/99-swap.conf
sudo sysctl -p /etc/sysctl.d/99-swap.conf
5. 性能优化:让RHEL9.7在VMware里跑得更丝滑
5.1 安装open-vm-tools而不是VMware Tools
建好虚拟机之后,VMware Workstation可能会提示你安装VMware Tools。但RHEL9.7官方仓库里自带open-vm-tools,这是开源版VMware Tools,功能和VMware Tools几乎完全对齐,还能随系统更新自动升级。直接在虚拟机里安装:
bash复制sudo dnf install -y open-vm-tools
装完启动服务:
bash复制sudo systemctl enable --now vmtoolsd
装好open-vm-tools之后,虚拟机的剪贴板共享、拖拽文件、分辨率自适应、vmxnet3网卡驱动支持这些才完整。如果不装,你从宿主机往虚拟机里拖文件会很不方便,网络性能也上不去。
5.2 CPU和内存的资源分配策略
虚拟机的CPU和内存并不是配得越多越好。Windows宿主机本身还要跑软件,如果你把宿主机16G内存中的12G分配给虚拟机,宿主机就会慌,反过来拖慢虚拟机。我建议RHEL9.7跑图形桌面时给4核8G,跑最小化服务器时给2核4G就非常顺了。
另外,在VMware Workstation里,内存设置页面有一项“预留所有客户机内存”,默认是不勾选的。如果你的虚拟机对延迟敏感,可以把这个选项勾上,但代价是宿主机无法回收物理内存,占用明显增加。正常情况下不要勾选,让VMware动态调配就行。
CPU设置里,如果你只是日常使用,不要勾选“虚拟化Intel VT-x/EPT”或者“AMD-V/RVI”。这个选项的作用是允许虚拟机内部的应用程序直接使用嵌套虚拟化功能,比如你在RHEL里再跑KVM。如果你不开嵌套虚拟化,勾上反而可能因为指令集被拦截导致性能下降。
5.3 磁盘类型、IO调度器和Tuned配置
创建虚拟机时,磁盘类型选择NVMe还是SCSI,影响并不算特别大,但如果你选了Paravirtual SCSI(PVSCSI),必须装好open-vm-tools,否则系统可能找不到磁盘或者识别异常。RHEL9.7安装程序在虚拟机上默认会选择合适的控制器,一般不用手动调整。
系统层面,RHEL9默认使用的是none(即noop)调度器,因为内核版本较新,多队列块层会自动选择最佳调度策略。如果你是机械硬盘,可以尝试mq-deadline:
bash复制echo mq-deadline | sudo tee /sys/block/sda/queue/scheduler
如果你有Tuned服务,可以直接切换到virtual-guest模式:
bash复制sudo dnf install -y tuned
sudo tuned-adm profile virtual-guest
这个profile针对虚拟化客户机做了很多性能优化,包括内存回收策略、磁盘调度和网络缓冲区调整,一键应用,省心省事。测了一下,在同样负载下,virtual-guest比默认的throughput-performance更能照顾交互式应用的响应速度。
5.4 网卡类型与多队列优化
VMware Workstation默认给RHEL9.7虚拟机的网卡可能是e1000e,这种网卡兼容性好但虚拟化性能一般。装了open-vm-tools之后,可以改成vmxnet3。具体操作:关机,编辑虚拟机设置,把网络适配器的高级选项里网卡类型改成VMXNET3,开机后网络接口会被重新识别为ensxxx,再用nmcli重新配置IP即可。
vmxnet3支持多队列和硬件卸载,在虚拟化环境里性能比e1000e高不少。如果你只是用NAT上上网,可能体感差别不大;但如果你在虚拟机里做文件传输、跑Web服务或者压力测试,差距就很明显。
为了让vmxnet3更稳定,可以在RHEL里确认驱动加载:
bash复制ethtool -i ens192
看到driver: vmxnet3就对了。如果显示e1000e,说明改完之后内核还在用旧驱动,重新加载或重启虚拟机就好。
5.5 图形桌面优化:Wayland还是Xorg
RHEL9.7默认使用Wayland作为显示协议。Wayland在虚拟机里的用户体验,说实话看显卡虚拟化支持。VMware的图形虚拟化对Wayland支持得不错,但如果你遇到鼠标漂移、窗口撕裂问题,可以登录桌面时切换到“GNOME on Xorg”会话。
如果你完全不想要图形界面,建议安装时选择最小化安装。图形桌面对虚拟机内存和CPU的占用不小,跑服务的话没必要付出这个代价。如果已经装了图形界面,可以设置默认启动到multi-user.target:
bash复制sudo systemctl set-default multi-user.target
然后重启,以后虚拟机就只进字符界面,想用桌面时执行startx或者改回graphical.target即可。
6. 踩坑记录:连不上虚拟机和蓝屏?大概率是这三个原因
6.1 “VMware Workstation无法连接到虚拟机”:权限和服务问题
这个报错我这次也遇上了。现象是双击虚拟机开机,一个弹窗提示“VMware Workstation无法连接到虚拟机。请确保您有权运行该程序、访问该程序使用的所有目录以及访问该程序使用的所有临时文件。”当时我第一反应是权限,于是右键以管理员身份运行VMware,问题还是存在。
后来查了一圈,发现是VMware Authorization Service服务没起来。这个服务负责进程间通信授权,一旦挂了,Workstation就无法建立与虚拟机进程的连接。解决办法非常简单,管理员身份打开PowerShell:
powershell复制net start VMwareAuthorizationService
或者直接在services.msc里找到VMware Authorization Service,右键启动,并把启动类型改成“自动”。有几次服务本身显示正在运行,但依然报错,这时候先停止再启动,让服务重新初始化一下,基本都能恢复。
另外,如果虚拟机目录里出现以.lck结尾的文件夹,也是导致无法连接的原因之一,这是虚拟机异常退出时留下来的锁文件。关闭VMware Workstation,把虚拟机目录中的.lck文件删掉,再重新启动虚拟机即可。删除锁文件不会影响虚拟磁盘数据,可以放心操作。
6.2 安装Linux蓝屏:宿主机虚拟化未启用
另一个高频坑是安装RHEL9.7时,虚拟机界面刚开始启动,宿主机Windows直接蓝屏,错误码五花八门,常见的有SYSTEM_THREAD_EXCEPTION_NOT_HANDLED和HYPERVISOR_ERROR。这个问题大多数情况是宿主机BIOS虚拟化没开,或者开了Windows Hypervisor但和VMware冲突。
排查流程按顺序来:先确认Windows任务管理器里“虚拟化”是否显示“已启用”。如果显示已禁用,重启进BIOS开启VT-x或SVM。如果你用的是AMD CPU,注意BIOS里SVM Mode有时候叫“Secure Virtual Machine Mode”,找到后设为Enabled即可。
如果虚拟化已经是启用状态,还是蓝屏,那就要考虑是Hyper-V或Windows虚拟机监控程序被开启了。Windows系统启动配置里一旦开启了Hyper-V,整个Windows都会运行在Hyper-V管理层之上,VMware用VBS技术时可能冲突。用管理员PowerShell执行:
powershell复制bcdedit /set hypervisorlaunchtype off
然后重启电脑,再打开VMware Workstation试试。如果你平时还要用WSL2,需要把hypervisorlaunchtype重新设为auto,两个场景互切。
6.3 虚拟机网络图标问号:NAT模式和VMware NAT服务
我还在另一个环境里见过Ubuntu虚拟机网络图标上带问号,RHEL9.7也出现过类似问题。原因是虚拟机网络适配器选择了NAT模式,但VMware NAT服务没运行或者宿主机网卡识别异常。检查方式还是到services.msc里看VMware NAT Service和VMware DHCP Service的状态,这两个服务对NAT网络至关重要。
如果服务正常但IP依然拿不到,可以到RHEL虚拟机里手动确认网卡连接:
bash复制nmcli device status
然后重新激活连接:
bash复制nmcli connection up ens192
或者用DHCP重新拉一次地址:
bash复制sudo dhclient ens192
如果整个网卡都没起来,打开虚拟机设置,把网络连接从NAT改成桥接模式再改回NAT,强制VMware重新挂载虚拟网卡,再进系统重试,大部分网络问号问题能解决。
6.4 建好的虚拟机怎么用:快照、克隆和删除
创建好的虚拟机不是直接关机就完事了。VMware Workstation里最实用的功能是快照。在系统安装完、刚做完基础优化这个时间点,建议打一个干净快照,后续折腾坏了直接恢复快照。快照操作在虚拟机菜单栏“虚拟机->快照->拍摄快照”,命名推荐用“安装完纯净版”这样的清晰标签,方便以后识别。
克隆功能更值得提一句,右键虚拟机->管理->克隆,可以选择基于快照克隆或完整克隆。如果你要在RHEL9.7上测试集群、多节点环境,克隆功能能省掉反复安装系统的时间。注意克隆完的虚拟机需要重新修改主机名和IP,避免多台冲突。
7. 我的最终体会与几个实用小技巧
折腾完这台RHEL9.7虚拟机,最大的体会是:这种系统优化方向不是“越复杂越好”,而是“按场景做取舍”。虚拟机环境本来就有宿主机资源兜底,系统层面的优化重点应当放在IO调度、网络模型和内存回收上,没必要为了跑分去动内核编译参数。open-vm-tools装好、Tuned设为virtual-guest、磁盘挂载加noatime,这三件事做完,虚拟机日常体感已经明显比刚装完时顺不少。
最后再分享一个小技巧:RHEL9.7安装界面卡住时,可以按Ctrl+Alt+F2切换到辅助控制台查看安装日志,里面会滚动输出Anaconda的详细报错信息,比对着黑屏猜原因高效得多。安装完成后如果哪天系统启动卡在某个服务,也可以按Ctrl+Alt+F2进入tty2查看日志,这个习惯能让你排错速度快一倍。RHEL9.7虚拟机搭建优化这件事,说到底就是“装好系统、配好源、调好内核参数、留好快照”,按这个思路走,后面再复杂的环境也没那么难。
