Ubuntu下用VirtualBox安装Windows虚拟机完整指南
2026/9/16 19:23:05 网站建设 项目流程

从一台只有 Ubuntu 的机器上硬要跑 Windows 软件这件事,这两年我折腾得不少。主力机装了 Ubuntu,日常开发、写脚本、跑容器都没问题,可总有几个绕不开的时刻:网银插件只认 IE 内核、客户发来的工程文件必须用 Windows 版工具打开、某些老旧的行业软件压根没有 Linux 版本。VirtualBox 在 Ubuntu 下装 Windows 虚拟机,就是我把这些“历史包袱”塞进一个沙盒里的标准方案。它免费、跨平台、上手门槛低,不需要单独买授权,也不会像双系统那样开机就得选半天。这篇东西就把我从零开始创建 Windows 虚拟机的完整过程、参数取舍和踩坑记录一次讲清楚,给同样被“必须用 Windows”逼到墙角的 Linux 用户一条能直接照着走的路。

先说清楚适用人群:正在用 Ubuntu、不想重装系统但临时需要 Windows 环境的朋友,或者刚接触虚拟机、对 VMware、KVM 那套配置一脸懵的新手。VirtualBox 在这类场景里是性价比最高的选择,不折腾硬件直通、不打游戏、不搞重型服务器,纯粹为了跑个 Windows 应用,它完全够用。下面内容我会从选型逻辑讲起,再一步步拆安装、创建、配置、排错,最后补充几个高阶用法,尽量做到你看完就能动手。

1. 为什么是 VirtualBox:方案选型的底层逻辑

1.1 VirtualBox、VMware、WSL、KVM,到底选谁

很多人在 Ubuntu 上想跑 Windows,第一反应是装 VMware Workstation Player,或者直接上 WSL。这几个方案我都试过,各有各的坑,但最终固定用 VirtualBox,是因为它在本机和虚拟机之间做资源共享时最顺手,而且对“虚拟化小白”极其友好。

VMware Player 免费版在 Linux 上的体验其实不差,但有两个痛点:一是它的内核模块需要跟随 Linux 内核升级重新编译,Ubuntu 每次大版本更新内核,VMware 大概率要重新装一遍 vmmon、vmnet 模块,折腾得多了你会怀疑人生;二是它的虚拟磁盘格式 VMDK 虽然通用,但和 VirtualBox 的 VDI 互转时偶尔会出些怪毛病,不如 VirtualBox 一条命令搞定。

WSL 是另一个误区。很多人觉得 WSL 能跑 Windows 程序,但 WSL2 本质是 Linux 内核,跑 Windows 桌面应用需要 WSLg,而且对 GUI 程序的支持并不完整。真实场景里,网银插件、硬件驱动、老款行业软件,在 WSL 里的兼容性都很差,更别说你还需要完整的 Windows 系统服务、启动项和安全策略。WSL 适合跑命令行工具和轻量开发环境,不适合当“Windows 替代品”。

KVM 性能确实好,结合 virt-manager 图形界面也不难用,但它对硬件虚拟化支持的要求更苛刻,显卡直通、IOMMU 分组、CPU 型号透传这些概念,能让新手在第 20 分钟就放弃。VirtualBox 的好处是“开箱即用”——安装完扩展包,USB 设备识别、剪贴板共享、拖放文件、共享文件夹全都一键开启。对于“我就想开个 Windows 跑个软件”这种需求,相比 KVM 一夜折腾,选 VirtualBox 省下的时间足够你把 Windows 都装完一遍。

1.2 版本怎么选:5.2.44 还是新版

安装 VirtualBox 时,很多人卡在版本选择上。热搜词里频繁出现 5.2.44,这其实是 VirtualBox 5.2 系列的最后一个版本,当年不少国内教程都推荐它,因为 5.2 在老旧硬件和某些国产系统上表现更稳。但对于现在的 Ubuntu(20.04 之后),我的建议很明确:不要装 5.2.44,直接装官方软件源里的最新稳定版。

