
装 Ubuntu 这件事我前前后后在自己机器、同事机器、公司测试机上做过不下三十遍。最早那会儿是双系统一个分区没算好Windows 的引导直接被覆盖折腾到凌晨三点才把系统救回来后来换成虚拟机才算真正把这套流程固定下来。所以这篇内容就围绕VMware 与 Ubuntu 的安装展开把整套虚拟机安装 Ubuntu 的流程、参数怎么定、装完之后还要做哪些配置以及那些真正会让人卡住的坑一次讲透。不管你是刚接触 Linux 的学生还是要给团队搭一套干净开发环境的工程师这套流程都能直接照搬。我默认你手上是一台 Windows 主机内存 16GB 起步硬盘留出 100GB 以上的空闲空间。这个前提很重要后面所有参数都是围绕它来算的。整篇内容的顺序是先讲清楚为什么用虚拟机而不是双系统再讲安装前要准备什么、参数怎么分配然后是 VMware 建机和 Ubuntu 安装的完整实操接着是装完之后必做的系统配置中文输入法、SSH、开发环境最后是我这些年踩过的坑和排查方法。1. 先想清楚为什么大多数人该用 VMware 装 Ubuntu1.1 虚拟机、双系统、容器这三条路的真实差别选技术方案这件事最怕的是别人用什么你就用什么。装 Ubuntu 至少有三条路物理机双系统、虚拟机、以及 Windows 上的 WSL 子系统。三者解决的不是同一个问题。双系统的优势是性能无损、硬件直通彻底跑 GPU 训练、玩大型游戏、做底层驱动调试只有物理机才靠谱。代价是切换成本极高——每次换个环境都要重启而且分区操作一旦失误主系统跟着遭殃。我见过太多人第一次装双系统时手滑把 Windows 的 EFI 分区删掉最后只能重装。WSL 的优势是轻量、启动快和 Windows 文件系统互通写写脚本、跑跑命令行工具非常舒服。但它终究不是一套完整的 Linuxinit 系统、内核模块、桌面环境、systemd 服务的很多行为都和真实发行版有差异。你要学习完整的 Linux 系统管理或者需要验证某个软件在真实 Ubuntu 上的表现WSL 会给你一种能跑但不对劲的别扭感。虚拟机正好卡在中间它是一台完整的、独立的、可以随便折腾的 Ubuntu有真实内核、真实桌面、真实网络栈同时又和宿主系统完全隔离。装崩了删掉重来成本是三分钟。这种随便折腾的自由度对学习阶段的人来说价值极高。我个人的判断标准很简单只要不是长期跑性能敏感任务一律先上虚拟机。1.2 装哪个版本Ubuntu 24.04 LTS 与 VMware Workstation Pro 17 的搭配Ubuntu 的版本选择没什么好纠结的认准 LTS长期支持版。24.04 LTS 是当前的主力选择内核 6.8、GNOME 46 桌面官方提供五年安全更新到 2029 年之前不用操心升级问题。24.10、25.04 这类中间版本只支持九个月适合折腾尝鲜不适合当工作环境。除非你的项目明确要求某个旧版本比如老项目的编译工具链依赖 20.04否则直接 24.04 LTS。VMware 这边Workstation Pro 17 是目前的主流版本。这里有个信息很多人不知道从 17.5 版本开始个人使用场景下可以免费下载和激活只需要在官网注册一个账号在下载页面选择个人用途即可商业用途仍然需要购买授权。提示网上流传的各种许可证密钥来路不明可能被植入修改过的安装包也可能随时失效。走官方渠道个人用户没必要冒这个险。版本搭配上VMware Workstation Pro 17 对 Ubuntu 24.04 的兼容性很好官方也把 Ubuntu 24.04 列入了支持列表。不要用那种几年前的 VMware 12、14 去装新系统内核太新VMware Tools 的编译脚本大概率会失败——这个问题后面会细讲。1.3 硬件预检不满足这几个条件装了也白装安装之前先做三项预检能省掉后面一大半的莫名其妙的问题。第一项CPU 虚拟化开关。Intel 平台叫 VT-xAMD 平台叫 AMD-V绝大多数主板默认是开启的但部分品牌机、OEM 机器出厂是关闭状态。检测方法Windows 任务管理器 → 性能 → CPU右下角会显示虚拟化已启用/已禁用。如果显示禁用需要进 BIOS在 Advanced 或 CPU Configuration 里找到 Intel Virtualization Technology 或 SVM Mode打开后保存重启。第二项宿主系统的 Hyper-V 相关功能。如果你之前装过 WSL2、Docker Desktop、Windows 沙盒Sandbox、或者开了内核隔离/内存完整性Windows 的 Hypervisor 会接管底层虚拟化层。这个时候 VMware 不会报错但会走一层兼容模式运行性能明显打折尤其是磁盘 I/O 会慢得让人怀疑人生。判断方法命令行执行systeminfo看最后一行Hyper-V 要求如果四项全是是说明 Hyper-V 已经在跑了。要不要关掉看你的需求——如果 WSL2 和 Docker Desktop 你日常也要用那就接受性能损失如果虚拟机是主力就把这些功能临时关闭。第三项磁盘类型。虚拟磁盘文件最好放在 SSD 上机械盘跑虚拟机是灾难级的体验Ubuntu 开机两分钟起步。另外别放在外接移动硬盘上USB 的随机读写性能撑不住系统盘。顺带说一下磁盘空间怎么算。Ubuntu 24.04 桌面版官方建议 25GB 起步但这是纯系统。加上开发工具、Docker 镜像、几个项目仓库60GB 是舒服的下限。考虑到虚拟磁盘是精简置备用多少占多少你分配 100GB 在物理盘上也不会立刻占满所以别太抠门。2. 安装前的准备清单与关键参数怎么定2.1 镜像与安装包从哪里来Ubuntu 镜像一定从官网下载。ubuntu.com的 Download 页面有 Desktop 和 Server 两个入口选 Desktop 版本文件大约 5-6GB。下载下来是一个.iso文件比如ubuntu-24.04.3-desktop-amd64.iso。这里有个实际会遇到的问题官方源在境外下载速度可能只有几百 KB/s。解决办法是找就近的公共镜像站清华 TUNA、中科大 USTC、阿里云等都有完整同步路径一般是/ubuntu-releases/24.04/速度能跑满带宽。下载完记得核对一下 SHA256命令是sha256sum ubuntu-24.04.3-desktop-amd64.iso和官网公布的校验值比对。校验不通过的镜像千万别用安装到一半报错你都不知道是镜像坏了还是操作错了。另外注意架构。现在主流是amd64也就是 x86_64如果你用的是 ARM 平台的笔记本比如某些骁龙本要下arm64版本。查自己机器架构的命令在宿主机和客户机都能用uname -m。VMware 安装包从官网下载注意选对版本和平台。Windows 主机下.exe安装包。安装过程基本一路下一步中间会让你选安装路径和是否加入客户体验计划按自己习惯来。安装完第一次启动会要求输入许可证选择个人用途即可。注意如果以后要彻底卸载 VMwareWindows 的程序和功能经常卸不干净会残留虚拟网卡和驱动导致重装时报错。官方提供了专门的卸载清理工具VMware Workstation Cleanup Tool先跑清理工具再重装能解决大部分安装期故障。2.2 虚拟磁盘、内存、CPU 的分配计算这部分是最容易拍脑袋决定的但参数定错了后面全程难受。内存分配的原则是给虚拟机 4GB 能跑起来8GB 能舒服办公写代码16GB 才能做重负载编译和容器集群。但前提是不能把宿主系统饿死——Windows 本身 4GB 起步浏览器开十几个标签页又是 4GB。所以一个实用的公式是虚拟机内存 物理内存 × 40% ~ 50%16GB 机器取 6~8GB16GB 的机器我一般给 8GB。8GB 的机器给 4GB 就是极限了再往上宿主系统会开始疯狂读页面文件整机卡死。内存参数在虚拟机运行过程中不能随意修改必须关机后调整所以一开始就要想好。CPU 分配的原则更简单给 2~4 个核心。因为超线程的存在任务管理器里显示的逻辑处理器数量是物理核数的两倍但虚拟机分配的是逻辑处理器。一台 8 核 16 线程的机器给虚拟机 4 个核心完全够用给 8 个以上反而会因为调度竞争导致整体变慢。磁盘按前面说的60~100GB选将虚拟磁盘拆分成多个文件这一项比较好。它的好处是方便迁移——单个文件超过 4GB 后往 FAT32 的 U 盘上拷会失败拆分成多个 2GB 的小文件就没这个问题。性能上两者差异很小。2.3 快照策略给自己留一条后悔路快照是虚拟机最被低估的功能。它的原理是在某个时间点记录虚拟磁盘和内存的状态之后无论你怎么折腾都能一键回滚到那个点。用得好可以省下无数次重装的时间。我的习惯是打三个快照。第一个在系统刚装完、还没做任何配置的时候命名为干净系统。第二个在换源、装完常用输入法和基础工具之后命名为基础环境。第三个在装完 Docker、编译工具链这类重型依赖之后命名为开发环境。这样哪一层出问题回滚的代价都是最小的。代价也要说清楚快照不是备份。快照文件会随着你使用不断增长如果长期挂着不删磁盘空间会被吃掉很多而且性能会逐渐下降。我的做法是配置稳定之后把中间快照删掉只保留最近的基础环境。真要长期保存的状态用虚拟机的克隆功能生成一个独立副本这才是真正的分叉。3. VMware 侧建机与 Ubuntu 安装全流程3.1 新建虚拟机逐屏参数与容易忽略的选项打开 VMware Workstation Pro点创建新的虚拟机选自定义高级而不是典型。典型模式会把很多参数藏起来后期改起来麻烦。硬件兼容性选最新版本就行。接着是关键的一屏安装客户机操作系统这里选稍后安装操作系统。为什么不选安装程序光盘映像文件因为自动安装会走简化流程Easy Install它会用预设的用户名、密码、磁盘布局分区方案你根本看不到。想搞清楚 Ubuntu 装了些什么一定要走手动流程。客户机操作系统选 Linux版本选 Ubuntu 64-bit。虚拟机名称和位置自己定路径不要带中文和空格某些编译工具对中文路径的处理很差。处理器配置按前面的计算来填。内存同理。网络类型这一屏最重要网络模式虚拟机 IP 来源能否上网宿主机能否访问虚拟机局域网其他机器能否访问适用场景桥接Bridged路由器 DHCP能能能当独立设备用、需要被局域网访问NATVMware 虚拟 DHCP能能不能需端口转发默认选择、只在本机用仅主机Host-OnlyVMware 虚拟 DHCP不能能不能隔离测试、安全实验做后端开发、需要外部设备访问虚拟机做调试的选桥接只是本地写代码、跑服务自己看的NAT 就够。我个人的默认选择是 NAT因为它不会因为换 Wi-Fi 导致 IP 变化。以后要改也随时能改虚拟机设置里改一下网络适配器就行。I/O 控制器类型选推荐值磁盘类型选 SCSI然后创建新虚拟磁盘容量填 80GB选将虚拟磁盘拆分成多个文件。最后一步会显示配置摘要点自定义硬件把新 CD/DVD这一项指向你下载的 ISO 文件同时把启动时连接勾上。还有两个建议顺手调整的显示器那一项把加速 3D 图形勾上除非你的宿主显卡驱动有问题不然 Ubuntu 桌面会有点拖影USB 控制器保持默认以后要接开发板、串口设备会用到。3.2 Ubuntu 安装向导逐屏说明与分区方案启动虚拟机进入安装界面。24.04 用的是新版安装器流程和 22.04 有所不同。先选语言选中文简体或者英文都行——我个人推荐英文安装、装完再切中文输入法原因是安装期很多报错信息在中文环境下翻译得不完整出问题不好搜。键盘布局默认 English (US)。接下来会问安装类型交互式安装Interactive installation还是自动安装Automated installation。选交互式。然后问默认选择还是扩展选择——默认已经包含浏览器、办公套件、基础工具扩展会额外装一些媒体工具虚拟机里没必要选默认。最关键的一屏是磁盘设置。这里有几个选项擦除磁盘并安装 Ubuntu、手动分区、以及加密选项。虚拟机里直接选擦除磁盘因为它擦的是虚拟磁盘伤不到你的宿主系统。手动分区对新手没必要Ubuntu 的默认布局一个 EFI 分区 一个 ext4 根分区已经很合理。如果你确实想手动分区我给一个够用的方案/boot/efi → 512MB, FAT32 / → 40GB, ext4 /home → 剩余空间, ext4 swap → 4GB或直接用 swapfile把/home单独分出来的好处是将来重装系统时数据分区可以保留不用重新搬文件。缺点是根分区空间如果给少了装几轮大软件就会满需要自己盯一下df -h。然后是用户创建用户名建议全小写、不带特殊字符因为 Linux 用户名会影响到家目录名和很多默认路径。密码别设太随意后面sudo要频繁用。有一个选项是登录时需要密码虚拟机里建议勾上安全性有保障。安装过程中如果网络通会问要不要下载更新和第三方软件。建议勾选安装第三方软件它会一并装好字体、媒体编解码器和部分硬件的驱动固件省得后面单独折腾。这一步会额外花几分钟值得等。安装完成后提示重启重启前它可能让你拔掉安装介质虚拟机里直接回车就行。3.3 首次开机后的驱动与 VMware Tools 处理第一次进桌面先确认分辨率是不是自适应了、剪贴板能不能和宿主机互通。如果不能说明 VMware Tools 还没装好。这里必须强调一个思路转变在 Linux 客户机里不要用 VMware 菜单里的安装 VMware Tools改用开源的open-vm-tools。原因是菜单里那个挂载 ISO 后要现场编译内核模块内核版本一升级就编译失败报错就是那个经典的继续运行脚本未能在虚拟机中成功运行。这不是你做错了什么是这套旧方案跟不上新内核的节奏。正确做法是在 Ubuntu 里执行sudo apt update sudo apt install open-vm-tools open-vm-tools-desktop -y sudo rebootopen-vm-tools提供核心功能时间同步、优雅关机、内存气球open-vm-tools-desktop提供桌面增强分辨率自适应、剪贴板共享、拖放文件。重启之后基本就齐活了。如果确实需要共享文件夹还得再挂载一次。先在 VMware 的虚拟机设置 → 选项 → 共享文件夹里添加一个宿主机目录然后在 Ubuntu 里执行sudo mkdir -p /mnt/hgfs sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other ls /mnt/hgfs想开机自动挂载把这一行写进/etc/fstab.host:/ /mnt/hgfs fuse.vmhgfs-fuse allow_other,defaults 0 0注意如果你用的是 Wayland 会话Ubuntu 24.04 默认在多数显卡上启用 Wayland拖放文件和剪贴板共享可能不稳定。切换方式是在登录界面点右下角齿轮图标选Ubuntu on Xorg。这是目前最省心的兼容方案。4. 装完系统必须做的六件事4.1 换源与系统更新刚装完的系统apt默认走的是官方源速度往往很难看。换到就近镜像站是第一步。先备份原文件sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak注意 24.04 用的是新格式配置文件是/etc/apt/sources.list.d/ubuntu.sources不再是老版本那个/etc/apt/sources.list很多老教程会让你改错文件。文件内容是 deb822 格式把URIs:那一行的域名替换成镜像站域名即可一般镜像站首页都会给出对应的配置片段直接复制替换最稳妥。改完执行sudo apt update sudo apt upgrade -y系统更新完之后顺手把基础工具装上sudo apt install -y build-essential git curl wget vim net-tools htop treebuild-essential就是 GCC 工具链的元包后面讲 GCC 安装失败的排查时会用到。4.2 中文输入法ibus 与 fcitx5 怎么选Ubuntu 自带 ibus 输入法框架配中文拼音只需要几步设置 → 键盘 → 输入源 → 加号 → 中文中国→ 汉语智能拼音。切换快捷键默认是 SuperSpace如果和系统快捷键冲突可以在键盘快捷键里改掉。ibus 的优点是零配置、开箱即用缺点是候选词质量一般长句输入和云词库都比较弱。用它写写注释没问题长时间打中文会觉得别扭。想要更好的体验就上 fcitx5sudo apt install -y fcitx5 fcitx5-chinese-addons fcitx5-frontend-gtk3 fcitx5-frontend-gtk4 fcitx5-frontend-qt5 im-config -n fcitx5执行im-config后需要注销重登录然后在 Fcitx5 配置里添加拼音输入法。fcitx5 的候选词、词频调整、模糊音设置都比 ibus 强不少。关于搜狗输入法说句实在话它的官方 Linux 包基于较早的 fcitx 框架在 24.04 上依赖经常缺dpkg -i装完跑sudo apt -f install修依赖修不上的情况并不少见。而且它在 Wayland 下唤起异常的概率较高。所以我的建议是除非你有强需求直接用 fcitx5 自带的拼音或者配一下中州韵引擎稳定性和维护性都好得多。4.3 网络模式、SSH 与远程连接配置习惯用 Windows 上的终端工具远程连虚拟机写代码的SSH 是必配项。桌面版 Ubuntu 默认不装 SSH 服务所以第一步是sudo apt install -y openssh-server sudo systemctl enable --now ssh sudo systemctl status ssh看到active (running)才算成功。然后查本机 IPip a hostname -INAT 模式下地址一般是192.168.x.x网段宿主机可以直接连桥接模式下地址和你的局域网同网段局域网内其他设备也能连。远程连不上的排查顺序我总结成一张表现象大概率原因处理方式连接被拒绝Connection refusedSSH 服务没装或没启动systemctl status ssh没装就装连接超时Timeout网络模式不对、IP 填错、防火墙拦截确认ip a的地址与网络模式匹配能 ping 通但连不上 22 端口防火墙拦了sudo ufw status必要时sudo ufw allow ssh提示认证失败用户名/密码错误或 root 登录被禁用普通用户登录别用 root连上一会就断客户机休眠、IP 变化关闭休眠NAT 模式固定 IP小技巧NAT 模式下如果你想从局域网其他机器访问虚拟机不用改成桥接在编辑 → 虚拟网络编辑器 → NAT 设置里加一条端口转发规则就行把宿主机的某个端口映射到虚拟机的 22 端口。4.4 开发环境搭建GCC、CMake、Docker、Miniconda系统装完只是起点真正干活还需要一套工具链。这里挑几个最常被问到的讲。GCC 工具链。前面装的build-essential就包含了 gcc、g、make。验证gcc --version如果你的 GCC 安装报错按这个顺序查报Could not get lock /var/lib/dpkg/lock-frontend说明有别的 apt 进程在跑常见是开机自动更新等一会儿或者找到进程结束掉报下载失败说明源不可达检查网络和源配置报Release file is not valid yet说明系统时间不对虚拟机休眠久了很容易出现这个问题sudo timedatectl set-ntp true同步一下时间报空间不足就df -h看一眼根分区。CMake。24.04 仓库里的版本是 3.28做一般项目够用。查版本用cmake --version。如果项目要求更高版本两个办法一是pip install --upgrade cmake装到 Python 环境里好处是版本切换灵活二是加 Kitware 官方仓库或直接用 snap 安装。用 pip 的方式要注意 PATH 顺序确保which cmake指向的是你新装的那个。Docker。最省事的装法sudo apt install -y docker.io docker-compose-v2 sudo systemctl enable --now docker sudo usermod -aG docker $USER最后一步把自己加进 docker 组之后不用每次sudo。注意这一步必须重新登录才生效很多人装完发现还要 sudo就是因为没重登。Miniconda。Python 环境管理用它最省心装到用户目录下不污染系统wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh -b -p $HOME/miniconda3 $HOME/miniconda3/bin/conda init bash重开终端后conda --version能出结果就成了。这里容易踩的坑是 conda 的 base 环境自动激活导致系统 python 被顶掉用conda config --set auto_activate_base false关掉比较清爽。环境变量配置。这是新手最容易搞崩系统的地方。核心原则两条第一追加 PATH 永远用export PATH$PATH:/your/path绝对不要写export PATH/your/path那会把原有的所有路径覆盖掉ls、cd这些命令都会失效第二~/.bashrc和~/.profile的加载时机不同——~/.bashrc在每次开交互式 shell 时读~/.profile只在登录时读一次。如果你的程序是通过 SSH 非交互式执行命令的~/.bashrc顶部通常有非交互式直接 return的判断写在里面的变量根本不会生效这种情况要放到~/.profile或/etc/environment里。改完记得source ~/.bashrc或者干脆重开终端。顺带提一句其他的查看命令想看显卡驱动状态用ubuntu-drivers devices装了 NVIDIA 驱动的话nvidia-smi也能看想看系统架构用uname -m和dpkg --print-architecture。虚拟机里一般不需要装独立显卡驱动因为显卡是虚拟出来的装了反而容易出问题。如果你的目标是嵌入式开发比如用 Ubuntu 跑 Zephyr 这类实时操作系统项目那还需要额外装west、设备树编译器dtc、ninja、以及 Zephyr SDK。这套环境在虚拟机里跑完全没问题唯一要注意的是烧录和串口调试需要 USB 直通——在 VMware 菜单里把开发板对应的 USB 设备连接到虚拟机即可。5. 典型故障排查实录5.1 问题速查表报错/现象根本原因解决办法VMware Tools 继续运行脚本未能在虚拟机中成功运行旧版 Tools 需要现场编译内核模块内核版本不匹配卸载后改用open-vm-tools分辨率无法自适应、剪贴板不通缺open-vm-tools-desktop或运行在 Wayland装桌面增强包登录时切 Xorg共享文件夹/mnt/hgfs是空的没有手动挂载或没在设置里添加共享目录执行vmhgfs-fuse或写 fstab虚拟机整体卡顿、磁盘 I/O 极慢宿主开启了 Hyper-V/WSL2 导致兼容模式按需关闭相关功能或接受性能折损系统时间错乱、apt 报签名错误虚拟机长时间挂起时钟漂移sudo timedatectl set-ntp true根分区提示空间不足分区时/给太小用df -h定位清理缓存或用 GParted 扩容SSH 连不上服务未装、防火墙、网络模式按 4.3 的排查表逐项过输入法唤不出候选框框架和应用不匹配fcitx5 要装对应前端包切 Xorg5.2 几个文档里不会写的坑第一个虚拟机挂起之后系统时间会漂。这是很多人遇到的问题昨天还好好的今天开机apt全线报签名无效。原因就是虚拟机挂起期间虚拟时钟停摆和真实时间差了好几小时。养成习惯虚拟机恢复运行后先跑一次时间同步或者干脆在 VMware Tools 里确认时间同步功能是开启状态。第二个别在虚拟机上开 3D 加速之后又去装 NVIDIA 驱动。虚拟机的显卡是 VMware 虚拟出来的不是物理显卡装了物理驱动只会导致桌面起不来。如果你确实需要 GPU 能力那是另一个话题需要宿主直通不在常规安装范围内。第三个装系统之前先想好这台虚拟机的用途。我见过太多人磁盘给 20GB装完系统剩 5GB装个 Docker 就满了最后只能推倒重来。判断方法很直接纯学习给 60GB写代码给 80GB跑容器和数据库给 100GB 以上。虚拟磁盘精简置备多给不吃亏。第四个快照不要长期挂着。前面说过快照会让你后续所有的写操作都走增量链路时间一长性能下降很明显。配置稳定后删除中间快照只保留一个基线。第五个Ubuntu 装崩了不用修直接重装。这正是虚拟机的价值所在。在 VMware 里把虚拟磁盘删掉重建或者回滚到干净系统快照十分钟就能回到原点。别在坏掉的系统里死磕时间成本不划算。第六个同时跑多个虚拟机的资源规划。如果你打算在这台机器上再装一个 Windows 10 虚拟机做测试那两台加起来的内存不能超过物理内存的 70%否则两个一起卡。更稳的做法是错峰使用或者给不常用的那台配置更小的内存并随用随开。最后分享一个我自己用了很久的习惯把每台虚拟机当成一份可复现的环境说明书。系统装好、配置做完之后我会把整个过程中的关键命令整理成一个脚本文件放在家目录里命名成setup.sh。下次要给同事复刻一套一模一样的环境把这个脚本跑一遍就行比口头指导靠谱得多。这套思路也顺带解决了团队协作里在我机器上是好的这个经典问题——环境是脚本化的谁跑都一样。