虚拟机里跑 Ubuntu,是我这几年给身边人推荐 Linux 入门路径时最常用的一句话。你不需要单独买一台电脑,也不用承担双系统引导出问题把本机搞崩的风险,只要宿主机是 Windows,装一个虚拟机软件,再把 Ubuntu 的镜像文件拖进去,十几分钟就能拥有一套完整独立的 Linux 环境。这篇文章我会按“准备-安装-配置-排错-进阶”这条线走,把虚拟机 + Ubuntu 从零到能用讲透,特别适合想学 Linux 又怕折腾坏主力机的同学,也适合需要在 Windows 上跑服务端开发环境的开发者。
1. 方案设计与前置准备
1.1 为什么是“虚拟机 + Ubuntu”
很多朋友问我入门 Linux 的第一件事是做什么,我以前也踩过双系统的坑:装到一半找不到引导、Windows 启动项丢了、装完了进系统黑屏,折腾一次少则半天多则一天。相比之下,虚拟机方案省心太多了。你只是在一台物理机上用软件模拟出一台虚拟电脑,在这台虚拟电脑里安装 Ubuntu 系统,宿主机 Windows 毫无损伤,装坏了直接删除虚拟机文件重新来过,没有任何心理负担。
既然要用虚拟机,那就面临工具选型。市面主流是 VMware Workstation、VirtualBox、Hyper-V 这几个,我个人的建议是新手优先 VMware Workstation。VMware 的虚拟硬件兼容性、图形加速、USB 直通、网络模式体验都更成熟,而且现在 VMware Workstation Pro 17 已经对个人用户免费了,直接去官网注册个个人账号就能拿到许可证,不需要到处找破解。VirtualBox 免费开源、跨平台,也能用,但在我实际测试里,共享文件夹、拖拽文件这些小功能经常要额外安装增强功能,偶尔还有版本兼容问题;Hyper-V 是 Windows 自带的,最省事,但管理界面偏服务器风格,和 VMware 交叉使用还容易出现虚拟化层的冲突。所以,对大多数人来说,VMware Workstation 是一个更不容易卡壳的选择。
如果你是服务器运维方向,不想装图形界面,后面我会提到 Ubuntu Server 的差别;如果你只是想日常体验、写写代码、学命令,Ubuntu Desktop 就是本文重点。
1.2 版本选择与官方镜像下载
这一节看上去只是下载,但很多人就在这里犯迷糊。去 Ubuntu 官网下载镜像时,会有很多版本号:20.04、22.04、24.04,还有带年月日的小版本号 24.04.2,以及非长期支持版本 24.10、25.04 之类的。Ubuntu 的版本号其实就代表发布的年月:24.04 就是 2024 年 4 月发布的。带 LTS 字样的属于长期支持版本,每两年出一个,官方维护好几年;不带 LTS 的属于短期版本,维护周期短,不太适合拿来搭环境。所以我通用的建议是:别追新也不守旧,选最新的 LTS,目前就是 24.04。如果看到有人提“Ubuntu 26.04”,那不是现在的版本,26.04 预计在 2026 年 4 月发布,别被标题党带偏了。
然后是选 Desktop 还是 Server。Desktop 自带 GNOME 图形界面,适合新手学习和日常办公;Server 没有桌面,只保留命令行,占用资源少,适合跑 Nginx、数据库、Docker 这类服务。如果你装虚拟机主要是为了做 Web 开发、搭测试环境,Server 版更轻快;如果你是想把 Ubuntu 当作日常系统来体验、学操作、改配置,桌面版更直观。我见过不少新手一开始就装了 Server 版,然后卡在“没有界面不会操作”,反而不利于入门。我的建议是,如果是学习目的,先装 Desktop,后面实在有性能需求再装 Server。
镜像从哪里下?首选官方渠道 ubuntu.com/download,选对应版本的 Download 即可。但官方下载服务器在国外,国内下载速度有时比较慢,这个问题别急,国内不少高校和云厂商都维护了 Ubuntu 镜像站,比如清华 TUNA、阿里云开源镜像站,进去后找到 ubuntu-releases 目录,下载对应版本号的 ISO 文件。用这些镜像站下载的 ISO 和官网内容是一致的,校验一下 SHA256 没问题就能放心用。
1.3 虚拟硬件怎么给才合理
新建虚拟机时最常被问到的问题:内存给多少、磁盘开多大、网络选哪种。我给一个适用于大多数情况的基础配置,新手可以直接抄:CPU 给 2 核到 4 核,内存给 8GB(至少 4GB),硬盘给 80GB,网络选 NAT,虚拟化引擎全部勾上。
CPU 和内存的分配要看你宿主机有多富余。我建议的基本原则是:给虚拟机的资源不要超过物理机的一半,否则宿主机会卡到鼠标都挪不动。比如宿主机是 16GB 内存,虚拟机给 8GB 是二八分账,宿主机还剩 8GB,还能流畅跑浏览器和编辑器;32GB 内存的机器可以放心给 12GB 或 16GB。磁盘方面,VMware 默认创建 20GB 虚拟磁盘,对 Ubuntu 桌面版来说非常紧,装完系统和常用软件就占掉大半,后续扩容还麻烦,所以我建议直接把虚拟硬盘设为 80GB 起步。VMware 的虚拟磁盘默认是按需增长的,设成 80GB 并不意味着立刻占满宿主机 80GB,而是实际用到多少才占用多少,这样就不用担心磁盘空间白白浪费。
网络模式这里多说一句。VMware 主要用 NAT 和桥接,NAT 模式下虚拟机通过宿主机共享 IP 上网,宿主机可以访问虚拟机,但外部局域网里的其他电脑访问不到虚拟机,适合大多数开发和测试场景;桥接模式则是让虚拟机直接接入局域网,拥有独立的局域网 IP,看起来就像一台真实电脑,适合需要被局域网内其他设备访问的场景。新手直接用 NAT 就行,这个模式既不影响宿主机的网络,又能保证虚拟机上网。还要注意一点,如果 CPU 是 Intel 就确认“Intel VT-x/EPTI”这类虚拟化选项勾上,AMD 平台对应 AMD-V,如果 BIOS 里没开虚拟化,Windows 里面 VMware 会有明确提示,到时候进 BIOS 开启即可。
2. 创建虚拟机与系统安装全流程
2.1 新建虚拟机时的关键配置
在 VMware Workstation 主界面点“创建新的虚拟机”,会出现向导。我习惯选“稍后安装操作系统”,等虚拟硬件建好再挂 ISO 镜像,这样可以顺手检查各个硬件参数。如果直接选“安装程序光盘映像文件”,VMware 会通过简易安装模式自动配置用户名和产品类型,虽然省事但有些选项不如手动控制方便。
硬件配置向导里需要确认几个点:第一,客户机操作系统类型选 Linux,版本选 Ubuntu 64 位;第二,虚拟机名称和存放位置,我建议放到剩余空间足够大的盘;第三,处理器数量和每个处理器核心数,比如给 4 核就设成 1 个处理器、4 个核心;第四,内存设置直接拖到 8GB 左右;第五,网络类型选 NAT;第六,IO 控制器和磁盘类型用默认,磁盘类型如果可选,NVMe 更接近现在真实机器的硬件类型;第七,创建完成后在“虚拟机设置”里把 Ubuntu ISO 挂载到 CD/DVD 一栏,并勾选“启动时连接”。
这里有个很多人忽略的细节:虚拟机的“访问控制”。如果电脑有多个用户共同使用,创建虚拟机时建议启用加密,输入密码保护虚拟机;如果只是你自己用,这一步可以跳过。另外“自定义硬件”里的“显示”选项,可以勾选“加速 3D 图形”,虚拟机里跑一些轻量图形应用会更顺滑。
2.2 安装向导与分区策略
开机后虚拟机从 ISO 引导,看到 GRUB 菜单选择第一条“Try or Install Ubuntu”,随后进入安装向导。向导里有两个选项:安装时下载更新、安装第三方软件,我平时都不勾,装完系统再统一 apt 更新就好,省得安装过程长时间等待网络下载,也避免第三方软件来源不明带来不必要的风险。
图形向导里注意两件事。第一,语言选择,新手如果看不懂英文,可以先选中文,装完系统再调整,这个不影响系统本质;第二,键盘布局默认即可。到“安装类型”这步,新手直接选“清除整个磁盘并安装 Ubuntu”就好,这里的“磁盘”只是指虚拟磁盘,不需要担心宿主机数据,这是虚拟机方案最大的安全感所在。有折腾精神的同学可以选“手动分区”,我给一套参考方案:/boot 分区给 1GB,交换分区给 4GB,剩余空间全部给 / 根分区。这里不建议新手强行拆出 /home 和数据盘,前期容易因为空间规划不合理而陷入到处迁文件的窘境,等摸熟了再重装调整也不迟。
分区界面确认后,会要求设置时区、创建用户和主机名。记下两件事:一个是你设置的普通用户密码,这会是之后所有 sudo 操作的钥匙;另一个是主机名,虚拟机在网络里的名称。Ubuntu 默认没有启用 root 用户,日常管理靠 sudo 提权,这是一个默认的安全设计,不要试图一上来就禁掉 sudo 只留 root,后面踩坑会少很多。
安装过程一般三五分钟到十几分钟不等,取决于镜像写入虚拟磁盘的速度。装完提示重启,虚拟机从磁盘引导后会出现 GRUB 菜单,等几秒进入系统初始设置(Initial Setup),完成隐私、在线账户等选项,就能看到 Ubuntu 桌面了。
2.3 装完第一步:替换软件源
Ubuntu 默认的软件源是官方服务器,在国内直接 apt update 时常慢到怀疑人生。装完系统第一件事,我建议先把源替换成国内镜像站。不同版本的源格式稍有差异,以 Ubuntu 24.04 为例,原始的 /etc/apt/sources.list 是 deb 开头的几行,指向 archive.ubuntu.com;国内镜像站提供了完整的软件包目录,换成镜像站地址即可。
操作流程是这样:先用sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak备份,再用sudo vim或者nano编辑这个文件,把 archive.ubuntu.com、security.ubuntu.com 等地址换成你选的镜像站域名。比如清华 TUNA 的使用方法,可以先到 mirror.tuna.tsinghua.edu.cn/help/ubuntu 查看实时配置;阿里云镜像站同理。替换完执行sudo apt update刷新索引,再sudo apt full-upgrade把所有软件包更新到最新。做完这一步,后续 apt install 的速度基本就是国内网络该有的样子了。
需要注意:不要从非官方渠道下载所谓的“一键换源脚本”,因为脚本会覆盖你的源配置,改坏了系统还得手动修。替换源后如果sudo apt update报错,先检查文件里是否有 http 拼写错误,或者有没有残留的旧版源注释,排查难度都不大。
3. 安装后必做的系统配置与优化
3.1 open-vm-tools:复制粘贴与自适应分辨率
虚拟机装完 Ubuntu 后,很多人才发现一个尴尬问题:鼠标能挪动、网络能通,但 Windows 和 Ubuntu 之间拖不了文件,复制粘贴也不行,窗口分辨率还不能自适应。这是因为 VMware 的增强驱动没有装上,Ubuntu 老版本需要单独装 VMware Tools,新版本推荐直接装 open-vm-tools 这个开源版本。
命令行敲一行就搞定:
sudo apt update sudo apt install open-vm-tools open-vm-tools-desktop装完重启,或者重新登录一次,就能获得三项最直观的改善:宿主机和虚拟机之间可以自由复制粘贴文字、拖拽文件;VMware 窗口缩放时 Ubuntu 桌面分辨率会自动跟着变;会话管理和剪贴板同步也从这里生效。我踩过的坑就是只装了 open-vm-tools 没装带 desktop 后缀的那个包,结果只能命令行用,图形界面拖拽依旧不行,后面补上 open-vm-tools-desktop 才解决。
如果重启后仍然拖拽失败,先检查 VMware 菜单栏“虚拟机-设置-选项-客户机隔离”里的“启用拖放”和“启用复制粘贴”有没有勾上,再不行就重启一下 VMware 或注销虚拟机系统。注意 open-vm-tools 装好后不要再去装旧版 VMware Tools,两者会互相干扰,反而导致图形界面出各种小问题。
3.2 显卡驱动与分辨率问题
虚拟机里没有物理显卡,图形输出全靠 VMware 的虚拟显卡和内核里的驱动配合。Ubuntu 桌面版默认携带的驱动通常已经能正常工作,只是刚装完时分辨率可能只有 800x600 或 1024x768,这时候先别急着搜“装显卡驱动”,先去确认 open-vm-tools-desktop 装好了没有,大部分分辨率问题都是它引起的。
如果确认装好还是不能自适应,可以尝试在 Ubuntu 设置-显示里手动选分辨率,或者在终端安装虚拟显卡驱动:
sudo apt install xserver-xorg-video-vmware这条命令实际是把 VMware 虚拟显卡的 Xorg 驱动装齐,装完重启再看。想确认当前用的是哪个驱动,终端执行lsmod | grep vmw或glxinfo可以看到相关信息。另外,VMware 的“显示”设置里有个“加速 3D 图形”选项,如果发现虚拟机里 GNOME 动画不流畅,就把这个选项打开,同时给虚拟机多分配一点显存。需要特别提醒的是:除非你在做显卡直通或 GPU 计算这类重度需求,否则不要在 Ubuntu 虚拟机里硬装 NVIDIA 独立显卡驱动,装了反而容易黑屏、进不了桌面,这是很多人“显卡驱动卸载不掉”的根源。
真到了卸载那一步,常用清理命令是sudo apt purge nvidia-*,再配合sudo apt autoremove清掉依赖。卸载后如果桌面进不去,可以按 Ctrl+Alt+F2 切换到文本终端操作,或者直接利用之前的快照恢复。这里我多说一句:虚拟机里的显卡诉求和实体机完全不同,开源驱动的体验常常比折腾闭源驱动更省心。
3.3 中文语言包与 fcitx5 输入法
Ubuntu 默认英文环境,虽然能看懂,但打字、菜单、日期显示都不太顺手。中文输入法的配置看起来琐碎,实际动手会有些细节。我推荐一套最省心的方案:系统层打开“设置-系统-地区与语言”,添加中文语言支持,让系统提示语言切换成简体中文;输入法框架用 fcitx5,它比老的 ibus 在中文场景下更好用。
先安装语言包:
sudo apt install language-pack-zh-hans再装 fcitx5 和中文输入法组件:
sudo apt install fcitx5 fcitx5-chinese-addons装完后在“设置-系统-区域与语言”的输入法选项里,把输入法框架切换为 Fcitx 5,然后注销重新登录。登回来后按 Ctrl+Space 即可在英文和拼音之间切换。如果需要配置词库、皮肤,可以装fcitx5-config-qt打开可视化配置界面。
搜狗输入法虽然很多 Windows 用户习惯用,但 Linux 版依赖库更新慢、与高版本 GNOME 偶有冲突,我个人的建议是先用 fcitx5,等真遇到非用不可的场景再折腾。如果系统里有多个输入法框架同时运行,比如 ibus 和 fcitx5 并存,通常会导致按键失效,所以配置时只保留一套就好。
3.4 SSH 远程连接与固定 IP 设置
虚拟机本身就是个远程开发环境,Windows 上打开终端直接 ssh 到 Ubuntu 是最顺手的用法。Ubuntu Desktop 默认不一定装了 SSH 服务端,先安装并启动它:
sudo apt install openssh-server sudo systemctl enable --now ssh然后在 Windows 终端里ssh 用户名@虚拟机IP就能登录。虚拟机 IP 怎么查?Ubuntu 里ip addr查看网卡信息,NAT 模式下一般是 192.168.x.x 网段。你会发现 NAT 模式下 IP 是 DHCP 分配的,重启虚拟机会变,这对经常要连接开发环境的人来说很头疼,所以最好设置静态 IP。
Ubuntu 新版本用 netplan 管理网络,配置在 /etc/netplan/ 下的 yaml 文件里。典型的 NAT 静态 IP 配置长这样:
network: version: 2 renderer: networkd ethernets: ens33: dhcp4: no addresses: - 192.168.100.10/24 routes: - to: default via: 192.168.100.2 nameservers: addresses: - 223.5.5.5 - 114.114.114.114注意 ens33 是 VMware 下常见的网卡名,不同环境可能不同,先用ip addr确认。网关 192.168.100.2 是 VMware NAT 模式的默认网关,具体可以在 VMware“编辑-虚拟网络编辑器”里查看 NAT 设置。改完执行sudo netplan apply使生效,之后 ssh 用的 IP 就固定不变了。配置里如果缩进写错,apply 时会直接报错,建议用 vim 的缩进模式或者复制官方模板改,别手敲很多空格。
如果你希望脱离 VMware 窗口,直接把 Ubuntu 桌面变成可远程访问的环境,可以开启远程桌面。Ubuntu 桌面版自带的设置里,在“共享”菜单开启“远程桌面”,设置一个用户名和密码;Windows 端直接用系统自带的“远程桌面连接”工具输入虚拟机 IP 就能连上。这种方式相比 VMware 的控制台窗口,操作更接近日常使用习惯,而且多设备访问也方便。远程桌面端口默认 3389,如果要在局域网内跨设备访问,注意虚拟机网络模式选择桥接或做好端口转发。
4. 常见问题与排查实录
4.1 Windows 蓝屏与“无法启动虚拟机平台”
“虚拟机安装 Linux 蓝屏”这个搜索词我看见过太多次了。这里的蓝屏有两种场景:一是 VMware 打开虚拟机时宿主机直接蓝屏,二是 Ubuntu 安装过程中虚拟机黑屏或宿主机崩溃。宿主机蓝屏最常见的原因是 Windows 开了基于虚拟化的安全(VBS)或者 Hyper-V,它们会占用虚拟化指令,导致 VMware 这类虚拟机软件和系统底层冲突。
解决思路是这样的:先确认 Windows 功能里没有开启 Hyper-V、虚拟机平台、适用于 Linux 的 Windows 子系统这些可选组件,如果安装了需要卸载掉;然后用管理员身份打开命令提示符,执行bcdedit /set hypervisorlaunchtype off,重启电脑。这个命令的作用是关闭 Hyper-V 引导类型,释放 CPU 虚拟化资源给 VMware。改完后如果还蓝屏,检查 BIOS 里是否启用了 Secure Boot 和 VT-x,把它们调整到合适状态。VMware 提示“无法连接到虚拟机”时,别急着重装,试试点“以管理员身份运行”,或者检查 VMware 相关服务是否被安全软件禁用,这招能解决大部分权限类问题。
4.2 SSH 连不上与 gcc 安装失败
装了 OpenSSH 之后 ssh 连不上,先按套路由主到分排查:第一步,在 Ubuntu 里ip addr确认 IP 是否正常;第二步,在 Windows 命令行 ping 一下该 IP,如果 ping 不通,大概率是 NAT 网络模式或防火墙问题;第三步,确认 sshd 服务状态,sudo systemctl status ssh,如果是 inactive 就systemctl start ssh;第四步,确认 Ubuntu 防火墙 ufw 没有拦 22 端口,sudo ufw allow ssh放行。
gcc 安装失败是另一个高频问题。sudo apt install gcc报一堆依赖错误时,不要慌,先看错误提示里有没有“无法定位软件包”、404、连接超时这类字样。404 通常是软件源列表和当前版本不匹配,比如把 22.04 的源用在 24.04 上,解决办法是重新替换对应版本的源;连接超时大概率是源地址访问太慢或网络配置有问题,换回国内镜像源即可。有时候 apt 的锁被占用,报“E: 无法获得锁”,这是有别的安装程序在运行,等一会儿或者杀掉对应进程再重试。这个环节我反复强调过,遇到 apt 相关问题先别用乱七八糟的“修复脚本”,从源、网络、锁三个维度排查,基本能走通。
4.3 环境变量配置错误与忘记登录密码
环境变量改错了是最折磨人的错误之一。有同学在 /etc/profile 或 ~/.bashrc 里写错 PATH,导致系统里连 ls、sudo 都找不到,终端一打开就是 command not found。这个问题有个标准解法:用绝对路径运行命令。比如 ls 在 /usr/bin/ls,sudo 在 /usr/bin/sudo,先执行/usr/bin/sudo vim /etc/profile把错误的行删掉,再/usr/bin/sudo vim ~/.bashrc检查用户级配置。改好后执行/usr/bin/sudo reboot或者新开终端窗口。遇到过一两次这种情况后,我后来的习惯是在修改配置文件前先用 cp 备份一份原文件,改坏了直接还原,省去绝对路径恢复的麻烦。
忘记登录密码在虚拟机场景下特别好解决,因为没有物理机的种种限制。重启虚拟机,在 GRUB 菜单出现时按 e 键进入编辑模式,找到 linux 开头的那一行,在末尾加上init=/bin/bash,按 Ctrl+X 启动进入单用户模式,然后执行mount -o remount,rw /让文件系统可写,再用passwd 用户名重置密码。完成后 reboot 即可。这个操作本身不复杂,但提醒一下,重启前最好先拍快照,万一操作过程中改错了系统文件,还能恢复回来。
4.4 USB 直通、磁盘空间与虚拟机瘦身
USB 设备插到宿主机,虚拟机里识别不了,多半是没开启 USB 直通。VMware 菜单“虚拟机-可移动设备”里可以把宿主机上的 USB 设备连接到虚拟机,前提是 VMware 的 USB 服务在运行。如果插 U 盘时 Ubuntu 报 usbfs 缓冲大小之类的问题,通常是宿主机的 USB 驱动与虚拟机直通存在兼容问题,换个 USB 接口、改连 FAT32 格式的盘往往就能绕过去。
磁盘空间不足也是虚拟机用久了的高频问题。刚装的时候给了 80GB,用一阵就满了,这时候有两种思路:一是清理系统,用sudo apt autoremove清掉无用软件包,再用 du 命令找出大文件手动清理;二是扩容虚拟磁盘,在 VMware 界面里把磁盘加到 120GB,然后在 Ubuntu 里用 gparted 或 resize2fs 扩展分区。扩容的前提是虚拟磁盘用了“按需增长”格式,如果当初选的是立即分配所有空间,扩容步骤会更麻烦。我给的建议是,创建虚拟机时直接给足磁盘,比如 120GB,按需增长模式对宿主机空间影响其实没想象中那么大。
4.5 WSL 报 0x80070424 的另有他因
这个报错信息来自 Windows 下用官方商店安装 Ubuntu 子系统时,提示“分发名称: ubuntu,错误代码: 0x80070424”,很多人分不清它和 VMware 的关系。这里需要明确一下,这是 WSL(Windows Subsystem for Linux)场景的报错,不是 VMware 虚拟机里面的问题。出现这个错误,通常是 Windows 功能里“适用于 Linux 的 Windows 子系统”组件没有启用,或者设置里“虚拟机平台”没有打开。解决办法:打开控制面板-程序-启用或关闭 Windows 功能,勾选“适用于 Linux 的 Windows 子系统”和“虚拟机平台”,重启后重新安装。如果你只是想用 WSL 装 Ubuntu,可以走这条官方路径;如果想管理完整的 VM 环境,还是回到 VMware 这条线。这两个方案容易混淆,但在安装流程上是完全不同的入口。
5. 进阶玩法:把虚拟机用出生产力
5.1 一台虚拟机搭建多域名 nginx 开发环境
虚拟机装好之后,光当个“体验 Linux 的工具”太浪费了。我最常用的场景是在虚拟机里跑一套 nginx,模拟真实服务器的多站点访问。原理很简单:Ubuntu 虚拟机里只装一个 nginx,监听 80 端口,通过 server_name 区分不同站点;Windows 宿主机的 hosts 文件把几个自定义域名都指向虚拟机 IP,开发时就能像访问真实域名一样访问本地开发站点。
Ubuntu 里先装 nginx:
sudo apt install nginx然后为每个站点创建配置文件。以 dev.local 和 api.dev.local 两个站点为例,在 /etc/nginx/sites-available/ 下创建两个文件:
server { listen 80; server_name dev.local; root /var/www/dev; index index.html; location / { try_files $uri $uri/ =404; } }api 站点同理,配置好 root 和 PHP 或 Node 的处理规则。再在 /etc/nginx/sites-enabled/ 下建立软链接启用配置,执行sudo nginx -t检查语法,最后sudo systemctl reload nginx。回到 Windows,用管理员权限编辑 C:\Windows\System32\drivers\etc\hosts,加上两行:
192.168.100.10 dev.local 192.168.100.10 api.dev.local浏览器里直接访问 http://dev.local,就能打开虚拟机里的站点。这套方案的实际价值是:本地开发环境和线上服务器环境保持一致,多站点互不干扰,改 hosts 就能模拟域名的切换效果,测试 cookie、跨域、HTTPS 的证书配置都能在本地跑通。
5.2 快照与备份:装完系统第一件事
我见过太多人装完系统就开始各种 apt install、改配置,等出问题才发现没有后悔药。VMware 的快照功能就是为了解决这个问题设计的。快照相当于记录虚拟机在某个时刻的状态,拍完之后无论你怎么折腾,随时可以一键回滚到那个状态。
我的使用习惯是分三个节点做快照:装完系统、配置好 open-vm-tools 和中文环境、搭建好 nginx 开发环境,每个节点各拍一个快照,并取清楚名字,比如“base-ubuntu”、“dev-ready”、“nginx-multisite”。这样即使后续配置踩坑,最多回滚到上一个节点,而不用从头重新装系统。快照也不是越多越好,每个快照都会在虚拟磁盘里占额外空间,保留太多个会影响磁盘空间和虚拟机性能,建议保留两三个关键节点的快照即可。日常修改代码、装软件不是关键时刻,不需要随手快照,只要在准备做“高风险操作”之前拍一张就足够。
5.3 虚拟磁盘转 U 盘启动盘
最后聊一个有点进阶的需求:把 VMware 里已经配好的 Ubuntu 系统做成实体 U 盘启动盘。这个操作有特殊应用场景,比如想在自己的电脑上实际用一下虚拟机里那套环境,或者在拯救系统时把虚拟机里的数据导出来。思路也不复杂,核心是把虚拟磁盘文件转换成能被 U 盘写入的镜像。
常用工具是 DiskGenius。操作前先关闭虚拟机,确保没有正在写入的数据;然后在 Windows 里用 DiskGenius 打开 VMware 虚拟磁盘文件(一般是 .vmdk),找到里面的 Linux 分区,用“克隆磁盘”或“转换为镜像文件”功能,把分区内容导出成一个 .img 镜像;最后用 rufus 之类工具把镜像写入 U 盘。特别注意,写入 U 盘会清空 U 盘里的所有数据,而且 U 盘的容量必须大于虚拟磁盘中已使用的空间。从 U 盘启动后,还要注意不同主机硬件差异可能导致的驱动问题,虚拟机里的配置到了实体机上不一定直接适用,但这已经是另一个话题了。整个流程操作难度不低,如果只是备份数据,我更推荐直接在虚拟机里打包 tar 或者用共享文件夹导出,而不是执着于做 U 盘启动盘。
我个人的经验是,虚拟机装 Ubuntu 这套流程,学的不是“下一步下一步”的重复,而是理解每一层选择的理由。资源给多大、网络用哪种、源换哪个、增强工具要不要装,这些都跟你的使用场景直接挂钩。等你把每一步的操作逻辑都想明白了,无论是换 VirtualBox、换 Arch,还是换成 Windows Server 里的 Hyper-V,配置起来都会顺手很多。最后分享一个小习惯:我每次准备好一台开发用虚拟机,都会把安装步骤和关键配置写成一个简单的 checklist,放在项目的 README 里,下次重建环境时照着走一遍,比自己从零回忆可靠得多。