为什么?5.2.44 是 2018 年的版本,它的内核模块源码对 Linux 5.4+ 之后的新内核支持不完整,在 Ubuntu 20.04、22.04 上经常出现 VirtualBox 内核模块编译失败的问题,导致虚拟机无法启动。而且 5.2 的虚拟硬件版本、USB 控制器、网络模型都偏老,创建 Win10/Win11 虚拟机时很多优化功能缺失。

正确的做法是去 VirtualBox 官网下载页 找到 Ubuntu 对应的 .deb 安装包,或者配置官方 apt 源,直接安装当前稳定版。我用的是 7.x 系列,Windows 虚拟机的执行效率、显示适配、动态内存管理都比老版本流畅不少。如果你在安装时看到 5.2.44 的提示,基本可以判定教程来源太老,跟着下面的方式换源安装就行。

注意:VirtualBox 主程序、扩展包、Guest Additions 三者版本必须严格一致,否则会出现 USB 设备无法识别、增强功能菜单置灰、虚拟显示器分辨率无法调整等问题。

2. 安装前的准备:依赖、源和扩展包

2.1 确认环境:CPU 虚拟化开关和内核版本

动手安装之前,先花两分钟确认两件事:CPU 是否开启了虚拟化支持,以及当前 Linux 内核版本。

在终端里执行:

grep -E -c '(vmx|svm)' /proc/cpuinfo

如果输出大于 0,说明 Intel VMX 或 AMD SVM 已开启;如果输出是 0,需要重启进 BIOS/UEFI,在 CPU 设置里找到 Intel Virtualization Technology 或 AMD SVM Mode,把它设为 Enabled。这一步不做的话,VirtualBox 之后创建 64 位 Windows 虚拟机时会直接提示“VT-x is not available”,哪怕你后面把硬件加速设置翻个底朝天也没用。

内核版本可以用uname -a查看,原则上虚拟化模块对新内核都有适配,但如果你用的是非常新的内核(比如 6.8+),装完 VirtualBox 之后建议重启一次系统,让 DKMS 自动重新编译内核模块,确保vboxdrv能正常加载。我见过不少人在内核升级后虚拟机直接“无法打开 /dev/vboxdrv”,其实就是没重启,模块没加载上。

2.2 从官方源安装 VirtualBox 本体

Ubuntu 自带的 Universe 源里也有 VirtualBox,但版本往往偏旧。我更推荐直接配置官方 Oracle 软件源,这样能拿到最新的稳定版和后续更新,省得半年后遇到 Bug 还要手动下载 deb 包。

按顺序执行以下命令:

wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add - echo "deb [arch=amd64] https://download.virtualbox.org/virtualbox/debian $(lsb_release -cs) contrib" | sudo tee /etc/apt/sources.list.d/virtualbox.list sudo apt update sudo apt install virtualbox-7.0

这里$(lsb_release -cs)会自动匹配系统版本代号(focal/jammy 等),不用手动改。如果提示apt-key add已弃用,直接改用:

wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo tee /etc/apt/trusted.gpg.d/oracle_vbox.asc

安装完成后执行virtualbox --help验证版本,再跑一下:

systemctl status vboxdrv

看到loadedactive,说明内核模块正常。如果这里报错,最常见的原因是 secure boot 拦住未签名的内核模块,需要去 UEFI 里关闭 Secure Boot,或者在 MOK 管理里手动签名。签名流程比较啰嗦,个人使用环境直接关掉 Secure Boot 省心得多。

2.3 扩展包和 Guest Additions 的作用

VirtualBox 扩展包(Extension Pack)和虚拟机的增强功能(Guest Additions)是两个经常被搞混的东西。简单区分:

  • 扩展包装在主机侧,提供 USB 3.0 控制器、NVMe 存储、远程桌面协议(RDP)支持,主要解决“主机和虚拟机之间的外设打通问题”。
  • Guest Additions 装在虚拟机系统内部,提供显卡驱动、剪贴板共享、拖放功能、共享文件夹、动态桌面分辨率,解决了“虚拟机和主机之间的体验同步问题”。

