本地折腾 Linux 这些年,被问得最多的问题就是:VirtualBox 上装 redhat-Linux 到底怎么弄?问的人里既有备考 RHCSA 的新人,也有想在自己电脑上搭个 Linux 环境写脚本的开发者,还有被公司要求熟悉 RHEL 的运维同学。其实这套流程本身并不复杂,难点在于安装过程中有不少“官方文档里不写、教程里一带而过”的小细节——版本选错、扩展包没装、虚拟化开关没打开、订阅没注册,随便遇到一个都能卡一晚上。
所以这篇我打算按自己平时装机的顺序来,把每一步该做什么、为什么这么做、出了问题怎么排查,全部摊开讲。目标只有一个:让你照着操作,一次能把 RHEL 跑起来,并且后续还能正常装软件、做实验、拍快照,不留下烂尾环境。
1. 选型阶段别轻率:VirtualBox 版本、扩展包与宿主机的虚拟化开关
1.1 为什么本地学 RHEL 我首选 VirtualBox
网上虚拟化工具不少,VMware Workstation、Hyper-V、Parallels Desktop 都很常见,但我自己常年把 VirtualBox 当成“本地实验环境首选”。原因很实际:
- 免费且开源,没有授权焦虑,给同事推荐时也不用解释什么“个人版”“商业版”的区别。
- 跨平台,Windows、macOS、Linux 宿主机都能跑,统一操作习惯。
- 快照功能非常实用,RHEL 里做破坏性实验(改 SELinux、练 LVM、折腾内核参数)时,一键回滚真的能救命。
- 导出导入 OVA/OVF 方便,环境做错了可以整个删掉重来,不影响宿主机。
对比起来,VMware Workstation 在 Windows/Linux 上体验也很好,但商业授权和体积都偏重;Hyper-V 虽然 Windows 自带,但管理界面和网络模型对新手来说更绕;WSL 又只是一个兼容层,不是完整内核,跟“正经 RHEL 服务器环境”有差距。所以新手入门、备考、日常测试,VirtualBox 这套组合最稳。
1.2 下载 VirtualBox 时顺手把扩展包一起下了
去 Oracle VirtualBox 官网下载当前稳定版即可。Windows 用户安装时注意,安装过程会短暂禁用网络并安装虚拟网卡驱动,属正常现象;macOS 用户若提示“无法验证开发者”,到系统设置里允许打开始终打开。装完主程序后,再去下载同一版本的 Extension Pack,版本号必须完全一致,否则加载时会报错。扩展包里包含 USB 3.0 控制器、虚拟远程显示、磁盘加密、NVMe 支持等能力,装 RHEL 虽然用不到全部功能,但后面想挂载 USB 设备拷贝数据时就会用到,建议一步到位。
这里顺便提醒一句:搜索 VirtualBox 的时候容易撞见一些名字里带 “Virtual Box” 的其他工具,比如 Enigma Virtual Box 这类 Windows 应用虚拟化封装工具,跟 Oracle 的虚拟机软件不是一回事,看到界面风格/publisher 不对就果断关掉,别下错。
1.3 先把虚拟化开关确认好,不然装一半会怀疑人生
创建虚拟机之前,先确认宿主机 CPU 的虚拟化是否已经开启。Intel 平台对应 VT-x,AMD 平台对应 AMD-V。
Windows 上最简单的确认方式:
- 打开任务管理器 → 性能 → CPU → 看“虚拟化”一栏是否显示“已启用”。
也可以在 PowerShell 里执行:
(Get-CimInstance Win32_Processor).VirtualizationFirmwareEnabled如果返回 False,需要重启电脑进 BIOS/UEFI,找到 Intel Virtualization Technology / SVM Mode 之类的选项并打开。这一步没做的话,创建完虚拟机一启动就可能报VT-x is not available或直接黑屏,非常打击新手。
还要注意一个隐藏坑:Windows 的 Hyper-V、内核隔离(内存完整性)、WSL2 这些特性会和 VirtualBox 抢占虚拟化能力。VirtualBox 7.x 版本做了“Hyper-V 共存”兼容,通常能跑,但某些电脑上依然会出现启动虚拟机崩溃、蓝屏、性能骤降的情况。如果你电脑上开着 Hyper-V 或内核隔离,并且 VM 启动有诡异问题,可以临时关闭 Hyper-V 相关功能或内存完整性再试。学习阶段,环境干净比什么都重要。
提示:如果你本身是在另一台虚拟机里再装 VirtualBox,记得在上级虚拟机的“处理器”设置里开启嵌套虚拟化(Nested VT-x/AMD-V),否则 VM 内部的虚拟化会失效。
2. 先搞明白要装哪一种 Red Hat Linux:版本、订阅与 ISO 获取
2.1 RHEL 不等于 Fedora,也不等于 CentOS Stream
很多人把 “redhat-Linux” 当成一个宽泛称呼,但严格来说,这个标题下我们应该装的是 Red Hat Enterprise Linux,也就是 RHEL。它和 Fedora、CentOS Stream、Rocky Linux、AlmaLinux 的关系很简单:
| 发行版 | 定位 | 适合场景 |
|---|---|---|
| Fedora | 红帽系的“尝鲜版”,新内核新特性迭代最快 | 桌面体验、开发新特性 |
| RHEL | 企业级稳定发行版,长期支持,红帽官方维护 | 生产环境、企业服务器、RHCSA/RHCE 认证 |
| CentOS Stream | 滚动预览版,介于 Fedora 与 RHEL 之间 | 想提前体验接近 RHEL 的内容 |
| Rocky / AlmaLinux | RHEL 重建版,兼容 RHEL 但无红帽品牌与商业支持 | 不想买订阅又想兼容 RHEL 的服务器 |
既然题目是 redhat-Linux,我默认以真正的 RHEL 为目标系统来操作。你如果只是想体验命令和运维流程,装 Rocky/AlmaLinux 也能跟到大部分步骤,但软件仓库来源和订阅机制会有差异,别混着看。
2.2 版本怎么选:新学直接上 RHEL 9
RHEL 目前主流是 9.x 系列,8.x 已进入生命周期维护后期。如果你是新手,没必要再从 8 开始学,直接装最新的 RHEL 9.x,无论是软件源、SELinux 行为,还是 RHCSA/RHCE 考试目标,都以 9 为准。RHEL 9 默认文件系统是 XFS,软件包管理是 dnf,内置 AppStream 与 BaseOS 两个仓库体系,这些概念都是当前运维面试的重点。
ISO 镜像有几种:
- DVD ISO:包含完整软件包,大约 5-6GB,适合离线安装,推荐使用。
- Boot ISO:很小的引导镜像,安装时需要从网络仓库拉取软件包,对新手不友好。
在红帽官方网站注册一个账号后,进入 Red Hat Enterprise Linux 下载页面,选择对应版本的Red Hat Enterprise Linux 9.x Binary DVD下载即可。这个下载过程需要登录,因为官方要记录订阅授权。无关账号归属,纯学习用个人邮箱注册即可。
下载完建议校验 SHA256,尤其你如果从非官方渠道拿到 ISO:
Windows 下:
Get-FileHash .\rhel-baseos-9.4-x86_64-dvd.iso -Algorithm SHA256Linux/macOS 下:
shasum -a 256 rhel-baseos-9.4-x86_64-dvd.iso比对官网给出的校验值,确保文件完整。这一步能避免安装中莫名出现软件包损坏的问题。
2.3 订阅制要理清楚:不注册也能装,但别指望长期用
RHEL 不是免费系统,但红帽提供了几个合法免费途径:
- 个人开发者订阅:免费,可以用于开发学习环境。
- 60 天评估订阅:临时测试够用。
- 生产环境:需要企业采购订阅。
安装系统本身不会被强制要求先输订阅,但装完系统后,如果你执行dnf install想装软件,就会因为仓库未启用而失败。那时候就需要用subscription-manager注册并 attach 授权,详见第 5 章。所以这里先把预期说清楚:想要完整体验 RHEL 的软件仓库,免费注册开发者订阅是最值得的路径。
3. 虚拟机创建参数详解:从内存、磁盘到网卡的一次性设置
3.1 新建虚拟机向导每一步的推荐值
打开 VirtualBox,点击“新建”,按下面的参数填写:
| 项目 | 推荐配置 | 说明 |
|---|---|---|
| 名称 | RHEL9-Lab | 可自定义 |
| 类型 | Linux | 固定选择 |
| 版本 | Red Hat (64-bit) | 如果下拉菜单里找不到这个选项,先检查你的 VirtualBox 是否太旧 |
| 内存大小 | 4096 MB | 最低 2048 MB,图形桌面建议 4096 MB |
| 处理器 | 2 核 | 1 核也能跑,但磁盘和桌面响应会慢 |
| 显存 | 128 MB | 在“显示”设置中调整,GNOME 桌面需要 |
| 虚拟硬盘 | 创建虚拟硬盘,VDI,动态分配 | 容量 25GB 起 |
向导默认建议的 10GB 磁盘在小规模实验下够用,但 RHEL 9 带图形界面、装完基础软件后很容易就占用 8-10GB,再跑一段时间日志和缓存就可能告急。我推荐直接给到 25GB,后面省心。
3.2 挂载 ISO 和必须检查的虚拟机设置
新建完虚拟机不要急着开机,先进入“设置”做三件事:
- 存储:选中光驱控制器里的 Empty,点光盘图标,选择下载好的 RHEL DVD ISO。
- 系统:把启动顺序调整为“光驱”最优先,硬盘第二;如果有软驱选项直接去掉。
- 显示:显存拉到 128MB,可以勾选“启用 3D 加速”。
网络这里暂时不动。VirtualBox 默认的 NAT 模式已经足够让虚拟机访问外网、让宿主机通过端口映射访问虚拟机,安装阶段不需要复杂网络。等你系统装好、能登进去了,再按自己的需求改桥接或 Host-Only 都来得及。
关于 UEFI 和 Secure Boot:VirtualBox 默认使用传统 BIOS 引导,这对 RHEL 9 完全没问题,新手阶段不建议额外勾选 EFI,少一个变量就少一个坑。RHEL 9 本身支持 UEFI,但那属于后面进阶再研究的内容。
3.3 动态分配盘和固定大小怎么选
VirtualBox 新建磁盘时会问“动态分配”还是“固定大小”,新手容易纠结。简单说:
- 动态分配:先按你设置的上限创建一个小文件,随着虚拟机里实际写入数据慢慢变大。
- 固定大小:创建时就一次性占满宿主机磁盘空间。
固定大小在随机读写性能上略好,因为磁盘文件连续,宿主机文件系统不需要频繁扩展;动态分配最大优势是省空间,25GB 的配置可能实际只占用 5GB 文件空间。本地学习环境,动态分配完全够用,而且后面还可以用命令行扩容虚拟磁盘。唯一要提醒的是:动态磁盘只增不减,哪怕你在虚拟机里删了大量文件,vdi 文件也不会自动变小,想要瘦身需要专门的压缩操作,我在第 6 章会提到。
4. 进入 Anaconda 安装界面:关键配置项逐一讲解
4.1 启动安装程序并选对第一项
点击 VirtualBox 的“启动”,虚拟机从光驱引导后会出现 RHEL 安装菜单。这里有三个常见选项:
- Install Red Hat Enterprise Linux 9.x
- Test this media & install Red Hat Enterprise Linux 9.x
- 还有若干救援/故障排查选项
直接用方向键选第一项“Install”,不用选“Test this media”。那个介质测试会把 5-6GB 的 ISO 完整读完一遍,特别浪费时间,而且你已经校验过 SHA256,没必要再测一遍。按 Enter 后屏幕会滚过一堆内核日志,随后进入安装程序语言选择界面。
语言这步我建议选英文(English)。原因是:RHEL 的报错信息、日志、官方文档绝大多数都是英文,命令行里 grep 关键词也是英文;中文界面虽然看着亲切,但后续遇到问题,你对着英文报错去搜资料会更顺畅。当然,如果对英文界面实在发怵,选简体中文也一样能装,系统内部功能和软件包没有差别,只是在界面上展示不同。
4.2 安装信息摘要里的几个决定性配置
进入安装主界面后,会看到“安装信息摘要”页面,必须逐项确认:
时间和日期(Time & Date):区域选择你所在地,比如中国标准时间 UTC+8。务必开启网络时间同步,否则后面 dnf 去访问红帽仓库时,证书校验会因为系统时间和真实时间偏差太大而失败。
键盘布局(Keyboard):默认 English (US),不需要改。
软件选择(Software Selection):这里最关键。新手建议选
Server with GUI,带 GNOME 图形桌面,能直观看到桌面效果,操作学习成本低。如果你目标明确要当服务器管理员,也可以选Minimal Install,只装命令行,更贴近生产环境但也更枯燥。两者之后都可以通过dnf groupinstall补装,不用怕选错。安装目的地(Installation Destination):直接用“自动配置”即可,底层是 LVM + XFS,这是 RHEL 默认且推荐的分区方案。如果想手动分区,推荐下面这个结构:
- /boot:1GB,存放内核和引导文件。
- swap:4GB,内存不够时做交换空间。
- /:剩余空间,用 LVM 管理,逻辑卷名如 rhel/root。
新手阶段真的建议自动分区,等学完 LVM 再手动折腾也不迟。
Kdump:默认开启会预留一部分内存,学习环境下可以直接点进去关闭,省下几百 MB 内存。
网络设置(Network & Host Name):把有线的开关拨到 ON,让它通过 DHCP 自动获取 IP;顺手设置一个好记的主机名,比如
rhel9-lab。Root 密码与用户创建:设置一个你能记住的强密码;同时创建一个普通用户,勾选“为这个用户设置管理员权限”,等价于把用户加入 wheel 组,后面用
sudo方便很多。
4.3 安装中与重启后的收尾动作
点击“开始安装”后,安装程序会拷贝软件、配置引导程序。这时候可以喝杯水等几分钟。安装完成后点击“重启”。
重启前一定要从虚拟机里移除 ISO 镜像,否则再次开机时可能又进入安装菜单。方式很简单:VirtualBox 菜单栏 → 设备 → 光盘驱动器 → 移除虚拟光盘。也可以在虚拟机关闭状态下,到“设置 → 存储”里把光驱里的磁盘映像删掉。这一步经常有人忘,结果重启后发现自己又装了一遍系统。
5. 首次启动后的初始化:订阅注册、软件源、增强功能与快照
5.1 注册订阅是软件仓库能用的第一前提
系统启动后,如果你没有订阅,dnf基本没法正常使用。执行sudo dnf repolist会发现仓库列表为空或不可用,这是 RHEL 和 CentOS 最大的区别点。
用免费开发者订阅注册的过程不复杂:
sudo subscription-manager register --username 你的红帽账号 --password 你的密码 sudo subscription-manager attach --auto sudo subscription-manager status如果当时没有在命令行里直接带账号密码,系统会交互式询问。注册完成并自动 attach 授权后,再启用官方仓库:
sudo subscription-manager repos --enable=rhel-9-for-x86_64-baseos-rpms sudo subscription-manager repos --enable=rhel-9-for-x86_64-appstream-rpms之后执行sudo dnf repolist,应该能看到 AppStream 和 BaseOS 两个仓库。这一步是整个 RHEL 体验的分水岭,注册好了,后面想装什么软件都是一行命令的事。
注意:短时间内反复
register或密码输错多次,红帽账号可能被临时锁定,所以输入密码时慢一点、看清楚再回车。
5.2 更新系统并补齐基础工具
注册完成后,第一件事就是更新系统:
sudo dnf update -yRHEL 默认安装比较精简,我习惯先补这几个工具:
sudo dnf install -y vim wget curl git net-tools lsof bash-completion顺手把主机名和时区确认一下:
sudo hostnamectl set-hostname rhel9-lab exec bash timedatectl如果时间显示不对,启动 chrony 服务:
sudo dnf install -y chrony sudo systemctl enable --now chronyd5.3 必须装的 VirtualBox Guest Additions
Guest Additions 就是 VirtualBox 的增强驱动包,不装它虚拟机也能跑,但你会一直忍受几个非常恼人的问题:屏幕分辨率固定且无法自适应、鼠标在虚拟机窗口边界处经常要按 Right Ctrl 释放、剪贴板和文件拖拽无法共享。装上之后体验会完全不同。
安装前先装编译依赖和内核头文件:
sudo dnf install -y gcc make kernel-devel kernel-headers elfutils-libelf-devel然后在 VirtualBox 菜单栏选择:设备 → 安装增强功能(Insert Guest Additions CD image)。RHEL 会把 ISO 自动挂载为光盘,也可以手动挂载:
sudo mount /dev/cdrom /mnt cd /mnt sudo ./VBoxLinuxAdditions.run安装脚本运行完成后重启虚拟机即可。如果你在这个环节遇到Could not find the kernel source tree之类的报错,十有八九是 kernel-devel 版本和当前运行内核版本不一致。先执行uname -r看内核版本,再rpm -q kernel-devel对比;对不上就sudo dnf install -y kernel-devel-$(uname -r)或重启到最新内核再装。
5.4 装完系统的第一件事:拍快照
这个建议我认为是整篇最实用的一个。紧接着在完成 subscription-manager 注册、系统更新、Guest Additions 安装之后,回到 VirtualBox 主界面,为当前虚拟机拍一个快照,命名比如rhel9-initialized。
之后你学习 SELinux、防火墙、LVM、GRUB、内核参数时,可以随便折腾,告诉自己要敢试错。把系统搞到无法开机?快照回滚,十秒钟回到干净状态。RHEL 这种企业系统越是用得小心越学不到东西,有快照兜底就能大胆操作。
快照不是无限做的,建议保留两到三个关键时间点就好,太多快照会让虚拟磁盘变慢、占满宿主机空间。
6. 高频故障排查链路:黑屏、网络、仓库与磁盘问题处理
6.1 虚拟机启动黑屏或卡在引导阶段
这是新手遇到最多的问题,现象五花八门,但排查链路基本一致:
先看宿主机 CPU 虚拟化是否开启,任务管理器 → 性能 → CPU → 虚拟化是否为“已启用”。如果不是,进 BIOS 打开 VT-x/SVM,没有这一步,后面所有努力白费。
再检查 VirtualBox 是否和 Hyper-V/VBS 冲突。Windows 用户如果开启了“内核隔离”或 Hyper-V,又遇到虚拟机启动黑屏、播报 VT-x 错误或者主程序直接崩溃,可以临时关闭再测。虽然 VirtualBox 7 官方宣称可以共存,但实际硬件的兼容性参差不齐,遇到问题先用排除法。
如果以上没问题,检查启动顺序和 ISO。确认“设置 → 系统”里光驱排在硬盘前面,且 ISO 镜像没有损坏。用第 2 章的方法重新校验一遍 ISO 是最快的。
最后看虚拟机日志:启动失败的弹窗里,点“复制”或“显示日志”,常见关键词如Critical error、VT-x is not available,把关键信息复制到搜索框基本就能定位方向。
6.2 图形界面分辨率低,鼠标被“锁”在窗口里
现象:系统能启动,GNOME 桌面正常,但分辨率永远只有 800x600 或者 1024x768,全屏后画面也不变化;鼠标移出窗口边界时会被卡住,必须按键盘上的 Right Ctrl 键释放。这就是典型 Guest Additions 没装好或者没启用。
解决办法就是第 5.3 节那套流程。装完之后重启,分辨率通常就能自适应窗口大小。如果没有,到 VirtualBox 菜单“设备 → 共享剪贴板”和“拖放”都改成双向,然后在 RHEL 里重新登录一次图形会话,让新驱动生效。
6.3 网络不通:ping 不同网关、SSH 连不上
RHEL 9 的网卡命名已经不像老教程里的 eth0,而可能是 enp0s3、ens32 这类名称。进入系统后先看当前网络状态:
ip addr ip route nmcli device status如果网卡没有被激活,NetworkManager 会显示 disconnected,手动连接:
nmcli device connect enp0s3如果用的是 NAT 模式,虚拟机和宿主机在逻辑上不属于同一网段,宿主机直接用 SSH 连接虚拟机的 IP 通常连不上,需要用端口转发。VirtualBox 可以这样设置:设置 → 网络 → 高级 → 端口转发,添加一条规则,把宿主机的 2222 端口转发到虚拟机的 22 端口,然后 SSH 宿主机地址的 2222 端口即可。这个模型很多人刚接触时容易蒙圈,记住“NAT 是虚拟机单向访问外网,外面访问虚拟机要打洞”这句话就好。
如果是桥接模式但网络依然不通,重点排查:宿主机防火墙是否放行了对应端口、虚拟机内部 firewalld 是否放行了 SSH、是否在同网段、无线网卡桥接是否被路由限制。桥接模式在办公室/校园网里经常因为网络隔离而失败,学习环境不必强求,NAT 加端口转发已经够用。
6.4 dnf 下载软件时提示仓库错误
执行sudo dnf install时报Failed to download metadata或HTTP Error 404时,按下面顺序排查:
- 是否完成了订阅注册。执行
sudo subscription-manager status,看不到 granted 状态就是没注册成功。 - 启用仓库是否正确。执行
sudo subscription-manager repos --list-enabled | grep '^Repo ID',至少要能看到rhel-9-for-x86_64-baseos-rpms和rhel-9-for-x86_64-appstream-rpms。 - 系统时间是否准确。证书校验对时间敏感,
date查看时间,不对就配置 chrony。 - 网络能否访问红帽仓库。在虚拟机里
ping access.redhat.com不一定通(可能禁 ICMP),改用dnf repolist看是否卡在连接阶段。
有些朋友为了离线路安装,会用本地 ISO 做仓库,这类情况重点检查挂载路径和 repo 文件里的baseurl是否对得上。出问题时用dnf repolist --verbose可以看到每个仓库实际访问的 URL,比盲猜高效得多。
6.5 磁盘空间写满:从 VirtualBox 到 LVM 的完整扩容链路
学习过程中经常会把磁盘塞满,尤其是做数据库、日志类实验的时候。扩容要分两层处理:先扩大虚拟磁盘文件,再扩大系统内的 LVM 分区。
第一步,关闭虚拟机,回到 VirtualBox 主界面,在虚拟机设置里修改磁盘大小,或者用命令行:
VBoxManage modifymedium disk "C:\Users\你的用户名\VirtualBox VMs\RHEL9-Lab\RHEL9-Lab.vdi" --resize 40960注意--resize的单位是 MB,40960 表示 40GB。这个操作只能调大,不能调小,操作前最好确认一下当前空间实际使用量。
第二步,重新启动虚拟机,查看分区布局:
lsblk通常磁盘设备是 /dev/sda,根分区是 LVM 卷组里的逻辑卷。如果 /dev/sda 的第 3 个分区是 LVM 物理卷所在分区,依次执行:
sudo growpart /dev/sda 3 sudo pvresize /dev/sda3 sudo lvextend -l +100%FREE /dev/rhel/root sudo xfs_growfs /最后一条xfs_growfs是针对 XFS 文件系统的在线扩容命令。RHEL 默认根文件系统是 XFS,不用重新挂载就能扩容。做完再df -h就能看到空间变大了。
提示:XFS 文件系统只能扩不能缩,分区前想清楚空间规划。动态虚拟磁盘也一样,扩容容易,缩容几乎不可能。
6.6 几个容易忽略的日常小坑
| 现象 | 可能原因 | 解决办法 |
|---|---|---|
| USB 设备插入虚拟机没反应 | 未安装 Extension Pack | 安装对应版本扩展包,并在 VM 设置中启用 USB 3.0 控制器 |
| 共享剪贴板不生效 | Guest Additions 未装或功能未开启 | 设备 → 共享剪贴板 → 双向,重启虚拟机 |
| 虚拟机 vdi 文件越来越大 | 动态磁盘只增不减 | 在虚拟机内运行sudo fstrim /后关机,用VBoxManage modifymedium disk ... --compact瘦身 |
| 安装时界面没显示“Red Hat (64-bit)” | VirtualBox 版本过旧或虚拟化未开启 | 升级 VirtualBox,确认 BIOS 虚拟化开关 |
| 普通用户无法 sudo | 安装时未加入 wheel 组 | 用 root 登录后执行usermod -aG wheel 用户名 |
装过太多台 RHEL 之后,我自己的固定流程已经变成:下载主程序时顺手把扩展包也下了,创建完虚拟机先拍一个空机快照,装完系统、注册订阅、装好增强功能之后再拍第二个快照。后面所有学习实验都在这两个快照之间来回折腾。备考 RHCSA 或者熟悉企业运维的朋友,也可以每天在虚拟机里重新从零安装一遍,把这套流程练成肌肉记忆,比单纯背文档有用得多。VirtualBox 和 RHEL 的版本都会不断更新,界面细节偶尔有差异,但只要核心思路清晰,那些变化都只是小问题。