news 2026/11/2 13:40:11

PVE 装 Windows XP:用老硬件配置重温经典

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PVE 装 Windows XP:用老硬件配置重温经典

前段时间,我陆续在 PVE 上安装了 Debian、Arch Linux、Windows 11、FreeBSD 等系统。

折腾到这里,突然产生了一个很单纯的想法:

既然虚拟化环境都搭好了,为什么不装一台 Windows XP 怀旧一下?

Windows XP 发布于 2001 年,距离今天已经过去二十多年。

但有意思的是,真正把它装进 PVE 之后会发现:

XP 其实依然可以非常流畅地运行。

当然,前提是不要试图给它塞进太多现代虚拟硬件。

这次实验最后采用的思路非常简单:

SeaBIOS i440fx qemu32 IDE Disk RTL8139 1 GB RAM RDP

没有 VirtIO Disk,没有 QEMU Guest Agent,也没有折腾 SPICE。

最终效果反而非常舒服。


一、为什么还要折腾 Windows XP?

当然不是为了真的把 Windows XP 当作日常操作系统。

更多是几个原因。

第一,是怀旧。

Windows XP 几乎代表了整个 PC 时代非常特殊的一段记忆:

蓝天白云壁纸 经典开始菜单 Windows Media Player Office 2003 QQ Winamp Flash VC6 各种老游戏

对于很多人来说,这可能就是第一次真正长期使用 PC 的时代。

第二,是老软件兼容。

有些十几二十年前的软件、开发环境、游戏,在现代 Windows 上反而越来越难运行。

例如:

Visual C++ 6.0 早期 Delphi 老版 Office 老游戏 老驱动工具 一些 ActiveX 软件

虚拟机恰好非常适合把这些东西封存在一个独立环境里。

第三,是 PVE 已经把虚拟化基础设施准备好了。

相比为了 XP 再去找一台 Pentium 4 老电脑,创建一台虚拟机显然简单得多。


二、Windows XP 和现代虚拟机最大的区别

现在创建 Windows 11 或 Linux VM,通常会优先考虑:

UEFI Q35 VirtIO SCSI VirtIO NIC QEMU Guest Agent SPICE / QXL Balloon

但这些东西对于 Windows XP 来说反而可能成为麻烦。

Windows XP 最舒服的方式不是:

尽量给它最新的虚拟硬件。

而是:

尽量模拟一台 XP 年代真实存在的 PC。

因此这次我整体采用的是比较“复古”的配置。


三、创建 Windows XP 虚拟机

准备好 Windows XP Professional SP3 ISO 后,在 PVE 中创建 VM。

系统类型选择:

Microsoft Windows Windows XP / 2003

PVE 本身仍然保留了针对 XP/2003 的系统类型。


1. BIOS 和 Machine

建议:

BIOS: SeaBIOS Machine: i440fx

不要使用:

OVMF / UEFI Q35

Windows XP 原本就是 BIOS 时代的系统。

SeaBIOS + i440fx 是最省心的组合。


四、显卡:Default 就够了

创建 VM 时,Graphic Card 默认是:

Default

一开始我也考虑过找 Cirrus。

但当前 PVE 中已经没有必要刻意使用它。

因此最终直接保持:

Graphic Card: Default

安装过程和 XP 桌面都没有出现问题。

如果遇到显示兼容性问题,也可以尝试:

Standard VGA

这里没必要一开始就折腾 QXL。

后面会看到,我们甚至根本不需要依赖 SPICE。


五、硬盘:使用 IDE

这是 XP 虚拟机非常重要的一点。

磁盘采用:

Bus/Device: IDE

我的虚拟硬盘容量设置为:

64 GB

格式使用:

qcow2

Windows XP 原生就认识 IDE Controller,因此安装程序可以直接识别硬盘。

如果一开始使用 VirtIO SCSI,Windows XP 安装镜像通常并没有相应驱动,还需要额外加载驱动。

对于一台怀旧机来说完全没有必要。

所以:

IDE

反而是最简单的方案。


Discard 不需要开启

这里我没有开启:

Discard

XP 本身并没有现代 Windows 那样的 TRIM 支持。

因此没有必要为了一个基本不会使用的功能增加额外配置。

最终就是:

IDE Disk Discard: Off SSD Emulation: Off

把它想象成一块传统机械硬盘即可。


六、CPU 和内存

CPU 配置:

Type: qemu32 Sockets: 1 Cores: 2

内存:

1024 MB

也就是:

2 Core 1 GB RAM

对于 Windows XP 来说已经相当奢侈。

实际运行速度非常快。

没必要给:

4 Core 8 GB RAM CPU host

XP 根本利用不到,而且老系统使用现代 CPU 特性反而可能增加兼容问题。


七、网络:RTL8139

网卡选择:

Model: RTL8139 Bridge: vmbr0

而不是 VirtIO。