扩展包下载地址在官网同一个页面,选和你 VirtualBox 主程序版本号一模一样的文件,安装方式有两种:第一种是图形界面直接双击 .vbox-extpack 文件,第二种是命令行:

sudo VBoxManage extpack install Oracle_VirtualBox_Extension_Pack-7.0.x.vbox-extpack

安装完成后打开 VirtualBox 偏好设置里的扩展标签页,能看到已安装的扩展包。Guest Additions 则一会儿装完 Windows 后再进虚拟机里安装,这里先不展开。

经验之谈:扩展包和主程序版本不一致时,往往没有明显报错,但 USB 设备会一直灰色不可选。遇到这类怪问题,先查版本一致性,比瞎改配置快得多。

3. 创建 Windows 虚拟机的完整实操

3.1 虚拟机配置参数怎么定

创建虚拟机之前,先明确你要跑什么。装 Windows 只是拿来偶尔点两下“确定”按钮,和打算在里面常驻跑 Redis、Elasticsearch 之类的服务,配置思路完全不同。

我的常用参数参考如下:

配置项最低要求推荐配置备注
内存2 GB4 GB 以上不要超过主机内存的 50%,防止主机卡死
CPU 核心数2 核4 核根据主机核心数调整,别全给虚拟机
显存16 MB128 MB调大显存能提升桌面流畅度,但会占用主机内存
虚拟磁盘25 GB40-60 GB 动态分配动态分配比固定大小灵活,注意预留宿主机空间
网络模式NATNAT 或桥接看是否需要被局域网内其他设备访问

内存设置是新手最容易犯错的点。我见过有人在 8 GB 内存的笔记本上给 Windows 虚拟机分配了 6 GB,主机几乎卡死。正确逻辑是:优先保证主机的流畅运行,虚拟机内存控制在主机总内存的 1/3 到 1/2。Windows 10 在 4 GB 内存下可以正常办公和跑常见软件,想要更流畅就加到 8 GB,但前提是你主机有 16 GB 以上。

磁盘格式我推荐 VDI(VirtualBox 原生格式),动态分配。动态分配的意思是刚开始只占很小的实际空间,随着虚拟机内写入数据逐渐增长,不会一次性占满宿主机磁盘。容量按 “Windows 系统本身约 20 GB + 常用软件约 10 GB + 余量 20 GB” 来估算,40 GB 是起步,60 GB 能用得比较宽裕。

虚拟化选项里的“启用 PAE/NX”保持默认勾选,“硬件时钟返回 UTC”需要根据你的 Windows 版本调整,Windows 10 默认使用本地时间,一般不勾选这个选项,否则会和宿主机的时间互相干扰。I/O APIC 必须开启,否则 Windows 会蓝屏。

3.2 创建虚拟机到安装 Windows 的详细步骤

打开 VirtualBox,点“新建”,按下面的步骤走:

  1. 名称与系统类型:名称填 “Windows 10” 之类方便识别的名字,类型选 Microsoft Windows,版本根据你手里的镜像选(x64 或 x86)。这一步如果选错版本,后续创建磁盘格式都会默认带错。
  2. 内存大小:根据上表的推荐值设置,建议至少 4 GB。
  3. 虚拟硬盘:选“现在创建虚拟硬盘”,文件类型 VDI,存储用“动态分配”,大小按你的磁盘剩余空间设。
  4. 虚拟硬盘位置:默认放在~/VirtualBox VMs/下,如果你的 Ubuntu 根分区空间紧张,可以改到其他挂载分区。这个路径要记好,后面备份、迁移都会用到。
  5. 系统设置:创建完成后选中虚拟机,点“设置”,在“系统”标签页里调整启动顺序为“光驱优先”(虚拟光驱),把“软驱”去掉;处理器标签页里分配 2-4 核,勾选“启用 PAE/NX”。
  6. 存储设置:在“存储”标签页里,给光盘控制器挂载你的 Windows ISO 镜像。如果没有,需要先下载微软官方的 Windows 10/11 ISO 文件。
  7. 网络设置:默认 NAT 模式,适合虚拟机通过宿主机主动上网;如果不需要被外部设备访问,保持默认即可。
  8. 启动并安装:点击“启动”,虚拟机从 ISO 启动,进入 Windows 安装流程。

