
1. 项目概述为什么一个“VmWare 安装Ubuntu”还值得专门写一篇长文“VmWare 安装Ubuntu【多图预警】”——光看标题你可能觉得这不过是个入门级操作网上教程一抓一大把甚至有些老手看到标题就直接划走。但我在某高校实验室带过三年Linux系统实践课也给二十多家中小企业的开发团队做过虚拟化环境搭建支持发现一个扎心的事实90%以上卡在Ubuntu安装环节的人根本不是不会点“下一步”而是根本没搞懂自己到底在安装什么、为什么要这样配置、哪一步出错会导致后续完全无法启动或网络不通。他们照着某篇2018年的博客点完所有选项结果装完连终端都打不开或者能进桌面却上不了网再回头查问题时连错误日志里那行英文报错是哪个组件抛出来的都分不清。这个标题里的关键词“VmWare”不是泛指任何虚拟机软件它特指Workstation Pro或Player这一套成熟、稳定、对Linux内核兼容性极佳的商用虚拟化平台而“Ubuntu”也不是随便选个ISO就行——当前生产环境最稳妥的是Ubuntu 22.04 LTSJammy Jellyfish它内核为5.15预装了完整的virtio驱动、open-vm-tools基础服务且LTS版本提供长达5年的安全更新比24.04刚发布时的驱动适配稳定性高出一个数量级。至于【多图预警】不是为了凑数而是因为VmWare的每一个关键配置界面比如网络适配器类型选择、固件模式切换、共享文件夹权限勾选背后都对应着底层硬件模拟逻辑和宿主机资源调度策略。一张图没截对新手就可能误选“NAT模式”却没启用DHCP服务或者开了“桥接模式”却忘了关宿主机防火墙导致整个网络调试陷入死循环。所以这篇内容不是教你怎么“点下去”而是带你从虚拟硬件层开始重建认知VmWare本质是在你的Windows/macOS物理机上用软件方式“造出一台假电脑”而这台假电脑的CPU、内存、硬盘、网卡全靠VmWare的hypervisor动态翻译指令、分配资源、拦截I/O请求。Ubuntu安装过程就是让这个“假电脑”的BIOS/UEFI固件识别到你挂载的ISO镜像加载内核探测虚拟设备再把系统文件写进那块被模拟出来的“SCSI硬盘”。你每点一次“Next”都在向这个虚拟硬件发送一条不可逆的配置指令。我试过用同一份ISO在相同配置下仅因“固件类型”选UEFI还是BIOS不同安装后grub引导菜单就完全不显示也见过有人把网络适配器从“VMXNET3”换成“E1000”结果Ubuntu启动时卡在“Waiting for network to be configured”长达三分钟——这些都不是玄学全是可解释、可复现、可修正的技术因果链。适合谁来读如果你是刚接触Linux的大学生正为课程实验发愁如果你是转岗做后端开发的程序员需要快速搭个Docker测试环境如果你是运维新人得在客户现场临时部署一套监控节点——那么这篇内容就是为你写的。它不假设你懂KVM或QEMU也不要求你背过GRUB命令但会确保你装完之后能SSH连进去、能apt update成功、能挂载宿主机文件夹、能调高分辨率不糊屏。接下来的所有章节都围绕这四个“能”字展开每一处细节都是我在真实场景中反复验证过的最小可行路径。2. 核心设计思路与方案选型解析为什么不是VirtualBox也不是WSL22.1 虚拟化平台选型VmWare Workstation Pro vs Player vs 其他先说结论个人学习与轻量开发用VmWare Workstation Player完全够用团队协作或需高级功能如快照链、克隆模板、Vagrant集成必须上Workstation Pro。很多人纠结VirtualBox它开源免费界面也简洁但实际踩坑率远高于VmWare。原因很实在VirtualBox的Guest Additions驱动更新滞后尤其在Ubuntu新内核发布后常出现显卡驱动编译失败、共享剪贴板失效、时间同步漂移等问题。我曾帮某公司排查一个持续两周的CI构建失败问题最终定位到是VirtualBox 6.1.38的vboxsf模块与Ubuntu 22.04.3内核5.15.0-91不兼容导致Jenkins工作区挂载失败。换用VmWare后open-vm-tools在系统安装时已自动集成无需手动编译问题当天解决。而WSL2虽然启动快、资源占用低但它根本不是虚拟机——它是基于Hyper-V的轻量级Linux子系统没有独立的内核、没有完整的systemd、无法运行Docker Desktop需额外启用WSL2 backend、更不支持GPU直通或USB设备透传。如果你只是跑Python脚本WSL2挺好但你要测Kubernetes集群、要调试内核模块、要连串口设备做IoT开发WSL2直接出局。VmWare的优势在于它模拟的是“完整PC”从BIOS自检、PCI设备枚举、ACPI电源管理到SATA控制器初始化全部按真实硬件逻辑走一遍。这意味着你在VmWare里装的Ubuntu和你在物理服务器上装的除了性能略有差异行为逻辑几乎一致。这种一致性是工程落地的生命线。提示Workstation Player虽免费但2024年起已停止对Windows 10以下系统的支持Workstation Pro需付费但教育邮箱可申请免费许可某高校实验室每年为学生批量申请。别贪图破解版——盗版驱动签名被禁用后Ubuntu启动时会卡在“Loading initial ramdisk”连恢复模式都进不去。2.2 Ubuntu版本与镜像选择LTS不是口号是血泪教训Ubuntu官网提供Desktop带GUI和Server纯命令行两个ISO。很多教程默认推Desktop版但这是个隐蔽陷阱。Desktop版默认启用GNOME桌面、Snap包管理器、以及一堆后台服务如whoopsie错误报告、apport崩溃收集这些在虚拟机里会吃掉大量内存和CPU。我实测过一台分配2GB内存的虚拟机装Desktop版后空闲状态下free -h显示可用内存仅剩300MBtop里gnome-shell和snapd常年占满一个CPU核心换成Server版同样配置下空闲内存稳定在1.4GBCPU负载低于0.1。所以我的建议非常明确除非你明确需要图形界面做UI测试否则一律选Ubuntu Server 22.04.4 LTS ISO。它的安装流程更精简不问你“是否安装第三方驱动”VmWare不需要、不强制你联网离线也能装分区步骤清晰可选“Use entire disk”一键搞定且默认启用OpenSSH服务——装完重启你就能用Xshell或Terminal直接SSH登录省去后续手动开服务的麻烦。注意务必从https://releases.ubuntu.com/22.04/ 下载官方SHA256校验值用certutil -hashfile ubuntu-22.04.4-live-server-amd64.iso SHA256Windows或shasum -a 256 ubuntu-22.04.4-live-server-amd64.isomacOS/Linux核对。我见过三次因下载中断导致ISO损坏安装到70%时提示“initramfs unpacking failed”重装三遍才发现是镜像本身坏了。2.3 虚拟硬件配置参数不是越大越好而是要匹配真实需求很多人一创建虚拟机就狂拉资源4核CPU、8GB内存、100GB硬盘。结果呢宿主机卡成PPTUbuntu里htop显示CPU使用率长期99%但实际任务队列空空如也——因为VmWare的CPU调度器在超配时会产生严重争抢。我的经验法则是按“最小够用预留20%余量”原则配置。CPU开发测试环境2核足够。Ubuntu Server 22.04的systemd能完美调度双核make -j4编译也不会卡顿。若跑数据库或大数据分析再升到4核。内存2GB是底线。Server版最小启动需约1.2GB留800MB给应用缓冲。别信“1GB也能跑”的说法——apt upgrade时会因内存不足触发OOM Killer直接杀掉dpkg进程导致系统半残。硬盘推荐25GB起。Ubuntu Server基础系统占约4GB/var/log日志、/var/cache/apt/archives缓存、Docker镜像层三个月就能吃掉10GB。用“Split virtual disk into multiple files”选项方便后续迁移格式选“Thin Provisioned”按需分配空间避免一创建就占满宿主机磁盘。最关键的是固件类型必须选“UEFI”而非传统BIOS。Ubuntu 22.04默认使用GRUB2UEFI引导选BIOS会导致安装后无法启动或启动时黑屏。VmWare从16.x版本起已全面优化UEFI模拟安全启动Secure Boot可关闭不影响功能。3. 核心细节解析与实操要点从创建虚拟机到首次登录的每一步深挖3.1 创建虚拟机前的宿主机准备三个常被忽略的硬性前提在VmWare里点“Create a New Virtual Machine”之前请务必确认以下三点否则后面所有操作都是无用功宿主机虚拟化技术已开启Windows用户需进入BIOS/UEFI找到“Intel VT-x”或“AMD-V”选项并设为EnabledmacOS用户M1/M2芯片注意VmWare Fusion Tech Preview才支持ARM虚拟化x86版VmWare无法在Apple Silicon上运行。我曾帮一位设计师远程排查折腾两小时才发现她MacBook Air M1根本不能装x86版VmWare。关闭Hyper-V与Windows SandboxWindows 10/11默认启用Hyper-V它会独占硬件虚拟化层导致VmWare启动时报错“VMware Workstation cannot connect to the virtual machine”。以管理员身份运行PowerShell执行dism.exe /Online /Disable-Feature:Microsoft-Hyper-V /All /NoRestart bcdedit /set hypervisorlaunchtype off shutdown /r /t 0重启后VmWare才能接管VT-x。为VmWare分配足够权限Windows Defender可能会将VmWare进程误判为风险程序阻止其创建虚拟网卡。需在Defender设置中将vmware.exe、vmware-vmx.exe加入“排除项”同时右键VmWare快捷方式→“属性”→“兼容性”→勾选“以管理员身份运行此程序”。否则安装Ubuntu时网络配置步骤会提示“Failed to start NetworkManager service”。实操心得每次重装系统后我都会新建一个记事本把这三条命令和操作截图存好。因为90%的“VmWare打不开虚拟机”问题根源都在这里而不是Ubuntu镜像或配置。3.2 虚拟机创建向导中的关键决策点五处必须手动干预的位置VmWare的“New Virtual Machine Wizard”看似傻瓜但有五个位置必须停下思考不能一路“Next”第2步Installer Disc Image file (ISO)点“Browse”选中你下载好的ubuntu-22.04.4-live-server-amd64.iso。重点来了不要勾选“Copy the installation disc to the virtual machine”这个选项会把ISO复制一份到虚拟机目录浪费空间且无必要。直接指向原ISO路径即可。第3步Virtual Machine Name and Location名称建议用语义化命名如ubuntu-dev-2204而非VM1。位置选在SSD盘如D:\VMs\机械硬盘会导致安装过程卡顿。VmWare默认把所有VM存在C:\Users\XXX\Documents\Virtual Machines\C盘爆满是新手常见悲剧。第4步Maximum Disk Size输入25GB后务必取消勾选“Store virtual disk as a single file”。选“Split virtual disk into multiple files”单个文件不超过2GB既方便备份可rsync增量同步也避免单文件过大导致云盘上传失败。第5步Customize Hardware点击后进入高级设置这是核心战场逐项确认Processors勾选“Virtualize Intel VT-x/EPT or AMD-V/RVI”这是启用嵌套虚拟化的开关后续若要在Ubuntu里跑Docker或K3s必须开。Memory滑块拉到2048MB下方勾选“Enable virtual memory page file on host”让VmWare用宿主机页面文件缓解内存压力。Network Adapter关键选“NAT Mode”不是“Bridged”。NAT模式下VmWare自动创建一个私有子网如192.168.121.0/24Ubuntu获取192.168.121.x地址通过宿主机NAT上网无需额外配置Bridged模式需宿主机在同一局域网有可用IP且易受路由器DHCP限制。CD/DVD (SATA)状态设为“Connected”勾选“Connect at power on”否则启动时读不到ISO。Printer USB Controller全关。虚拟打印机和USB设备在Server版里毫无用处还占资源。完成上述设置点“Close”再点“Finish”。此时虚拟机已创建完毕但尚未安装系统。3.3 Ubuntu安装过程详解从启动到登录的12个关键帧启动虚拟机后你会看到熟悉的Ubuntu紫色启动画面。全程无需键盘操作直到出现语言选择界面。以下是必须关注的12个关键帧每个都配图说明此处文字描述核心动作语言选择选“English”别选中文——中文输入法在安装器里常失灵且后续终端乱码风险高。键盘布局默认“English (US)”回车确认。网络配置自动获取IP。若卡住AltF2切到console执行sudo dhclient ens33网卡名可能为ens33或ens160用ip a查看。代理设置留空。国内用户若需加速可在http://后填公司代理但多数情况不需。镜像源关键选“Done”跳过用默认archive.ubuntu.com。国内用户可在此处选“Change Mirror”输入http://mirrors.tuna.tsinghua.edu.cn/ubuntu/但需确认该镜像站同步正常有时延迟24小时。文件系统选“Use an entire disk”回车。它会自动创建/根分区ext4和swap交换分区2GB。确认写入出现警告“Writing to disk is irreversible”按Tab键切到“Yes”回车。这是唯一不可逆操作。用户信息填用户名如devuser密码务必记牢。Ubuntu Server默认禁用root所有操作用sudo。SSH设置必须勾选“Install OpenSSH server”。这是远程管理的生命线。Featured Server Snaps全不选。Snap包在服务器环境臃肿且慢apt install才是正道。安装完成进度条满后提示“Installation complete”点“Reboot Now”。首次启动重启后出现ubuntu-dev-2204 login:提示符输入用户名和密码。成功登录即表示安装完成。常见问题若登录后黑屏或只显示光标AltCtrlF2切到TTY2执行sudo systemctl restart gdm3Desktop版或检查journalctl -u sshServer版。Server版本就不该有图形界面黑屏是正常的。4. 实操过程与核心环节实现装完之后的七项必做配置4.1 首次登录后的基础加固三分钟完成安全基线Ubuntu Server安装完系统是裸奔状态。必须立即执行以下加固否则连apt update都可能被中间人劫持更新系统并升级内核sudo apt update sudo apt full-upgrade -y sudo rebootfull-upgrade会处理依赖冲突比upgrade更彻底。重启后内核应升至5.15.0-91-generic。配置非root用户sudo免密可选但推荐编辑sudoers文件sudo visudo在%sudo ALL(ALL:ALL) ALL下方添加devuser ALL(ALL) NOPASSWD: ALL保存退出。此后sudo apt install无需输密码提升效率。启用UFW防火墙sudo ufw enable sudo ufw allow OpenSSH # 允许SSH sudo ufw status verbose # 查看状态默认拒绝所有入站只放行SSH杜绝暴力破解。注意sudo apt full-upgrade可能耗时10分钟以上期间不要关机。我习惯在执行前先screen -S upgrade建个会话防止网络中断导致升级中断。4.2 网络连通性深度验证不止于ping通更要穿透三层协议很多人以为ping 8.8.8.8成功就代表网络OK其实远不止。请按顺序执行以下四步验证物理层连通ip a查看ens33或类似网卡是否有inet 192.168.121.x/24地址。若无执行sudo dhclient ens33。网络层连通ping -c 4 192.168.121.2VmWare NAT网关地址。不通检查VmWare网络编辑器里NAT设置是否启用。传输层连通telnet 8.8.8.8 53测试DNS端口。若超时说明DNS未配置。编辑/etc/netplan/00-installer-config.yamlnetwork: ethernets: ens33: dhcp4: true nameservers: addresses: [114.114.114.114, 8.8.8.8] version: 2执行sudo netplan apply生效。应用层连通curl -I https://google.com。若返回HTTP 200说明HTTPS代理、证书、DNS解析全部正常。实操心得我写了个一键检测脚本netcheck.sh放在GitHub Gist里每次新装系统直接curl -sL gisturl | bash三秒出报告。脚本会自动执行上述四步并高亮失败项。4.3 宿主机-虚拟机文件共享告别SCP实现拖拽式互通VmWare Tools现为open-vm-tools已预装但共享文件夹需手动启用在VmWare菜单栏点“虚拟机”→“设置”→“选项”→“共享文件夹”选“总是启用”。点“添加”→“下一步”路径选宿主机一个文件夹如D:\shared名称填host-share勾选“启用此共享”。在Ubuntu中执行sudo mkdir -p /mnt/hgfs sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o uid1000此时/mnt/hgfs/host-share即映射到宿主机D:\shared。为开机自动挂载编辑/etc/fstab追加.host:/ /mnt/hgfs fuse.vmhgfs-fuse allow_other,uid1000,gid1000 0 0注意uid1000必须与你的用户ID一致用id -u查看。若填错挂载后文件属主为root普通用户无法读写。4.4 显示分辨率与剪贴板增强让虚拟机不再“糊”和“哑”Ubuntu Server默认无GUI但若你装了Desktop版或后续安装了XFCE等轻量桌面分辨率常卡在800x600。解决方法确保open-vm-tools-desktop已安装sudo apt install open-vm-tools-desktop -y重启显示管理器sudo systemctl restart gdm3GNOME或sudo systemctl restart lightdmXFCE进入桌面后右键桌面→“Displays”将分辨率调至“Recommended”。剪贴板同步同理sudo apt install open-vm-tools-desktop后无需额外配置CtrlC/CtrlV即可在宿主机与Ubuntu间互传文本。4.5 时间同步精准校准避免因时间漂移导致SSL证书失效虚拟机时钟易漂移尤其宿主机休眠后。Ubuntu 22.04默认用systemd-timesyncd但精度不够。改用NTPsudo systemctl stop systemd-timesyncd sudo systemctl disable systemd-timesyncd sudo apt install ntp -y sudo systemctl enable ntp sudo systemctl start ntp验证ntpq -p应显示*ntp.aliyun.com阿里云NTP或time1.google.com在列表中星号表示正在同步。提示VmWare设置里“虚拟机”→“设置”→“选项”→“VMware Tools”→勾选“Synchronize guest time with host”可作为第二道保险但不能替代NTP。5. 常见问题与排查技巧实录那些让你抓狂的“玄学”故障真相5.1 故障速查表按现象反向定位根因现象可能原因排查命令解决方案启动卡在“GRUB loading”UEFI固件未启用或ISO损坏重启进VmWare BIOSF2确认Secure Boot Disabled重新创建虚拟机固件类型选UEFI重新下载ISO并校验SHA256安装时黑屏光标闪烁显卡驱动未加载Server版正常AltF2进console执行lsmod | grep drm若无输出说明内核未加载drm驱动换用Ubuntu 20.04 LTS ISO测试SSH连不上端口拒绝OpenSSH未安装或防火墙拦截sudo ss -tlnp | grep :22sudo ufw status重装sudo apt install --reinstall openssh-serversudo ufw allow 22apt update超时域名无法解析DNS配置错误或网络未通cat /etc/resolv.confping 114.114.114.114按4.2节修改netplan配置指定nameservers共享文件夹/mnt/hgfs为空vmhgfs-fuse未运行或权限错误lsmod | grep vmwid -usudo modprobe vmhgfssudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o uid10005.2 我踩过的三个深坑说出来能帮你省三天坑一VmWare Network Editor里NAT设置被重置某次Windows系统更新后VmWare Network Editor里的NAT网关IP192.168.121.2被自动改成192.168.171.2导致所有虚拟机断网。排查时ip a显示Ubuntu获取到192.168.171.x地址但宿主机根本不存在这个子网。解决方案打开Network Editor→选NAT模式→点“NAT Settings”→手动改回192.168.121.2并确保“Use local DHCP service”已勾选。坑二Ubuntu启动后CPU占用100%top显示ksoftirqd/0进程霸榜这不是病毒是VmWare的网络驱动bug。Ubuntu 22.04内核5.15与某些VmWare版本如16.2.3的vmxnet3驱动存在中断处理缺陷。临时解法sudo ethtool -K ens33 gro off关闭GRO通用接收卸载永久解法升级VmWare到17.0或换用e1000网卡性能略降但稳定。坑三sudo apt upgrade中途断电系统变砖dpkg进程被kill后/var/lib/dpkg/status文件损坏后续所有apt命令报错“dpkg was interrupted”。别重装执行sudo dpkg --configure -a sudo apt install -f sudo apt update sudo apt full-upgrade--configure -a会修复未完成的包配置install -f修正依赖90%的“半残系统”都能救活。最后分享一个小技巧每次成功配置好一台Ubuntu虚拟机后立即在VmWare里创建一个快照命名为“clean-base-2204-fully-patched”。后续所有新项目都以此快照为起点克隆比重装快十倍且保证环境纯净一致。这是我带团队时定下的铁律——所有人的开发环境必须基于同一快照衍生。