RTL8139 是 Windows XP 年代非常常见的网卡,XP 对它的兼容性很好。

安装完成后,网卡可以直接正常工作。

因此整套虚拟硬件实际上已经非常像一台二十年前的 PC:

CPU qemu32 RAM 1 GB Disk IDE NIC RTL8139 VGA Standard/Default VGA BIOS SeaBIOS Chipset i440fx


八、安装 Windows XP

之后正常从 ISO 启动。

熟悉的蓝色安装界面再次出现:

Windows Setup

选择硬盘、格式化 NTFS,然后开始安装。

整个过程和二十年前在真实 PC 上装 XP 基本没有区别。

区别只是:

速度快了很多。

以前安装 Windows XP 可能需要几十分钟。

现在虚拟机里磁盘、CPU 性能都远远超过那个时代的 PC。


九、设备管理器里的两个未知设备

XP 安装完成后,我检查了一下:

设备管理器

基本所有硬件都已经正常识别。

但出现了两个未知设备。

第一个硬件 ID:

PCI\VEN_1AF4&DEV_1002...

这是:

VirtIO Balloon Device

第二个:

ACPI\QEMUVGID

这是:

QEMU Virtual Machine Generation ID

它们都属于现代虚拟化环境中的设备。

而对于一台 Windows XP 怀旧机来说,实际上都没有什么必要。


十、关闭 Balloon Device

PVE VM 默认可能开启:

Ballooning Device

Balloon 主要用于动态调整虚拟机内存。

但 XP 这里只有固定:

1024 MB

根本没有动态内存的需求。

因此直接在 PVE 中关闭 Balloon Device。

关闭之后,XP 中对应的未知设备自然就消失了。


十一、关闭 VM Generation ID

另一个:

ACPI\QEMUVGID

是 VM Generation ID。

它主要用于让现代操作系统知道虚拟机发生过:

Snapshot Restore Clone Migration

之类的虚拟机状态变化。

XP 并不会真正使用它。

这个选项目前 PVE Web 页面中没有直接显示,所以需要在 PVE Shell 中修改。

假设 VMID 为:

152

先确认:

qm config 152 | grep vmgenid

然后关闭虚拟机:

qm stop 152

禁用:

qm set 152 --vmgenid 0

重新启动:

qm start 152

再次进入 Windows XP 后:

ACPI\QEMUVGID

这个未知设备也消失了。

至此设备管理器非常干净。


十二、QEMU Guest Agent 要不要装?

我的选择是:

不装。

QEMU Guest Agent 对现代 Windows/Linux VM 非常有价值。

例如:

读取 Guest IP Guest Shutdown 文件系统 Freeze PVE 与 Guest 通信

但 Windows XP 已经不属于现代 VirtIO Windows Driver 的主要支持目标。

想给 XP 安装 Guest Agent,往往还需要寻找非常旧的 VirtIO Driver 和 Guest Agent。

对于一台怀旧机而言,完全属于:

为了功能而增加复杂度。

所以这次干脆保持:

QEMU Guest Agent: Disabled

PVE 仍然可以:

启动 VM 关闭 VM 做 Snapshot 做 Backup

对我的使用没有什么实际影响。


十三、SPICE 要不要折腾?

这个问题我一开始也考虑过。

之前在 Debian、Arch Linux、Windows 11 VM 上使用 SPICE,体验确实很好。

例如:

动态分辨率 剪贴板 音频 remote-viewer

但 XP 又不同。

想要获得完整 SPICE 体验,需要寻找能够支持 XP 的旧版本:

QXL Driver SPICE Guest Tools

驱动版本和兼容性都比现代系统麻烦很多。

后来我发现:

其实根本没有必要。

因为 Windows XP Professional 自带:

Remote Desktop

也就是 RDP。


十四、开启 Windows XP RDP

进入:

我的电脑 → 属性 → 远程

勾选:

允许用户远程连接到这台计算机

然后确保 Windows Firewall 中允许:

远程桌面

或者确认 TCP 3389 已经监听:

netstat -an | find "3389"

正常会看到:

0.0.0.0:3389

十五、一个容易踩的小坑:账户必须有密码

我第一次通过 Remmina 登录时遇到了:

用户名或密码错误

一开始还以为是:

WORKGROUP Domain 用户名格式

的问题。

实际上原因非常简单:

Windows XP 本地账户没有设置密码。

Windows XP 默认禁止空密码账户通过 RDP 远程登录。

给用户设置密码后:

用户名 密码

直接登录即可。

甚至不需要:

COMPUTERNAME\username

用户名本身就可以正常使用。


十六、Ubuntu 使用 Remmina 连接 XP

我的主力机是 Linux,因此直接使用:

Remmina

协议:

RDP

服务器填 XP IP:

192.168.x.x

然后:

Username: pveuser Password: ******

即可连接。

Windows XP 的 RDP 客户端体验让我有些意外。