Windows 安装过程比较机械,按提示选择语言、输入产品密钥(可以暂时跳过)、选择“自定义安装”、把未分配空间直接下一步就行。安装过程中虚拟机会自动重启几次,这是正常现象。安装到“设置”阶段时,虚拟网卡的驱动还没装好,可能会出现无法联网的情况,等装完 Guest Additions 后驱动就会补全。

安装完 Windows 之后,第一轮建议做三件事:

  • 打开 Windows Update,把系统补丁打全,这能避免不少驱动和兼容性问题;
  • 关闭 Windows 的“快速启动”,它会导致虚拟机下次启动时无法正常挂载共享文件夹;
  • 设置控制面板的“电源选项”为高性能,避免虚拟机内系统无故休眠导致服务中断。

3.3 为 Windows 虚拟机做基础优化

Windows 虚拟机装完,别急着开始用,先做一轮基础调优,能让日常体验提升一个档次。

首先是视觉效果。Windows 10 的透明效果、动画、阴影在虚拟机里都是性能负担,右键“此电脑”进入属性,找到“高级系统设置”,在“性能”设置里选择“调整为最佳性能”。用起来丑一点,但流畅度立竿见影。

其次是虚拟磁盘压缩。动态分配磁盘的容量只会增大,不会自动回收,长此以往宿主机的磁盘空间会被大量无效文件占满。Windows 虚拟机内用系统自带工具清理掉临时文件,然后执行磁盘碎片整理,最后用 VirtualBox 的“压缩虚拟硬盘”功能:

VBoxManage modifymedium disk /path/to/windows.vdi --compact

这里有个前提:虚拟机内必须安装了 Guest Additions,否则--compact并不能正确识别空闲空间。实际压缩前,建议先用系统自带的Sysprep对 Windows 做一次“准备”,把系统状态清理干净,这样压缩后的 VDI 体积能小不少。

最后是快照策略。VirtualBox 的快照功能非常适合在 Windows 虚拟机场景里用:装好系统、打好补丁、装完常用软件并验证 OK 之后,拍一张“干净状态”快照。以后虚拟机被装坏、中毒、设置乱了,直接恢复到这个快照,比重新装一个 Windows 快得多。建议至少随时保留两个快照点,一个是“刚装完系统”,一个是“软件配置完成”。

4. 增强功能与主机互通:真正解决生产力问题

4.1 安装 Guest Additions

刚装完的 Windows 虚拟机,分辨率可能卡在 800x600,鼠标移动不顺畅,也不能和宿主机共享剪贴板。这些都是因为没有安装 Guest Additions。装它有两种路径:

  • 菜单方式:在已启动的虚拟机窗口菜单栏里,选“设备 -> 安装增强功能”,VirtualBox 会加载一个虚拟光驱镜像。
  • 命令行方式:在主机的 VirtualBox 安装目录下,找到VBoxGuestAdditions.iso文件,手动挂载到虚拟机的光驱。具体路径一般是/usr/share/virtualbox/VBoxGuestAdditions.iso

挂载后在 Windows 虚拟机里打开“此电脑”,找到 CD 驱动器(通常显示为 VirtualBox Guest Additions),双击运行VBoxWindowsAdditions.exe。安装过程中会提示是否允许驱动签名,选择始终安装。装完重启虚拟机,分辨率、剪贴板、拖放功能就都正常了。

这里提醒一句:Guest Additions 的版本必须和 VirtualBox 主程序一致,不能拿老版本的 ISO 硬塞给新版 VirtualBox,不然装完会出现开机黑屏、共享文件夹挂不上等一系列问题。升级 VirtualBox 之后,记得同步升级虚拟机内的 Guest Additions。

