资讯中心

VMware虚拟机安装配置Ubuntu 22.04完整指南:从环境搭建到开发实战

📅 2026/9/29 15:34:57
VMware虚拟机安装配置Ubuntu 22.04完整指南:从环境搭建到开发实战
1. 虚拟机装Ubuntu到底解决什么问题1.1 什么场景真正需要虚拟机而不是直接装双系统我见过太多人搜索“Vmware配置ubuntu”点进去之后发现教程只讲了一小半装完系统就没了。其实你搜这个关键词背后大概率是这几类需求学校课程要求用Linux做实验公司给了一台Windows电脑但你得在Linux环境里跑服务或者你单纯想体验一下Ubuntu又不敢动现有系统。先说结论虚拟机和双系统是两回事选错了能把你折腾到怀疑人生。双系统是给那种“我确定接下来几个月主力就是Ubuntu、Windows偶尔用”的人准备的但它有个致命问题——启动引导一旦出问题Windows可能直接进不去新手处理起来非常狼狈。而VMware虚拟机是在Windows里开一个隔离环境Ubuntu只是里面一个“窗口里的系统”坏了删掉重建就行完全不影响宿主机。所以如果你只是学习、测试、跑课程作业虚拟机是更稳的选择。我还见过一类人问“虚拟机是不是很卡”这其实不完全取决于软件而取决于你的硬件资源分配。VMware本身在做资源转换的中间层CPU和内存被虚机分走之后宿主机和虚机之间是有争夺的。以我实测的体验只要你的物理机内存不低于16GB、CPU是近五年内的i5/R5起步给Ubuntu分配4核8GB内存跑日常开发是完全流畅的和装双系统几乎没有体感差别。1.2 版本选型VMware Workstation Pro与Ubuntu的黄金组合版本选型是很多人忽略但极其关键的一步。我强烈建议用VMware Workstation Pro 17不要用那些“精简版”“绿色版”“学习版”原因只有一个你后面会遇到快照、克隆、共享文件夹、USB设备透传这些高级功能精简版把这些功能砍掉不说还可能附带绑定全家桶。VMware社区里绕来绕去的老版本也尽量别用——老版本对新CPU的虚拟化指令支持不完整装Ubuntu新内核时会出现莫名其妙的“Kernel panic”或CPU过热报错。Ubuntu这边长期支持版才是首选。现在最稳的是Ubuntu 22.04 LTS它发布于2022年4月官方维护到2027年中间还会滚动更新小版本社区资料极其丰富踩过的坑随便搜都能搜到答案。不要因为好奇心去装24.04之类的非LTS或者每天更新的Dev版本它的内核、桌面环境、apt源解析链路都可能比22.04更激进遇到问题排查成本高好几倍。对新手来说“资料好找”比“版本新”重要得多。下载Ubuntu镜像时一定认准官方渠道不要从第三方下载站拿ISO那些站点经常只换壳不换内容有的甚至偷偷塞了修改过的installer脚本。官网有CDN加速国内下载速度通常也不差但如果你下载慢得无法接受可以去国内高校的开源镜像站拿同一个官方文件校验SHA256一致就行。1.3 配置前的物料清单开始动手之前先把下面这些东西准备好别中途卡住再去找VMware Workstation Pro 17安装包建议去官网获取正式版本Ubuntu 22.04.4 LTS桌面版ISO镜像大小约4.5GBWindows宿主机预留至少60GB空闲磁盘空间虚拟磁盘会随着使用增长别只留40GB后面装Docker镜像、编译缓存都吃磁盘宿主机BIOS里确保开启了Intel VT-x或AMD-V虚拟化这个很关键后面排查启动报错时你会发现高频原因就是它没开我把版本选型和物料列在第一部分是因为太多人栽在起跑线上——用错了安装源装了错误版本后面所有步骤都跟着白费。这一部分你只要照抄就行等你熟练了再尝试非主流版本也不迟。2. 创建虚拟机时的关键配置不能凭感觉2.1 新建向导中那些选项的隐藏含义VMware创建虚拟机有两种入口一种直接拖拽ISO到主界面另一种是新建向导。我推荐第二种因为你能在创建阶段就把资源分配好而不是装完系统再回过头改配置。打开Workstation Pro选择“创建新的虚拟机”第一页让你选“典型”还是“自定义”。这里直接选典型自定义里面的硬件细节后面随时能改典型向导它自动把常见参数设好省时省力。接下来会问安装来源选择“安装程序光盘映像文件(iso)”浏览选中你下载的Ubuntu ISO。下个关键点是“客户机操作系统”选择这里别手滑选错Linux → Ubuntu 64位。VMware会根据这个选项决定固件类型BIOS还是UEFI和虚拟硬件模型选错的话安装界面可能出现GRUB引导错乱。继续往下设置虚拟机名称。名称本身没特別要求但建议用“Ubuntu-22.04-Dev”这种带版本号的格式方便你以后开好几台虚拟机时一眼认出是哪台不用点进设置里看系统信息。2.2 CPU、内存、磁盘怎么分配才不卡这是整篇博文最该抄作业的部分。给你一套我实测稳定的分配参数表宿主机配置推荐虚机CPU推荐虚机内存推荐磁盘场景16GB内存 6核以上4核8GB80GB日常学习、写代码、跑数据库32GB内存 8核以上6核16GB120GBDocker、编译大型项目、跑多个服务8GB内存老机器2核4GB40GB纯命令行学习、基础命令实验内存分配是数学题。物理机16GB你给虚拟机8GB再算上Windows自身占用6~7GB剩余空间就非常紧张了宿主机会开始把内存页交换到磁盘整个系统都变得迟钝。所以我上面给的“16GB宿主机给8GB”是取平衡点的方案——既能跑桌面版Ubuntu的GNOME环境又不至于让Windows卡到不能打字。磁盘分配有两个细节容易踩坑第一虚拟磁盘不是一创建就占满它是按需增长格式。你给虚拟机设了80GB上限刚开始实际占用可能只有10GB所以建议“把上限设大一点”留成长空间第二如果你后续计划在这台虚拟机上跑Docker扩容磁盘的路径比较折腾——虽然可以后期在VMware设置里调大但分区表要用GParted这类工具去调整成本远高于一开始就多分配一点。宁可设大用不到也不要设小后期折腾。2.3 虚拟机设置里容易被忽视的三个优化项向导走完只是创建了空壳真正影响使用体验的细节在“编辑虚拟机设置”里。第一个是“处理器”标签里的“虚拟化引擎”选项。如果你的CPU支持Intel VT-x/AMD-V这里有个“虚拟化Intel VT-x/EPT”或“虚拟化AMD-V/RVI”的可选项。这个选项的作用是让虚拟机内部可以再跑虚拟机嵌套虚拟化。如果你打算在Ubuntu里再用DockerDocker并不是虚拟机而是容器理论上不需要这个选项但有些Docker镜像基于KVM构建开了这个选项兼容性更好建议直接勾上。第二个是“显示器”标签。“加速3D图形”很多人不勾导致Ubuntu桌面动画掉帧、窗口拖动像幻灯片。这个选项会借助宿主机的GPU资源做OpenGL渲染GNOME桌面开启后明显流畅很多。但注意如果宿主机是核显没有独立显卡勾了这个提升也有限至少不会变卡。第三个是“USB控制器”默认设置为USB 2.0。如果你想向Ubuntu里传文件默认的USB 2.0速度只有几十MB/s传输大文件很痛苦。手动改成USB 3.1实测传单个4GB文件能跑满磁盘速度效率差距巨大。2.4 挂载ISO引导安装的两种途径创建向导时如果选了ISO路径虚拟机会自动挂载并直接从光盘启动。但如果你已经建好了虚拟机后来又想装系统就得手动挂载打开虚拟机设置 → 硬件 → CD/DVD → 使用ISO映像文件选中Ubuntu的ISO。这里有个真坑挂载完ISO后开机可能会直接显示“Operating system not found”而不是进入安装界面。原因通常是启动顺序问题。开机瞬间不断按F2进入虚拟机的BIOS把“CD-ROM Drive”挪到第一位或者开机时快速按ESC调出启动菜单直接选CD光驱。我调试过的虚拟机里十台有七八台都是这个原因不用瞎折腾重装。另外有个习惯建议Ubuntu安装完成正常启动后记得在虚拟机设置里把CD/DVD的“启动时连接”取消勾选或者直接选择“使用物理驱动器”让ISO不再参与每次启动流程省得开机加载光盘时额外等待几秒。3. 安装Ubuntu 22.04时的几个分水岭3.1 分区方案怎么抉择整块磁盘还是手动分区Ubuntu安装到分区那一步时会问你“Install Ubuntu alongside… (与现有系统共存)”或“Erase disk and install Ubuntu (清除整个磁盘并安装)”。在VMware虚拟机里虚拟磁盘是独立的宿主机的Windows分区不会被碰所以别怕“清除磁盘”这个选项——它清除的是虚拟磁盘不是物理机硬盘。如果你只是把Ubuntu当日常使用的系统直接选“清除整个磁盘并安装Ubuntu”就行安装程序会自动创建EFI分区、swap交换分区、ext4根分区。但如果你打算用这台虚拟机做开发我建议选“手动分区”因为自动方案给根分区留的空间可能不够大。手动分区的推荐布局是这样的在空闲空间上先创建一个200~500MB的EFI系统分区挂载点/boot/efi类型FAT32这主要给UEFI引导用然后创建一个等于物理内存大小的swap区类型swap例如8GB内存就做8GB swap剩下全部空间分给根分区挂载点/类型ext4。有些人会单独分一个/home这在物理机上确实方便重装系统保护数据但在虚拟机里意义不大——快照功能已经能帮你备份整台系统单独分/home反而容易把空间切碎根分区不够用。提示如果你是第一次安装、还不太理解分区概念那就选“清除整个磁盘并安装Ubuntu”安装完用“Disk Usage Analyzer”看一下空间分布等摸熟Linux的分区逻辑后再尝试手动分区避免瞎分导致以后扩容困难。3.2 用户密码和全盘加密的取舍Ubuntu安装时有一个“加密Ubuntu安装”的选项勾选后需要设置一个加密密钥开机必须先输入密钥才能加载系统。在物理机或云服务器上这功能非常重要——硬盘丢了别人也读不出数据。但在虚拟机上这个功能的收益就很低了。原因有两点。第一VMware的虚拟磁盘文件vmdk就在宿主机硬盘上如果宿主机本身不安全虚拟机的磁盘文件直接拷走慢慢暴力破解加密密钥的意义也很有限第二加密会增加每次开机的等待时间和CPU开销虚拟机本来就是你随意创建销毁的临时环境没必要额外加这一道锁。所以我的建议是不勾选全盘加密保持默认无加密这样以后遇到忘记密码之类的故障还能通过单用户模式重置带加密的情况下恢复流程会复杂很多。用户名建议使用全小写英文单词不要带空格和特殊符号因为很多开发工具、Docker容器名称、node_modules路径都假定用户名是标准的英文标识符。我见过有人起了个带“.”的用户名结果编译某些软件时脚本直接报错。用户名还会影响home目录路径如/home/username之后配SSH、装环境变量都会用到这个路径越规范越好。3.3 安装完成后的首次启动要做什么系统装完自动重启虚拟机会从虚拟硬盘启动。首次看到Ubuntu欢迎界面时先别急着点“Next”一路到底。第一步建议等待桌面完全加载右键打开“Settings”检查两个东西——网络是否已经连上右上角网络图标应该不是问号以及“About”里确认系统确实识别了你的CPU核数和内存大小。如果网络图标显示问号或感叹号大概率是虚拟网卡没拉到IP先启用网络再继续别跳过这步后面所有apt命令都依赖网络。首次进系统后它会提示你连接Online AccountsGoogle、Microsoft等、启用Livepatch、帮助改进Ubuntu之类的引导项。在虚拟机里Online Accounts你根本用不到Livepatch只对Ubuntu Pro订阅用户有意义这些全部选择“Skip / Dont enable”。以我装过几十次的经验这些引导项只会在配置环节浪费你的时间而不会给你带来任何实际收益。初次启动还有一件许多人忘记的事让系统自动更新到最新补丁。Terminal里依次执行sudo apt update和sudo apt upgrade -y看到“upgraded X packages”后重启一次让内核和驱动都到位再继续装其它软件。如果你跳过这一步直接装开发工具可能会在编译时遇到一些因为内核头文件版本过旧导致的诡异报错排错成本非常高。3.4 VMware Tools的选择别再用旧方法装显卡驱动很多老教程讲到这一节会告诉你“安装VMware Tools可以增强显示、复制粘贴、文件拖拽”然后让你从虚拟机菜单里“Install VMware Tools”挂载一个ISO进去执行vmware-install.pl。这方法在旧版本VMware里确实管用但到了VMware Workstation Pro 17加上Ubuntu 22.04这个组合它有更好的替代方案——直接安装open-vm-tools-desktop。原理是open-vm-tools是VMware Tools的开源版本已经包含在Ubuntu官方软件源里而且对Wayland显示服务器的支持比闭源版更好。你在VMware里手动安装闭源VMware Tools经常遇到的问题是版本太旧、与内核模块不匹配每次内核升级后还得重装一次。而open-vm-tools会跟随系统更新一劳永逸。安装命令很简单sudo apt update sudo apt install open-vm-tools-desktop -y sudo reboot装完后虚拟机窗口里的“自适应分辨率”“文件夹拖拽共享”“剪贴板互粘”大都直接生效。如果你发现拖拽文件依然不工作去虚拟机设置里确认“共享文件夹”功能已开启或者在Ubuntu端检查/mnt/hgfs目录是否已挂载。这一步是很多人装完Ubuntu后觉得“鼠标乱飞、窗口无法自适应”的根源先解决它能省后续大量痛苦。4. 系统装完才是配置的开始4.1 网络模式NAT还是桥接各自适用场景Ubuntu装好后VMware默认的虚拟网络模式是NAT。它的工作机制是虚拟网卡通过宿主机做一次地址转换来访问外网虚拟机自己拿到的IP是内网地址通常192.168.x.x。NAT模式下虚拟机可以访问外网比如apt update、浏览器上网但外部设备无法直接访问虚拟机里的服务。桥接模式则不同虚拟机像是直接插在你家路由器上的一块独立网卡它会从路由器获取一个与宿主机同一网段的IP。这样局域网的其它设备包括你的手机都可以直接访问虚拟机上跑的服务。如果你只是日常学习NAT模式的“能出去但进不来”反而更安全——起码不会有其他人在局域网上嗅探你虚拟机里的端口。如果你想练一下SSH远程登录或者把虚拟机里的Web服务开放给局域网测试再切换到桥接。切换路径虚拟机设置 → 网络适配器 → 勾选“桥接模式”同时在“复制物理网络连接状态”前打勾这样宿主机拔插网线时虚拟机网络不至于断掉。改完之后到Ubuntu里sudo dhclient -r sudo dhclient重新获取IP或者直接重启系统确保拿到新IP。我遇到过一种情况网卡从NAT切到桥接后IP还是旧的导致网关不通把网络适配器断开重连一次就好不算疑难杂症。还有人在虚拟机里配了静态IP结果换了个网段就连不上网了。虚拟机环境的IP稳定性好NAT模式下完全没必要手动配静态IP沿用DHCP就行被VMware默认网关接管后稳定性足够高。4.2 apt换源为什么必须换、怎么换、换了会踩什么坑这是“Vmware配置ubuntu”热搜词背后最大的隐性需求。默认安装完Ubuntu软件源指向的是国外官方服务器在大陆网络环境下 apt update 的速度时快时慢经常卡在某某PPA几秒钟不动。换源的本质是让 apt 从国内镜像服务器拉包这些镜像服务器同步了Ubuntu官方软件仓库内容一致但物理距离近速度能提升到几十MB/s。官方最稳妥的换源方式是编辑/etc/apt/sources.listUbuntu 22.04默认可能用/etc/apt/sources.list.d/ubuntu.sources文件注意确认路径。国内高校镜像站都提供了换源脚本或配置文件直接照着对应系统的文档下载替换即可。以阿里云镜像为例把仓库地址里的archive.ubuntu.com或security.ubuntu.com换成mirrors.aliyun.com同时保留jammy和jammy-updates、jammy-security这些仓库类别。换源后的第一个动作一定是sudo apt update让它重新拉取索引。这一步如果报错“The repository ... is not signed”或者“Failed to fetch”之类的十有八九是源文件里混入了不该有的多行仓库地址或者你把deb-src也写进去了但没有启用对应组件。把源文件改回干净状态按镜像站文档给的原始文本粘贴不要自由发挥。换源还有一个常见坑只换了主仓库没换security仓库导致系统安全更新还是从国外拉apt upgrade时速度依然慢。注意你的源文件里一定要包含security那一行并把它的地址也换成镜像站。检查方法很简单——apt update后没有任何warningupdate输出尾部出现“Reading package lists... Done”才算真正干净。4.3 基础配置中文输入法、防火墙、通用开发工具中文输入法是新手高频踩坑区。装完Ubuntu默认是IBus输入框架你可以直接在“设置 → 键盘 → 输入源”里点“”添加“Chinese (intelligent pinyin)”。按理说这已经够用但有些桌面环境里智能拼音的候选框不跟随光标用起来很别扭。如果遇到这种情况可以安装fcitx5框架和其拼音模块。安装完注销重登在输入法里切换为fcitx5再添加拼音即可。这一步不是必须换但如果你每天要打大量中文体验差异还是很大的。防火墙方面Ubuntu默认装有ufw但默认状态是inactive不拦截任何流量。虚拟机安全性主要取决于用途如果只是为了学习开发保持默认就行如果你要在里面跑MySQL、Redis之类对外服务建议开启ufw并按需放行端口sudo ufw enable sudo ufw allow ssh sudo ufw allow 3306/tcp sudo ufw status verbose开发工具里有两个高频安装项curl、git、build-essential里面包含gcc/g/make。build-essential对编译非常重要很多源码安装的第一步都要求有这个工具集。如果你在虚拟机上还要用Visual Studio Code连接远程开发可以顺手装一个openssh-server后面配合VSCode的Remote-SSH扩展非常舒服。4.4 快照配置前的保命操作在整个配置过程中有一件事你必须在任何可能会破坏系统的操作前做——创建VMware快照Snapshot。快照类似于游戏里的存档它会记下当前虚拟机的磁盘状态、内存状态和硬件配置之后无论你在系统里做了什么装了什么乱七八糟的软件、改了哪个配置文件、删了哪个库都能一键恢复到快照时刻。在VMware主界面点“虚拟机 → 快照 → 拍摄快照”命名建议直接写当前配置的阶段比如“Before-apt-mirror”“After-nginx-install”恢复时一眼就能定位。我自己的习惯是系统刚刚装完、基础工具装齐之后立刻拍一个“Base-Clean”快照。这个快照就是我的“系统出厂状态”以后每个月或者要尝试高风险操作时要么直接回溯到这个状态要么在当前状态再拍一个临时快照。快照虽然好用但要注意两点第一快照会占用宿主机磁盘空间一个快照可能占几GB到十几GB不等而且快照保留的是差异数据时间越久占空间越大建议平时只保留两三个快照确定稳定后把中间过程快照删掉第二不要在虚拟机开机状态下对磁盘做大改动的同时拍快照比如正在执行dd写整个磁盘这时快照的一致性很难保证恢复时可能出现文件系统损坏。核心原则就一句话改动前必快照稳定后清快照。5. 开发环境的搭建顺序与避坑5.1 安装gcc失败的常见原因与解决“ubuntu安装gcc失败”在热搜里出现不是偶然我见过太多人直接在Terminal里敲sudo apt install gcc然后看到一大串“Unable to locate package gcc”或者其他依赖错误。通常不是gcc这个包不存在而是源没有更新到位。新装的Ubuntu系统软件索引可能是空的直接安装任何包都会提示locate不到。解决办法很简单sudo apt update sudo apt install gcc g make如果更新源之后仍然报错检查你换了哪个镜像源把/etc/apt/sources.list或/etc/apt/sources.list.d/ubuntu.sources的内容和镜像站文档对照一遍。经常出现的错误是仓库路径复制时把版本代号写错比如把jammy写成jellyfish导致apt update搜索不到包。确认版本代号最简单的方法是执行lsb_release -a输出结果里会显示当前Ubuntu版本代号用它来对照源文件。还有一种情况是gcc确实装了但运行gcc --version提示command not found。这种多发生在PATH环境变量被污染时比如之前折腾过Java环境变量但很少见。先检查是否在/usr/bin下ls -l /usr/bin/gcc*如果文件不存在说明安装并没有成功落地。如果文件存在但命令找不到说明PATH里少了/usr/bin这个默认路径这往往是环境变量配置错误导致的问题下一节会专门讲。5.2 nodejs与git安装以及source命令的坑在Ubuntu上配开发环境常见的顺序是先装基础编译工具再装git、nodejs。git的安装很直接sudo apt install git -y git config --global user.name YourName git config --global user.email youexample.com不配全局用户信息的话第一次git commit会强制你补这些字段少不了一轮折腾。nodejs就有意思了。Ubuntu软件源里的nodejs版本往往偏旧22.04默认源里可能是v12或v18这种较老版本。如果你只是跑一些工具脚本旧版本也能用但如果你要跑现代框架Vite、Next.js、Express等建议通过NodeSource源安装最新LTS版。常见安装方式是加入NodeSource的仓库curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt install -y nodejs这里容易翻车的是网速拉跨导致setup_20.x脚本下载失败或者脚本依赖ca-certificates没装齐。把ca-certificates先装上再执行脚本会顺很多。装完nodejs后npm install -g安装全局包时可能会遇到权限报错这通常是npm全局目录不属于当前用户。两种解法一是用sudo装全局包二是给npm配置用户级目录。我推荐后者因为sudo装npm包往往带来后续所有node命令都需要sudo的连锁麻烦mkdir -p ~/.npm-global npm config set prefix ~/.npm-global echo export PATH$PATH:$HOME/.npm-global/bin ~/.bashrc source ~/.bashrc最后一个source ~/.bashrc是高频坑点。很多教程直接告诉你要执行source ~/.bashrc让环境变量生效但如果你是用图形界面打开的Terminal通常Terminal在启动时已经加载过一次bashrc修改后再source一次直接生效。如果你是在脚本里source注意脚本环境是bash的子shellsource之后环境变量只在当前shell会话里生效新开的终端窗口才能永久使用。忘记这一步你敲node -v会提示command not found然后又开始怀疑人生。5.3 MySQL安装后的初始化与远程访问陷阱MySQL在Ubuntu里的安装不算难一条sudo apt install mysql-server就完事。但安装之后的几步不走对你会遇到“ERROR 1698 (28000): Access denied for user rootlocalhost或者完全连不上服务的问题。Ubuntu下的MySQL root用户默认使用auth_socket插件认证这意味着只有系统root用户通过sudo登录MySQL才能绕过密码直接sudo mysql进去。这不是bug是一个比较稳妥的安全默认值。但它让开发变得别扭——你写代码时不想每次都用sudo去连数据库。所以通常我会创建一个普通应用账号sudo mysql CREATE USER devlocalhost IDENTIFIED BY your_password; GRANT ALL PRIVILEGES ON *.* TO devlocalhost; FLUSH PRIVILEGES;关于远程访问MySQL默认只监听127.0.0.1如果你想从宿主机Windows的Navicat或其他客户端连接虚拟机里的MySQL需要改配置文件让MySQL监听所有网卡。在Ubuntu 22.04的MySQL 8.0版本中配置文件在/etc/mysql/mysql.conf.d/mysqld.cnf把bind-address 127.0.0.1改成bind-address 0.0.0.0然后重启MySQL。远程访问还要在MySQL里给账号加主机范围把devlocalhost改成dev%CREATE USER dev% IDENTIFIED BY your_password; GRANT ALL PRIVILEGES ON *.* TO dev%; FLUSH PRIVILEGES;同时确认一下第4.3节里ufw防火墙是否放行了3306端口。我见过最典型的封闭式报错“Cant connect to MySQL server on 192.168.x.x (10060)”——不是MySQL挂了而是防火墙拦了3306。5.4 Docker安装与用户组权限搜索热词里“ubuntu安装docker”出现频率很高。Ubuntu 22.04装Docker用官方仓库比apt源自带的版本更新更及时sudo apt update sudo apt install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod ar /etc/apt/keyrings/docker.gpg echo deb [arch$(dpkg --print-architecture) signed-by/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release echo $VERSION_CODENAME) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y还没完。装完docker后直接执行docker ps大概率会得到“permission denied while trying to connect to the Docker daemon socket”。这是因为当前用户不在docker组里。Docker daemon socket默认只有root和docker组的用户能访问你需要把用户加进docker组sudo usermod -aG docker $USER然后重点是注销并重新登录或者重启虚拟机。许多新手加了组不重启直接在同一个终端里试还是会失败这是最典型的Docker“群组权限未生效”案例。重新登录后执行id -nG输出列表里包含docker就说明加成功了。另外Docker在VMware虚拟机里运行还有一个性能问题默认存储驱动是overlay2在虚拟磁盘上表现正常。但如果你在给虚拟机分配的磁盘太小镜像拉取或者容器写数据时很容易把磁盘塞满然后Docker给出“No space left on device”的报错。预防方法就是第2.2节里提醒的初始磁盘分配给大一点。5.5 VSCode与Java/Maven环境变量配置经验如果你习惯用VSCode做开发在Ubuntu上有两种方案一是直接在虚拟机里安装Linux版VSCode二是Windows宿主机装VSCode通过Remote-SSH扩展连接虚拟机开发。两种我都用过在虚拟机里开原生VSCode对资源占用更重远程模式更轻快而且提速可以直接复用Windows的图形加速。个人更推荐第二种。搜索热词里还有“vscode配置c/c环境”“vscode python环境配置”实际上在虚拟机里的坑和Windows上差不多装对应语言插件配置launch.json与tasks.json。核心区别在于——虚拟机里的gcc/g编译路径在/usr/bin/gccVSCode默认也能探测到而Python的venv虚拟环境路径则取决于你建venv时的目录别把Windows习惯带进来注意路径区分。Java环境变量是另一个高频坑。Ubuntu上安装OpenJDK很简单sudo apt install openjdk-17-jdk -y但如果你需要手动配置JAVA_HOME比如跑Maven就需要知道OpenJDK实际安装路径。用which java找到路径后回溯到上级目录比如/usr/lib/jvm/java-17-openjdk-amd64然后写进~/.bashrcexport JAVA_HOME/usr/lib/jvm/java-17-openjdk-amd64 export PATH$JAVA_HOME/bin:$PATHMaven装好后同样把它加到PATH里。这里有个血泪教训千万别把export PATH$PATH:/usr/bin这种把自己手动改坏——如果你把某一行PATH配置写错比如把$PATH漏掉当前终端会立即丢失所有命令路径连ls都用不了。万一这种情况发生别慌用绝对路径/usr/bin/echo $PATH查看当前值再用/bin/vi改回~/.bashrc或者直接/bin/export PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin临时救急。这就是热词里“ubuntu环境变量配置错误”最常见的止损路径。6. 高频故障排查速查6.1 忘记登录密码怎么重置这个坑在热词里排名靠前我甚至认为很多人需要“Vmware配置ubuntu”教程就是因为密码忘了满世界找重置方法。虚拟机忘记密码比物理机好处理因为你能通过VMware的“重启虚拟机”按钮快速重启。重置Ubuntu密码的原理是进入恢复模式的root shell。重启虚拟机在引导菜单GRUB菜单处快速连按Esc或Shift进入GRUB后选择“Advanced options for Ubuntu”然后选择带“(recovery mode)”的内核条目。接着在recovery menu里选择“root”此时能拿到root权限的shell。拿到root shell后执行mount -o remount,rw / passwd your_username然后重启用新密码登录。遇到过两个小问题一是GRUB菜单一闪而过根本按不出来这通常是VMware虚拟机的BIOS启动太快可以在虚拟机设置里把“开机启动时延迟”调大或者按住Shift不放直到菜单出现二是在recovery mode里文件系统是只读的直接执行passwd会报错必须先执行那一行重挂载命令让它可写这在很多教程里都没提到。6.2 环境变量配置错误导致命令找不到环境变量问题的自救要领就三条第一别慌第二记住绝对路径也可以执行命令第三修复优先于重装。如果你在一个终端里改了~/.bashrc后立刻source源文件有语法错误比如漏了引号或者$PATH写错当前终端马上所有命令提示not found。此时请直接打开一个新终端新终端会重新加载bashrc如果bashrc彻底坏掉新终端也会失效用绝对路径打开编辑器/usr/bin/nano ~/.bashrc把出错的哪一行注释或删除保存退出。如果连新终端都不行就用终端顶部菜单打开“Preferences”用不加载配置的方式启动一个干净shell/bin/bash --noprofile再手动修复文件。这类问题的根因通常是复制粘贴时把Windows下的回车符带进来bash解析时行为异常。检查方法/usr/bin/cat -A ~/.bashrc如果行尾出现^M$就说明有Windows换行符用/usr/bin/sed -i s/\r$// ~/.bashrc清理后再source。6.3 显卡驱动卸载不掉的处理思路热词里“ubuntu显卡驱动卸载不掉”比较有意思因为这个问题在物理机上更常见但虚拟机也会被波及。虚拟机的显卡是虚拟的Ubuntu默认会加载VMware虚拟显卡驱动集成在open-vm-tools里。如果你手动装了闭源NVIDIA驱动宿主机是N卡且不小心在虚拟机里也装了NVIDIA驱动就会遇到卸载不掉、重启黑屏等麻烦。处理思路其实简单因为虚拟机的显卡不是真实N卡闭源NVIDIA驱动在这环境里毫无用处直接卸载sudo apt purge nvidia* sudo apt autoremove sudo reboot如果你的Ubuntu版本对虚拟显卡驱动支持不完善卸载后分辨率锁死在800x600也不要担心再执行sudo apt install xserver-xorg-video-fbdev和open-vm-tools-desktop就能恢复。这个问题的本质是“虚拟机里装啥驱动都拦不住系统崩溃”回归虚拟显卡驱动是正解。6.4 虚拟机启动故障速查表把Launch阶段的高频故障整理成表方便你排查时对照。这一部分的信息不算新鲜但都是我在胶水环境里反复验证过的结论现象常见原因解决方案启动报“This host supports Intel VT-x but Intel VT-x is disabled”或AMD-V类似字样宿主机BIOS关闭了虚拟化重启进BIOS打开Intel VT-x/AMD-V再启动VMware卡在开机logo或黑屏VMware版本与ISO内核不兼容升级VMware 17最新版或改用22.04.4镜像安装时网络不可用NAT适配器未正确连接虚拟机设置里把网络适配器改为NAT并重连安装完后无法自适应分辨率缺少open-vm-tools-desktop安装并重启系统整体卡顿分配给虚拟机的硬件资源不足调大内存/CPU核数关闭3D加速磁盘占用暴涨、虚拟磁盘文件膨胀快照过多或磁盘碎片删除旧快照定期用sudo fstrim -v /回收空间虚拟机关机按钮无效内核模块冲突或busy状态在Terminal执行sudo shutdown -h now而不是用VMware挂起还有一个常被人忽略的启动问题虚拟机无法关机一直卡住。遇到这种情况先在宿主机里开任务管理器看vmware进程是否卡死卡死就强制结束进程别直接拔电。如果只是系统挂起尝试用CtrlAltDelete登录界面发关机指令仍不行就快照恢复。7. VM里的Ubuntu还能怎么玩写完上面这些我的一个直接建议是虚拟机里的Ubuntu装好之后别急着急着“到此为止”用顺手之后完全可以拿它干更多事情。快照回到干净状态后把每次踩坑修复的过程再走一遍形成自己的“初始化脚本”也是一种练习。我在实际使用中体会最深的是虚拟机的价值在于随意折腾反正坏了大不了回快照所以每次新需求都值得先在里面试试再决定要不要铺到物理机上。最后再分享一个小技巧给虚拟机拍快照之前先执行一次sudo sync把文件系统缓存写入磁盘确保快照捕获到的数据是一致的。这个细节极少有人注意但能避免不少恢复时文件残留的问题。VMware加Ubuntu这套组合一旦把资源分配和快照策略用顺了它就是你开发工作流里最稳定、最不起眼的工具之一。

看完文章,想为自己的企业也做一次专业网站诊断?

尧图顾问免费为您评估现有网站,并给出建站/改版建议与报价方案。

免费获取方案