它比我预想中好很多。

鼠标非常流畅,窗口刷新也明显比 noVNC 更舒服。

所以最后我的方案变成:

PVE noVNC ↓ 安装 / 故障排查 RDP ↓ 日常使用

这样甚至都不需要 SPICE。


十七、RDP 还能直接传声音

更加意外的是:

RDP 甚至已经解决了声音问题。

在 Remmina 中编辑连接,在高级设置里将声音设置为:

Sound: Local

重新连接 XP。

然后 Windows XP 中会出现类似:

Microsoft RDP Audio Driver

的音频设备。

XP 中播放:

Windows XP Startup.wav

声音会直接从 Ubuntu 主力机扬声器播放出来。

也就是说:

Windows XP ↓ RDP Audio ↓ Remmina ↓ Ubuntu ↓ Speaker

这一点非常舒服。

甚至没有必要再给 PVE VM 添加:

AC97

虚拟声卡。


十八、最后采用的配置

最终这台 XP VM 非常简单:

OS Windows XP Professional SP3 BIOS SeaBIOS Machine i440fx CPU qemu32 1 Socket 2 Core Memory 1024 MB Disk IDE 64 GB qcow2 Network RTL8139 Graphic Default Balloon Disabled VM Generation ID Disabled QEMU Guest Agent Disabled SPICE Not Used Remote RDP

虚拟机结构可以简单理解为:

Proxmox VE │ ┌─────────┴─────────┐ │ │ SeaBIOS i440fx │ Windows XP SP3 │ ┌──────┼──────┐ │ │ │ IDE RTL8139 VGA │ │ Disk vmbr0 │ LAN │ Ubuntu │ Remmina │ RDP ┌───┴────┐ Video Audio

它并没有使用多少现代虚拟化特性。

但这恰恰是关键。


十九、老系统其实不一定需要“现代化”

折腾完成以后,我最大的体会反而是:

对老系统来说,最好的虚拟机配置并不一定是最新的虚拟硬件。

Windows 11 可以:

VirtIO QEMU Guest Agent SPICE QXL UEFI Q35

但 Windows XP 更适合:

IDE RTL8139 SeaBIOS i440fx RDP

这和真实硬件其实是一样的。

很多时候,兼容性不是通过不断增加组件解决的。

而是:

尽量减少系统不认识的东西。

最终甚至把:

Balloon VMGenID QEMU Guest Agent SPICE

都去掉了。

反而得到了一台非常干净的 Windows XP VM。


二十、Windows XP 还能用来干什么?

当然,我不会建议把 Windows XP 当作现代日常操作系统。

毕竟它已经停止安全更新很多年。

但作为隔离的虚拟机,它依然非常适合:

老游戏 老软件 Visual C++ 6.0 Office 2003 老版浏览器测试 老 Windows 软件兼容实验 软件考古 怀旧

尤其配合 PVE:

Snapshot Backup Clone

随便怎么玩都不怕。

软件搞坏了:

Rollback

即可。

这甚至比二十年前真正使用 XP 更舒服。


写在最后

二十多年前,一台能流畅运行 Windows XP 的电脑可能意味着:

Pentium 4 512 MB / 1 GB RAM IDE HDD 百兆网卡 CRT 显示器

今天它只是 PVE 中一个:

1 GB RAM 2 Core 几十 GB Disk

的小虚拟机。

但当熟悉的:

Windows XP

启动音乐再次从 RDP 中传出来时,还是会有一种非常奇怪的感觉。

技术已经跨过了很多代。

但有些东西一打开,

还是一下子回到了二十年前。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/1 2:52:44

(undone) 解析 qemu-6.0.0 源码 (4) 添加 niubi board - 1

添加 niubi board 根据上一节,已知 -M help 代码执行在: qemu-6.0.0/softmmu/vl.c : machine_parse我们看看源码: static MachineClass *machine_parse(const char *name, GSList *machines) {MachineClass *mc;GSList *el;if (is_help_optio…

作者头像 李华
网站建设 2026/11/1 13:48:35

2026大厂AI薪资大起底:收藏!普通研发40万,Agent开发狂撒80万年薪

文章揭示了2026年大厂AI薪资现状:普通研发岗薪资趋稳,字节、腾讯、阿里等40万左右,但内卷严重;AI研发领域高薪集中,腾讯、阿里、华为等顶级Offer达80万-220万,主要面向大模型基模和算法科学家。文章指出AI …

作者头像 李华
网站建设 2026/11/1 10:16:07

Java实现RTP客户端:协议解析、音视频组帧与避坑指南

简介:面向Java开发者的RTP实时传输协议学习资料包,内含jlibrtp-0.2.2开源库及其完整示例源码,重点演示了RTP客户端与服务端的实现方式。资源覆盖RTP数据包结构、RTCP控制报文、会话管理(SSRC设置、网络参数配置)等核心…

作者头像 李华