4.2 共享文件夹、剪贴板和拖放功能的配置

三者都是在“设置 -> 通用 -> 高级”里开启。共享文件夹我更推荐使用下面的方式:

选中虚拟机,点“设置 -> 共享文件夹”,添加宿主机的一个目录,比如~/share,勾选“自动挂载”和“固定分配”。在 Windows 虚拟机里,它会映射为一个网络驱动器(默认盘符 Z 或提示分配),之后就可以直接在 Windows 里读写该目录下的文件。这是我在两台机器之间传文件最依赖的功能,尤其是从 Windows 里把客户发来的合同导出到 Ubuntu 的目录下备份。

剪贴板和拖放功能也很重要,尤其是“双向”模式。开启后,Ubuntu 里的文件和文字可以直接拖到 Windows 虚拟机里,反之亦然。需要注意:拖放功能对大文件支持不太好,超过几百 MB 的文件还是走共享文件夹更稳。另外,不同 Linux 桌面环境对双向拖放的兼容性有些差异,GNOME 下实测没问题,KDE 偶尔会有拖放后文件为空的 Bug,碰到这种情况别纠结,切单向上传/下载试试。

4.3 USB 设备透传:打印机和 U 盘

USB 设备是 Windows 虚拟机最常见的硬需求。我经常遇到的一个场景是:在 Ubuntu 上处理完文档,要打印时却发现单位打印机驱动只有 Windows 版本——这时 VirtualBox 的 USB 透传就派上用场了。

先把打印机或 U 盘接入宿主机,然后启动 Windows 虚拟机,在虚拟机窗口底部的 USB 图标里,把设备“勾选”上去。这里分两种情况:

  • USB 2.0 设备:默认的 EHCI 控制器一般就能识别;
  • USB 3.0 设备(比如外置硬盘、U 盘):必须先在主机侧安装扩展包,然后把虚拟机设置里的 USB 控制器从“OHCI(USB 1.1)”改为“xHCI(USB 3.0)”。

热点里有人问“VirtualBox 虚拟机访问打印机”,其实走的就是这条路。需要注意两点:一是打印机如果安装了 USB 连接模式,插上主机后必须先手动选择“连接到虚拟机”,否则默认主机独占;二是读卡器、加密狗这类设备透传时,建议在“设置 -> USB 设备”里添加对应的 USB 过滤器,这样以后插入同一设备时,虚拟机启动后会自动识别并挂载,省去每次手动的麻烦。

5. 高频坑点与排查实录

5.1 开机黑屏、VT-x 不可用和内核模块问题

VirtualBox 装 Windows 虚拟机最容易踩的第一个坑,就是新建虚拟机后点击“启动”,屏幕黑屏或直接提示“AMD-V/Intel VT-x 不可用”。这个问题的核心原因八成是 BIOS 的虚拟化开关没开,前面 2.1 节已经说过检查方法,这里再补一个排查思路:

  • 如果/proc/cpuinfo里已经能看到 vmx 或 svm,但 VirtualBox 仍然报错,可能是你换了 CPU 后没重启宿主机。比如曾经在 Intel 机器上装了 VirtualBox,后来把整机换成 AMD,VirtualBox 的某些缓存配置里还残留着旧平台的设置,这种情况建议直接删掉~/.config/VirtualBox目录下的部分缓存文件,再重启 VirtualBox。
  • 还有一个少见但真实存在的坑:Ubuntu 22.04+ 默认启用了基于内核的 KVM,VirtualBox 和 KVM 用的是不同的虚拟化接口,正常情况下不会冲突。但如果你的机器上同时跑了 KVM 虚拟机,并且把 CPU 亲和性设得很严格,VirtualBox 也可能报起不来。最直接的排查方式就是暂时关掉 KVM 的虚拟机再试。

内核模块的坑则集中在vboxdrv上。如果systemctl status vboxdrv显示failed,先试:

sudo /sbin/rcvboxdrv setup

