Hyper-V 安装 RHEL 8.10 实战笔记
目标:在 Hyper-V 虚拟机上以最小化方式安装 RHEL 8.10,作为 7 节点应用集群(Tomcat × 2 + MongoDB × 3 + Nginx × 2)的基线系统
网络方案:Internal 虚拟交换机 + 宿主机 NAT,VM 与宿主机互通、可上外网
适用系统:Windows 11 + Hyper-V + RHEL 8.10(其他 RHEL 8.x 流程相近)
更新日期:2026-07-28
目录
一、网络方案与节点规划
本文以单节点安装为示例,聚焦"系统从零装到可登录、可上网"这条主流程。
多节点集群(多台 VM 互通、共享外网、克隆复制)不在本文范围,需要时可参考另一篇独立的 Hyper-V 集群笔记。
1.1 节点 IP 规划
7 个节点分三类服务,IP 从 192.168.100.101 顺延:
| 🖥️ 节点 | 🎭 角色 | 🌐 固定 IP | 📝 备注 |
|---|---|---|---|
| 宿主机网关 | — | 192.168.100.1 |
VM 的网关和 DNS 中转 |
| RHEL8-Node1 | Tomcat-1 | 192.168.100.101 |
Tomcat 应用节点 |
| RHEL8-Node2 | Tomcat-2 | 192.168.100.102 |
Tomcat 应用节点 |
| RHEL8-Node3 | MongoDB-1 | 192.168.100.103 |
MongoDB 节点 |
| RHEL8-Node4 | MongoDB-2 | 192.168.100.104 |
MongoDB 节点 |
| RHEL8-Node5 | MongoDB-3 | 192.168.100.105 |
MongoDB 节点 |
| RHEL8-Node6 | Nginx-1 | 192.168.100.106 |
Nginx 反向代理节点 |
| RHEL8-Node7 | Nginx-2 | 192.168.100.107 |
Nginx 反向代理节点 |
本文以
RHEL8-Node1(192.168.100.101)为基线示范完整安装流程。
其余 6 台(Node2-Node7)从 RHEL8-Node1 复制成黄金镜像后改 IP 和主机名即可。
二、准备工作
2.1 宿主机环境
| 🛠️ 项 | 📋 要求 |
|---|---|
| 操作系统 | Windows 11 Pro / Enterprise(自带 Hyper-V) |
| 内存 | 宿主机预留 ≥ 4 GB(VM 给 2 GB,宿主机日常使用还需保留) |
| 磁盘 | VM 位置所在盘预留 ≥ 50 GB(VM 40 GB + 快照/检查点冗余) |
| Hyper-V 角色 | 已启用("控制面板 → 程序 → 启用或关闭 Windows 功能"中勾选 Hyper-V) |
| 虚拟交换机 | 已创建名为 InternalSwitch 的 Internal 交换机,并配置好 NAT |
虚拟交换机和 NAT 的创建步骤较多,单独整理在集群笔记的"二、创建 Internal 虚拟交换机"和"三、配置宿主机 NAT"两节。
单节点测试时可临时用 Hyper-V 自带的Default Switch(已带 NAT),跳过这部分。
2.2 注册 Red Hat 订阅账号
RHEL 8.10 官方 ISO 下载以及后续 dnf 更新都需要 Red Hat 订阅账号。
- 打开 https://developers.redhat.com
- 点击右上角 Register 注册账号(免费)
- 登录后进入 https://access.redhat.com/management/subscriptions
- 关联一个 Red Hat Developer Subscription for Individuals(免费,最多 16 台机器)
- 记录账号用户名和密码,安装后注册订阅时会用到
没有订阅也能下载 ISO 试用,但
dnf update/dnf install会提示 "This system is not registered with an entitlement server"。
如果仅做测试不想注册,可以改用 RHEL 8 的 1:1 克隆版(AlmaLinux 8.10、Rocky Linux 8.10 等)替代,下载与安装流程基本一致。
2.3 下载 RHEL 8.10 ISO
下载入口:https://access.redhat.com/downloads/content/rhel
选择路径:
- Red Hat Enterprise Linux 8
- x86_64
- 版本选 8.10
- 推荐下载 DVD ISO(约 9-10 GB,含完整软件包,离线也能装)
| 📁 文件类型 | 📦 大小 | 📝 说明 |
|---|---|---|
| DVD ISO | ~13 GB | 推荐:完整安装介质,离线可用 |
| Boot ISO | ~1021 MB(约 1 GB) | 仅引导启动,安装时需联网下载软件包 |
ISO 类型 × 软件包组 是两个独立的维度,互不影响:
- ISO 决定"安装包从哪来"——DVD 自带全部软件包(离线),Boot 需联网下载
- 软件包组决定"系统装成什么样"——
Server无桌面,Server with GUI有 GNOME 桌面
常见组合:
| 📦 组合 | 💿 介质 | 🖥️ 软件包组 | 🎯 适合场景 |
|---|---|---|---|
| ① | DVD ISO | Server(最小化) | 推荐:一次下载,离线可用,资源占用最少 |
| ② | DVD ISO | Server with GUI | 离线装带桌面的环境 |
| ③ | Boot ISO | Server(最小化) | 磁盘紧张、网络通畅 |
| ④ | Boot ISO | Server with GUI | 想要桌面又不想下 13 GB ISO |
文档后续所有步骤都以组合 ①(DVD ISO + Server)为基础——也是 7 节点基线的推荐选择。
真正的"软件包组"选择在安装程序的 4.5 节 "软件选择"中做。
实际文件名以 Red Hat 官网为准。如果官网链接路径有变动,可以登录后从 "Downloads → Product Downloads" 进入。
下载完成后把 ISO 放到一个稳定路径(例如 D:\ISOs\Linux\RHEL\rhel-8.10-x86_64-dvd.iso),后续 Hyper-V 装载时要用。
三、创建 Hyper-V 虚拟机
3.1 图形界面方式
Hyper-V 管理器 → 右侧"操作"面板 → 新建 → 虚拟机
| 📋 步骤 | 🔧 配置项 | ✅ 值 |
|---|---|---|
| 1 | 名称 | RHEL8-Node1 |
| 1 | 位置 | D:\Hyper-V\Virtual Machines\(Hyper-V 默认) |
| 2 | 代数 | 第 2 代(UEFI 启动,RHEL 8 推荐) |
| 3 | 内存 | 2048 MB(2 GB) |
| 3 | 动态内存 | ✅ 勾选 |
| 4 | 网络 | InternalSwitch(尚未配置时可临时选 Default Switch) |
| 5 | 硬盘 | 路径 D:\Virtual Hard Disks\RHEL8-Node1\RHEL8-Node1.vhdx(先建子目录),大小 40 GB |
| 6 | 安装选项 | 以后安装操作系统(先不挂 ISO,建好 VM 再进设置装载) |
| 6 | 摘要核对 | 确认无误后点 完成 |
关于"默认路径":
D:\Hyper-V\Virtual Machines\是 Hyper-V 安装时的默认位置,可在 Hyper-V 管理器 → 右侧"操作"面板 → Hyper-V 设置 → 虚拟机 中改成其他路径(如D:\VMs-Config\)。改完后 3.1 向导的"位置"步骤会默认填新路径,3.2 节的New-VM(不指定-Path)也会用新位置。
3.2 PowerShell 方式(推荐,更精确)
前置检查(避免后面报错):
# 确认虚拟交换机存在(首次创建时如果 InternalSwitch 不存在,需先按集群笔记创建)
Get-VMSwitch -Name "InternalSwitch" -ErrorAction SilentlyContinue
# 确认 VHDX 目标路径不冲突(首次创建时该文件不应存在)
Test-Path "D:\Virtual Hard Disks\RHEL8-Node1\RHEL8-Node1.vhdx" # 期望返回 False
前置检查不通过时 New-VM 会失败:
- 交换机不存在 → 报 "Virtual switch not found",见集群笔记
- VHDX 已存在 → 报 "File already exists",换个名字(如
RHEL8-Node1-test.vhdx)或先删旧文件 - VHDX 父目录不存在 → 报 "Path not found",先执行
New-Item -ItemType Directory -Path "D:\Virtual Hard Disks\RHEL8-Node1" -Force
VM 配置文件由 Hyper-V 自动管理到默认位置(
D:\Hyper-V\Virtual Machines\),无需手动建目录。
在宿主机以管理员身份打开 PowerShell,执行:
# 先建节点子目录(New-VM 不会自动创建父目录)
New-Item -ItemType Directory -Path "D:\Virtual Hard Disks\RHEL8-Node1" -Force
# 角色:Tomcat-1(见 [1.1 节](#sec11) 节点 IP 规划表)
# 创建 VM(第 2 代、2 GB 内存、40 GB 磁盘、InternalSwitch 网络)
# 不指定 -Path:VM 配置存到 Hyper-V 默认位置 D:\Hyper-V\Virtual Machines\<UUID>\
New-VM -Name "RHEL8-Node1" `
-MemoryStartupBytes 2GB `
-Generation 2 `
-NewVHDPath "D:\Virtual Hard Disks\RHEL8-Node1\RHEL8-Node1.vhdx" `
-NewVHDSizeBytes 40GB `
-SwitchName "InternalSwitch"
# 装载安装 ISO 到 DVD 驱动器
Add-VMDvdDrive -VMName "RHEL8-Node1" `
-Path "D:\ISOs\Linux\RHEL\rhel-8.10-x86_64-dvd.iso"
验证创建成功:
Get-VM -Name "RHEL8-Node1" | Select Name, Generation, State, MemoryStartup
预期输出:
Name Generation State MemoryStartup
---- ---------- ----- -------------
RHEL8-Node1 2 Off 2147483648
3.3 关闭安全启动
Linux 发行版通常没有微软签名的安全启动密钥,开启安全启动会导致无法引导。
集群场景下 Node2/Node3 复制 VM 后同样需要关闭。
图形界面:
- 右键
RHEL8-Node1→ 设置 - 左侧选 安全
- 取消勾选 启用安全启动
- 点击 应用 → 确定
PowerShell 方式(更可靠):
Set-VMFirmware -VMName "RHEL8-Node1" -EnableSecureBoot Off
验证:
Get-VMFirmware -VMName "RHEL8-Node1" | Select SecureBoot
应显示:
SecureBoot
----------
Off
四、安装 RHEL 8.10
4.1 启动安装程序
- Hyper-V 管理器 → 选中
RHEL8-Node1→ 右侧 启动 - 右侧 连接 进入控制台
- 等待 ISO 引导,出现 RHEL 安装菜单:
Install Red Hat Enterprise Linux 8.10
Test this media & install Red Hat Enterprise Linux 8.10
Troubleshooting -->
- 直接按 回车 选第一项(默认安装)
如果出现 "Start PXE over IPv4" 错误并回到引导菜单,说明安全启动没关好,回到 3.3 节 检查。
控制台鼠标如果不灵敏,可以在 查看 菜单中调整缩放比例;最小化安装的鼠标问题影响较小。
4.2 本地化设置
进入安装主界面后,左侧依次点击以下项完成配置:
| 🔧 配置项 | ✅ 建议值 | 📝 说明 |
|---|---|---|
| 语言 | English (United States) |
装中文包后切中文更稳,避免安装阶段乱码 |
| 键盘 | English (US) |
默认即可 |
| 语言支持 | 仅 English |
装完系统后想用中文再装 glibc-langpack-zh |
装系统时选
简体中文也能装,但部分步骤(特别是含特殊符号的提示)可能显示异常。
推荐先用英文界面装完,再在系统内切语言。
4.3 安装目的地
点击 Installation Destination 进入磁盘分区:
- 选中那块 40 GB 的虚拟磁盘(通常自动识别,标记为
sda或vda) - 存储配置 选 Automatic(自动分区)
- 点击左上角 Done 返回
单节点测试用自动分区即可。
想手动分区选 Custom,常见划分:/boot(1 GB)、/(剩余空间)、swap(内存 × 1-1.5 倍)。
集群场景通常把数据单独挂盘(如/data),可在手动分区时添加。
4.4 网络和主机名
点击 Network & Host Name:
| 🔧 配置项 | ✅ 建议值 | 📝 说明 |
|---|---|---|
| 以太网开关 | ON | 默认 DHCP,装完系统再改静态 IP |
| Host Name | node1 |
短主机名,多节点时改为 node2、node3 |
| Configure → General | ✅ Automatically connect | 开机自启网络 |
点击 Apply → Done 返回主界面。
主机名建议用短名(
node1),不要带域名后缀;/etc/hosts也好维护。
集群场景下每台 VM 主机名唯一,否则后续ssh、scp会混淆。
4.5 软件选择
点击 Software Selection。"最小化安装"指的是选 Server 软件包组,与下载的 ISO 类型无关——DVD ISO 和 Boot ISO 都能做最小化安装。
本文和"带 GUI 安装"区别主要在这里:
| 🔧 配置项 | ✅ 建议值 | 📝 说明 |
|---|---|---|
| Base Environment | Server | 最小化安装,无桌面 |
| Add-ons for Selected Environment | 默认即可 | Server 环境没有必选附加项 |
可选附加项(按需勾选):
| 🧩 附加项 | 🎯 适用场景 |
|---|---|
Development Tools |
需要本地编译 C/C++、构建 RPM 包时 |
System Tools |
常用系统工具集(tar、vim、git 等基础命令更多) |
Network Servers |
把本机当服务器使用时(基础服务包) |
Server(最小化)安装 默认不包含桌面环境、LibreOffice、邮件客户端等;适合服务器、容器宿主机、集群节点。
想要带图形界面可以选 Server with GUI,多消耗约 1-2 GB 磁盘和 500 MB 内存。
选错环境也能补救:装完后用dnf group install "Server with GUI"补装桌面。
点击 Done 返回主界面。
4.6 设置 root 密码
点击 Root Password:
- 输入 root 密码两次
- 如果密码强度不足,会弹窗警告(点 Done 可强制使用弱密码)
- 点击 Done 返回
强密码建议:长度 ≥ 12 位、混合大小写 + 数字 + 符号。
想要禁用 root SSH 登录,安装完系统后可新建普通用户并加入wheel组。
4.7 开始安装
回到安装主界面,所有项前出现 ✅ 后,点击 Begin Installation:
- 进度条显示安装进度(10-20 分钟,取决于磁盘速度)
- 安装期间可以继续调整之前未完成的配置项
- 安装完成后右下角出现 Reboot 按钮
- 点击 Reboot,VM 会从虚拟硬盘启动进入登录提示符
如果重启后不进入系统而是回到安装菜单,说明 ISO 还在 DVD 驱动器里。
进入系统前先关机 → 编辑 VM 设置 → DVD 驱动器 → 选择 None,再启动。
五、安装后首次配置
5.1 配置网络(必做,先连网)
后续注册订阅、
dnf update都依赖网络——装完系统第一件事是连网。
nmcli device status
如果 CONNECTION 列是 --,说明还没有 NetworkManager 连接配置——必须先 add,再 modify,最后 up(见下方"集群节点"流程)。
情况 A:CONNECTION 列有名字(如 eth0)→ 已有连接配置,可以直接 modify + up。
情况 B:CONNECTION 列是 -- → 没有连接配置,必须先 add,再 modify,最后 up。
集群节点(推荐静态 IP)
sudo nmcli connection add type ethernet ifname eth0 con-name eth0
sudo nmcli connection modify eth0 \
ipv4.addresses 192.168.100.101/24 \
ipv4.gateway 192.168.100.1 \
ipv4.dns "8.8.8.8,114.114.114.114" \
ipv4.method manual
sudo nmcli connection up eth0
单节点测试(DHCP 更省事)
sudo nmcli connection add type ethernet ifname eth0 con-name eth0 autoconnect yes
sudo nmcli connection up eth0
如果 modify 后 up 报错
NetworkManager 状态混乱时(多见于 VM 克隆后),删除重来最干净:
sudo nmcli connection delete eth0
sudo nmcli connection add type ethernet ifname eth0 con-name eth0 \
ipv4.addresses 192.168.100.101/24 \
ipv4.gateway 192.168.100.1 \
ipv4.dns "8.8.8.8,114.114.114.114" \
ipv4.method manual
sudo nmcli connection up eth0
验证:
ip addr show eth0
ping -c 4 8.8.8.8
ping 通外网后进入 5.2 节 注册订阅。
DNS 必须用公共 DNS(8.8.8.8),不能用192.168.100.1——宿主机网关不是 DNS 服务器,无法解析域名。
多节点场景下每台 VM 改不同 IP(101/102/103),并改不同主机名(node1/node2/node3)。
5.2 注册 Red Hat 订阅
# 注册订阅(用 2.2 节注册的账号)
subscription-manager register --username <用户名> --password <密码>
# 查看可用订阅池
subscription-manager list --available --all
# 自动绑定第一个匹配的开发者订阅
subscription-manager attach --auto
# 验证
subscription-manager identity
预期输出:
system identity: <随机 UUID>
name: node1
org name: <公司或个人名>
org ID: <组织 ID>
current type: Developer Subscription
注销命令:
subscription-manager unregister && subscription-manager clean(清理本地缓存)。
5.3 更新系统
# 更新所有软件包到最新
dnf update -y
# 如果内核更新了,建议重启
reboot
首次更新可能下载 500 MB - 1 GB,取决于网络和现有软件版本。
5.4 启用 SSH
最小化安装默认包含 openssh-server 但未启动:
# 启动 SSH 服务
systemctl start sshd
# 设置开机自启
systemctl enable sshd
# 验证
systemctl status sshd
预期输出:
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since ...
修改配置后无法连接
如果改了 /etc/ssh/sshd_config(如修改 Port、PubkeyAuthentication 等)后连不上,先排查:
# 1. 测试配置语法
sshd -t
# 无输出 = 语法 OK;有报错会指出哪行
# 2. 查看启动失败日志
journalctl -u sshd -n 30 --no-pager
| ❌ 报错 | 🔍 原因 | 🛠️ 解决 |
|---|---|---|
Bad configuration option |
缩进/空格错 | 检查 sshd_config 缩进 |
Address already in use |
端口被占用 | 换端口或停占用进程 |
Bad permissions |
权限问题 | chmod 600 /etc/ssh/ssh_host_*_key |
| 改了端口后连接超时 | SELinux 拦截 / 防火墙未放行 | 见下方"两个方案" |
方案一:关闭 SELinux(省事但不安全)
# 临时关闭(重启失效)
sudo setenforce 0
# 永久关闭
sudo sed -i 's/^SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
# 彻底关:SELINUX=disabled(permissive 只警告不拦截)
生产环境不推荐关闭 SELinux——它是 RHEL 的核心安全机制,关闭后会降低系统安全性。
本地测试或单节点验证可以接受;多节点集群建议用方案二。
方案二:用 semanage 放行端口(推荐)
# 1. 安装 SELinux 策略工具(如未装)
sudo dnf install -y policycoreutils-python-utils
# 2. 添加端口规则(替换 2281 为你的实际端口)
sudo semanage port -a -t ssh_port_t -p tcp 2281
# 提示端口已存在时改用 -m:
# sudo semanage port -m -t ssh_port_t -p tcp 2281
# 3. 重启 sshd
sudo systemctl restart sshd
两个方案都要做:放行防火墙
# 永久放行新端口(指定 zone,避免不同环境默认 zone 不一致)
sudo firewall-cmd --permanent --zone=public --add-port=2281/tcp
sudo firewall-cmd --reload
# 验证(带 zone 更明确)
sudo firewall-cmd --zone=public --list-ports
ss -tlnp | grep 2281
提示:
firewall-cmd --add-service=ssh默认只放行 22 端口;改了 SSH 端口后必须用--add-port=端口/tcp显式放行。
5.5 防火墙放行 SSH
# 永久放行 SSH 服务(指定 zone,避免不同环境默认 zone 不一致)
firewall-cmd --permanent --zone=public --add-service=ssh
# 重新加载防火墙
firewall-cmd --reload
# 验证(带 zone 更明确)
firewall-cmd --zone=public --list-all
集群场景需要在宿主机上做端口转发(如把宿主机 8081 转给
RHEL8-Node1的 80),集群笔记的"八、宿主机防火墙放行"一节有详细命令。
单节点测试时可临时关闭防火墙:systemctl stop firewalld(重启后失效),方便排查网络问题。
六、批量克隆其他节点
完成第 5 章 "安装后首次配置"后,RHEL8-Node1 已具备克隆条件:系统装好、订阅注册、SSH 启用、防火墙放行、静态 IP 已配。
最佳时机:5.5 节 "防火墙放行 SSH"完成后立即复制。
7 台节点共用同一份基线(无 Tomcat / MongoDB / Nginx 等应用层服务),角色化部署在克隆后按需进行。
6.1 黄金镜像处理
让 RHEL8-Node1.vhdx 合并为可复制的完整状态:
# 1. 关闭 Node1
Stop-VM -Name "RHEL8-Node1"
# 2. 在 Hyper-V 管理器中删除所有检查点
# 选中 RHEL8-Node1 → 下方"检查点"面板 → 右键检查点 → 删除检查点
# 等待合并完成(底部有进度条)
# 3. 确认 .avhdx 已消失
Get-ChildItem "D:\Virtual Hard Disks\RHEL8-Node1\" | Where Name -Like "*.avhdx"
# 期望:没有输出
6.2 批量创建 Node2-Node7
# 7 节点配置(Node1 已存在)
$nodes = @(
@{Name="RHEL8-Node2"; IP="192.168.100.102"; Role="Tomcat-2"},
@{Name="RHEL8-Node3"; IP="192.168.100.103"; Role="MongoDB-1"},
@{Name="RHEL8-Node4"; IP="192.168.100.104"; Role="MongoDB-2"},
@{Name="RHEL8-Node5"; IP="192.168.100.105"; Role="MongoDB-3"},
@{Name="RHEL8-Node6"; IP="192.168.100.106"; Role="Nginx-1"},
@{Name="RHEL8-Node7"; IP="192.168.100.107"; Role="Nginx-2"}
)
# 源 VHDX(黄金镜像)
$sourceVhdx = "D:\Virtual Hard Disks\RHEL8-Node1\RHEL8-Node1.vhdx"
foreach ($node in $nodes) {
$destDir = "D:\Virtual Hard Disks\$($node.Name)"
$destVhdx = "$destDir\$($node.Name).vhdx"
# 建子目录 + 复制 VHDX
New-Item -ItemType Directory -Path $destDir -Force | Out-Null
Copy-Item $sourceVhdx $destVhdx
# 创建 VM(指向新 VHDX)
New-VM -Name $node.Name `
-MemoryStartupBytes 2GB `
-Generation 2 `
-VHDPath $destVhdx `
-SwitchName "InternalSwitch" | Out-Null
# 关闭安全启动 + 让 Hyper-V 重新生成 MAC(避免和 Node1 冲突)
Set-VMFirmware -VMName $node.Name -EnableSecureBoot Off | Out-Null
Set-VMNetworkAdapter -VMName $node.Name -DynamicMacAddress | Out-Null
Write-Host "完成:$($node.Name) - $($node.Role) - $($node.IP)"
}
验证:
Get-VM | Where Name -Like "RHEL8-Node*" | Select Name, State | Format-Table
期望输出 7 行(Node1 + Node2-7),全部 Off。
6.3 逐台启动 + 改 IP + 主机名 + 重新注册订阅
逐台启动(Start-VM -Name "RHEL8-Node2"),用 vmconnect 或 SSH 登录后执行(以 Node2 为例):
# 必做:改主机名
hostnamectl set-hostname node2
# 必做:改静态 IP
nmcli connection modify eth0 \
ipv4.addresses 192.168.100.102/24 \
ipv4.gateway 192.168.100.1 \
ipv4.dns "8.8.8.8,114.114.114.114" \
ipv4.method manual
nmcli connection down eth0 && nmcli connection up eth0
# 可选:重新注册订阅(见下方说明)
subscription-manager register --username <用户名> --password <密码>
subscription-manager attach --auto
Node3-Node7 同样流程,主机名/IP 改为对应值。
关于订阅:VHDX 复制会带 Node1 的订阅证书,所以 Node2-7 启动后默认已注册——
subscription-manager identity会显示和 Node1 相同的 system identity。
- 本地测试集群:7 台共享同一个订阅账号(Developer Subscription 最多 16 台),不需要重新注册
- 严格管理场景(如接入 Red Hat Satellite、Insights):每台 VM 重新注册一次,获得独立的 system identity
关于密码:VHDX 复制会带 root 密码哈希,所以 7 台默认 root 密码相同。
内网测试可以接受;对外服务前建议每台单独passwd修改。
6.4 角色化部署
基线阶段所有节点都是"空"的,按需装服务:
| 🖥️ 节点 | 🎭 角色 | 📦 推荐服务 |
|---|---|---|
| RHEL8-Node1, RHEL8-Node2 | Tomcat | Tomcat 9/10、JDK 8(≥ 1.8.0_201) |
| RHEL8-Node3, RHEL8-Node4, RHEL8-Node5 | MongoDB | MongoDB(单机或副本集) |
| RHEL8-Node6, RHEL8-Node7 | Nginx | Nginx(反向代理 / 负载均衡) |
服务层安装与配置不在本文范围。
七、验证
# 查看系统版本
cat /etc/redhat-release
# 输出示例:Red Hat Enterprise Linux release 8.10 (Ootpa)
# 查看内核
uname -r
# 验证订阅状态
subscription-manager identity
# 测试网络
ping 192.168.100.1 -c 4 # 宿主机网关
ping baidu.com -c 4 # 公网域名(验证 NAT + DNS)
从宿主机 SSH 登录测试:
ssh root@192.168.100.101
首次连接会提示确认指纹,输入
yes,再输入密码。
三步(cat /etc/redhat-release/ping 网关/ping 域名)都通过,说明安装和网络配置都正常。
八、常见问题排查
| ❌ 问题 | 🔍 原因 | 🛠️ 解决 |
|---|---|---|
| 启动后回到安装菜单 | DVD 驱动器里还有 ISO | 编辑 VM 设置 → DVD 驱动器 → 选 None |
| 报 "Start PXE over IPv4" | 安全启动没关 | VM 设置 → 安全 → 取消勾选"启用安全启动" |
dnf update 报 "This system is not registered" |
没注册 Red Hat 订阅 | 见 5.2 节,或换 AlmaLinux 8 / Rocky 8 替代 |
| 控制台鼠标点击不灵敏 | Hyper-V 集成服务未生效 | 安装完成后重启一次会自动激活;最小化安装无桌面影响较小 |
| SSH 连接被拒绝 | sshd 未启动 / 防火墙未放行 | 见 5.4、5.5 节 |
| 注册订阅失败 "Username or password is incorrect" | 账号密码错,或账号未激活开发者订阅 | 重新登录 developers.redhat.com 检查订阅状态 |
| 装中文界面部分步骤乱码 | 字符集未配置 | 改用英文界面;或装 glibc-langpack-zh 并设置 LANG=zh_CN.UTF-8 |
| VM 能 ping 宿主机但 ping 不通外网 | NAT 规则未创建 | 宿主机 PowerShell 执行 Get-NetNat 验证 InternalSwitch 是否存在 |
| 配置静态 IP 报 "eth0 不是活动的连接" | modify 前没 add 连接配置 |
先 sudo nmcli connection add type ethernet ifname eth0 con-name eth0,再 modify 和 up,见 5.1 节 |
九、命令速查
9.1 宿主机 PowerShell
# 创建 VM
New-Item -ItemType Directory -Path "D:\Virtual Hard Disks\RHEL8-Node1" -Force
New-VM -Name "RHEL8-Node1" -MemoryStartupBytes 2GB -Generation 2 `
-NewVHDPath "D:\Virtual Hard Disks\RHEL8-Node1\RHEL8-Node1.vhdx" -NewVHDSizeBytes 40GB `
-SwitchName "InternalSwitch"
# 关闭安全启动
Set-VMFirmware -VMName "RHEL8-Node1" -EnableSecureBoot Off
# 装载 ISO
Add-VMDvdDrive -VMName "RHEL8-Node1" -Path "D:\ISOs\Linux\RHEL\rhel-8.10-x86_64-dvd.iso"
# 启动 / 关闭 / 连接
Start-VM -Name "RHEL8-Node1"
Stop-VM -Name "RHEL8-Node1" -Force
vmconnect localhost "RHEL8-Node1"
9.2 虚拟机内命令
# 网络(5.1 节)
nmcli device status
sudo nmcli connection add type ethernet ifname eth0 con-name eth0
sudo nmcli connection modify eth0 ipv4.addresses 192.168.100.101/24 \
ipv4.gateway 192.168.100.1 ipv4.dns "8.8.8.8,114.114.114.114" ipv4.method manual
sudo nmcli connection up eth0
# 订阅(5.2 节)
subscription-manager register --username <user> --password <pass>
subscription-manager attach --auto
subscription-manager identity
# 包管理(5.3 节)
dnf update -y
dnf install -y <包名>
dnf search <关键词>
dnf group install "Server with GUI" # 补救:补装桌面
# 服务管理(5.4 节)
systemctl start sshd
systemctl enable sshd
systemctl status sshd
# 防火墙(5.5 节)
firewall-cmd --permanent --add-service=ssh
firewall-cmd --reload
firewall-cmd --list-all
# 主机名(6.3 节)
hostnamectl set-hostname node2
总结
| 🔢 步骤 | 🛠️ 操作 | 📌 关键点 |
|---|---|---|
| 1 | 准备工作 | 启用 Hyper-V、注册 Red Hat 订阅、下载 ISO |
| 2 | 创建 VM | 第 2 代 + 关闭安全启动 + 网络选 InternalSwitch |
| 3 | 启动安装 | 选 Server 最小化、自动分区、设主机名 |
| 4 | 配置网络 | 先 add 再 modify 最后 up,ping 通外网 |
| 5 | 注册订阅 | subscription-manager register + attach --auto |
| 6 | 更新系统 | dnf update -y |
| 7 | 启用 SSH | systemctl enable --now sshd + 放行防火墙 |
| 8 | 克隆剩余 6 台 | 删除检查点后复制 VHDX,逐台改 IP/主机名/MAC |
| 9 | 验证 | cat /etc/redhat-release、ping baidu.com、宿主机 SSH 登录 |
核心要点:RHEL 8 安装本身不复杂,四处易踩坑的是订阅账号、安全启动关闭、网络配置顺序(先 add 再 modify)、装完注册订阅。
7 节点全部用同一台基线克隆:先装好RHEL8-Node1作为黄金镜像,剩下 6 台复制后改 IP/主机名即可。
节点配置、克隆方式、SSH 互通等内容不在本文范围,可参考另一篇独立的 Hyper-V 集群笔记。
更新时间:2026-07-28
适用环境:Windows 11 + Hyper-V + RHEL 8.10

浙公网安备 33010602011771号