让它重新编译内核模块。如果依然失败,看看是不是先安装了新版 VirtualBox,又安装过旧版扩展包,把 DKMS 状态搞乱了。清理旧模块再重建是最省心的办法:

sudo apt remove --purge virtualbox virtualbox-dkms virtualbox-ext-pack sudo apt autoremove sudo apt install virtualbox-7.0 virtualbox-ext-pack

5.2 网络不通、端口映射和固定 IP

虚拟机装好后,最常见的问题是“NAT 模式下虚拟机可以上网,但宿主机访问不到虚拟机里的服务”。比如你在 VirtualBox 的 Windows 里启动了 Elasticsearch 或 Redis,宿主机想通过localhost:9200连接,默认 NAT 模式下是连不通的。

VirtualBox 的 NAT 模式,虚拟机好比躲在宿主机后面的一台内网机器,宿主机不能反向访问它。解决办法有几种:

  • 最简单的:改“桥接模式”。在虚拟机设置 -> 网络 -> 连接方式里,改为“桥接网卡”,这样虚拟机直接获取局域网 IP,宿主机可以像访问普通电脑一样访问它。缺点是虚拟机和宿主机在同一个局域网,可能会有大量广播流量干扰。
  • 更精细的方案:NAT 模式 + 端口转发。在 VirtualBox 设置里,找到网络 -> 高级 -> 端口转发,添加一条规则,比如把宿主机的9200转发到虚拟机的9200
VBoxManage controlvm "Windows 10" natpf1 "es_9200,tcp,,9200,,9200"

或直接在图形界面填。这样宿主机访问localhost:9200就能穿透到虚拟机里的服务。这个方案在企业里很实用,比如把 Windows 虚拟机里的旧版 SQL Server 暴露给宿主机上的应用连接,不需要它有自己的独立 IP。

固定 IP 也很重要。如果用 NAT 模式,虚拟机默认 DHCP 分配的 IP 会在重启后变化,对依赖固定端点连接虚拟机的服务很致命。在 Windows 虚拟机里,把虚拟网卡的 IPv4 协议改为手动地址(例如 NAT 网段10.0.2.0/24内,网关设为10.0.2.2,DNS 设为宿主机 IP),或者直接用桥接模式让路由器分配 DHCP 保留地址,都能解决。

宿主机访问虚拟机网站的需求,在局域网测试场景里也经常出现。虚拟机桥接网络后拿到局域网 IP,宿主机浏览器直接访问这个 IP 就能看到虚拟机里运行的前端页面,不需要额外配置。

5.3 特殊场景:ENSP 兼容、显卡直通和 Vagrant

网络设备模拟器 ENSP 对 VirtualBox 版本非常挑剔,这是华为系网工绕不开的痛。我见过不少人在 Ubuntu 里装完 VirtualBox 最新版,打开 ENSP 却发现设备起不来,报错提示版本不兼容。

直接给结论:ENSP 对 VirtualBox 的版本要求很死,通常官方文档写了某个版本,你最好就用某个版本。装完 VirtualBox 后,还要在 ENSP 里正确关联 VirtualBox 安装路径,否则设备也启动失败。这种情况下不要追新版 VirtualBox,一个稳妥的办法是保持 ENSP 官方推荐版本不动,另外创建一个单独的通用虚拟机跑普通 Windows 需求,两个版本并存也行(VirtualBox 支持多个大版本共存,只要路径不同)。

关于显卡直通,这是个热门词,但必须给大家泼冷水:消费级平台的 VirtualBox 显卡直通能力极弱,Intel 核显直通基本不可用,NVIDIA 显卡在虚拟机里装驱动也常常撞上超时保护机制。如果真要在 Ubuntu 里跑带 3D 加速的 Windows 程序,应该去研究 KVM VFIO 直通,而不是 VirtualBox。VirtualBox 能满足的场景是基础办公和 2D 应用,用不着硬啃显卡。

Vagrant 是个没怎么展开但值得提的点。它的作用是把虚拟机做成“可复现的开发环境”,通过一个Vagrantfile定义系统类型、资源大小、启动后的执行脚本。配合 VirtualBox 使用时,可以做到团队里每个人都用完全一致的 Windows 虚拟机环境,避免“我本地能跑,你那跑不了”的经典问题:

Vagrant.configure("2") do |config| config.vm.box = "bento/ubuntu-20.04" config.vm.provider "virtualbox" do |vb| vb.memory = "2048" vb.cpus = 2 end end

这个方案特别适合测试桌面应用在不同 Windows 版本上的兼容性,一套 Vagrantfile 就能连续拉起 Win10、Win11 多个虚拟机,省去重复点击界面安装的时间。不过它的学习曲线比直接用图形界面陡峭不少,适合经常要反复创建销毁虚拟机的重度用户,普通场景先用不上。

5.4 常见问题速查表

总结一下高频问题,方便大家直接对号入座:

现象最常见原因解决办法
启动虚拟机报 VT-x 不可用BIOS 虚拟化开关未开启重启进 BIOS,开启 Intel VT-x / AMD SVM
虚拟机黑屏无响应内核模块没加载 / 显存太低sudo /sbin/rcvboxdrv setup,重启后重试
虚拟机没声音Guest Additions 未装或版本不匹配重装对应版本的 Guest Additions
USB 设备无法识别扩展包未装 / USB 控制器型号不支持安装匹配版本的扩展包,切换到 USB 3.0 控制器
共享文件夹不自动挂载未启用自动挂载 / 快速启动未关勾选固定分配与自动挂载,关闭 Windows 快速启动
拖放文件失败双向模式兼容问题先试单向模式,或改用共享文件夹
虚拟机磁盘占用宿主机空间越来越大动态分配不自动回收压缩虚拟磁盘:VBoxManage modifymedium --compact
Windows 虚拟机内时间不准硬件时钟设置冲突关闭 Windows 时间同步,启用 VirtualBox 的时间同步扩展
实例访问不到虚拟机服务NAT 模式限制改桥接模式或用端口转发

6. 后续还可以扩展的方向

如果你按照上面的步骤完整走了一遍,此时应该已经拥有一台能正常上网、能共享文件、能识别 USB 设备的 Windows 虚拟机了。在以应用为中心的日常场景里,这套方案可以稳定运行几个月甚至半年不用动它。

再往后可以探索的方向,一个是快照和备份策略的优化。VirtualBox 支持对虚拟机做完整导出(OVA 格式),导出的文件可以拷贝到另一台 Linux 机器上直接导入使用,这在换电脑、迁移服务器时非常省事。建议每个季度导出一次,保留最近两三个版本,防止虚拟机文件意外损坏后难以恢复。

还有一个玩法是直接把 Windows 虚拟机的启动模式改为“无界面启动”。命令行执行:

VBoxManage startvm "Windows 10" --type headless

虚拟机在后台运行,没有窗口,但服务和服务端口都会正常生效。这对跑一些需要在 Windows 环境里常驻的服务非常合适。想看界面时再用“显示”里的“分离模式”附加到虚拟显示器。配合端口转发,一台 Ubuntu 机器就能同时兼任 Linux 服务和 Windows 服务两端,不用再单独备一台 Windows 物理机,整个机房空间和功耗都能省下来。

我个人在实际操作中的体会是,VirtualBox 装 Windows 虚拟机最关键的不是安装过程本身,而是前期想清楚“我要拿它干什么”。如果只是偶尔跑个软件,4 GB 内存加 40 GB 磁盘就够了;如果要拿它当常驻服务用,分配资源和网络规划就得多花心思。另外一点,Windows 虚拟机里的系统更新不要落下,很多看似莫名其妙的卡顿,其实是 Windows 自身在后台疯狂更新导致的。建议把 Windows Update 设为“手动”或限定在夜间时段运行,省得每次打开虚拟机都在转圈圈。把虚拟机当作一个“可以随用随开、坏了就回滚”的沙盒,心态会轻松很多,这比装什么虚拟机管理工具都重要。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询