☰
VMware 安装 Ubuntu 22.04 全流程避坑与开发环境配置
2026/9/30 8:25:44 网站建设 项目流程

上周帮同事在他的笔记本上装 Ubuntu 22.04,前后折腾了四十分钟,其中三十分钟全耗在一堆看起来毫不起眼的选项上:虚拟磁盘默认给了 20G、网络模式顺手选了桥接结果校园网认证直接失败、装完发现从宿主机 SSH 死活连不上。这些坑几乎每个人第一次用 VMware 装 Ubuntu 都会踩一遍,跟技术水平关系不大,纯粹是没人提前告诉你哪几个选项会埋雷。这份内容就是把我这些年反复装了几十次虚拟机 Linux 的流程完整摊开:从虚拟机软件的准备、Ubuntu 22.04 LTS 镜像的挑选与校验,到安装向导里每一屏到底该怎么选,再到装完之后的中文输入法、Docker 环境、SSH 和共享文件夹该怎么配。它适合三类人——第一次碰虚拟机的新手、想在本机搭一套干净 Linux 开发环境的人,以及装完系统遇到各种奇怪报错想找答案的人。全程不需要额外的硬件,一台内存 16G 以上的普通电脑就够。

1. 先把账算清楚:虚拟机跑 Ubuntu 到底解决什么问题

1.1 双系统、纯 Linux 主机、虚拟机三条路的真实边界

很多人一开始纠结的是"要不要装双系统",我的答案很直接:如果你只是想在 Linux 里写代码、跑测试、学运维命令,别碰双系统。双系统的代价是每次切换都要重启,分区一旦划错就是数据事故,而且 Ubuntu 桌面版对某些新硬件的无线网卡、指纹模块支持得并不好,装完之后你可能会陷入"系统能开机但连不上网"的窘境。

纯 Linux 主机则是另一种极端,它适合把这台机器彻底当开发机用的人。虚拟机夹在两者中间,最大的价值是"隔离"和"可回滚"——你可以在里面随便折腾,删错文件、改坏配置、装崩依赖,最坏的结果无非是回滚一个快照,宿主机上的 Windows 一点事没有。这个特性对学习 Linux 的人来说太重要了,因为新手最容易犯的错就是"照着教程敲了 sudo rm",有快照兜底你才敢真正动手。

从资源账来看,虚拟机也不是没有代价。它本质上是在你的 Windows 里开了一个独立的内核,CPU 和内存都是实打实被分走的。所以判断标准很简单:宿主机内存 16G 起步才建议跑图形界面的 Ubuntu,8G 内存的机器要么加内存,要么只能跑不带桌面的 Server 版。

1.2 内存和磁盘到底该分多少,给两个具体算式

先说内存。Ubuntu 22.04 桌面版官方给的最低要求是 4G,但这个数字只能保证系统能启动,打开浏览器再跑个 IDE 就开始疯狂读交换分区了。我自己的经验是:

  • 宿主机 16G:虚拟机分 4G,够日常写代码、跑 Docker 单容器
  • 宿主机 32G:虚拟机分 8G,可以同时开 IDE、浏览器、几个容器
  • 宿主机 8G:别装桌面版,直接上 Ubuntu Server 或考虑别的方案

再说磁盘。VMware 新建向导默认给 20G,这个数字在 2024 年基本不够用,光是系统加常用软件就吃掉 12G 左右,再装个 Docker 镜像、拉几个 JDK 版本,磁盘瞬间飘红。我的建议是直接给 40G 起步,做 Android 或机器学习相关开发的给 60G 到 80G。

注意:VMware 新建时填的磁盘容量是"上限"而不是"立即占用"。它用的是精简置备,你填 60G,实际占用是随着文件增长慢慢涨上去的,所以放心填大一点。

CPU 核心数的分配有个简单原则:不要超过宿主机的物理核心数。比如宿主机是 8 核 16 线程,给虚拟机 2 到 4 个核心就足够,给太多反而会因为调度开销拖慢宿主机。这里有个容易被忽略的细节——VMware 里填的是"处理器数量 × 每个处理器的核心数",如果你填成 2 个处理器 × 4 个核心,Ubuntu 会认为自己是一台双路机器,某些软件的授权计算会变得很奇怪,所以我一般统一填 1 个处理器,核心数按需填。

1.3 装系统之前,先想清楚这台虚拟机要拿来干嘛

这个准备工作看着多余,其实决定了后面一连串参数怎么填。如果只是学 Linux 命令、跑跑脚本,那就把图形界面压到最小,装 Server 版或者选最小安装,省资源;如果要当主力开发环境,那磁盘、内存、共享文件夹、SSH 都得一次配好;如果是为了测试某个软件在不同发行版上的表现,那快照策略就很重要,装完干净系统立刻打一个基线快照。

我自己的习惯是每台虚拟机装完系统、更新完源、装完基础工具之后,立刻打一个叫"clean-base"的快照。后面无论怎么折腾,出问题十秒钟就能回到这个干净状态。这个习惯帮我省下的时间,远远超过打快照的那几秒钟。

2. 镜像与虚拟化开关:两个最容易在第一步就翻车的地方

2.1 Ubuntu 22.04 LTS 镜像去哪下、怎么验

Ubuntu 的桌面版镜像,最稳妥的来源是官网下载页,选 22.04 LTS 的 Desktop 版本,文件名大概长这样:ubuntu-22.04.x-desktop-amd64.iso,其中 x 是修订号,会随着安全更新往上涨。LTS 的意思是长期支持,22.04 的桌面版维护到 2027 年,这也是很多人愿意选它的原因。

如果官网下载速度实在感人,可以用国内的镜像站,比如清华、中科大、阿里云都提供 Ubuntu 镜像同步,路径一般是ubuntu-releases/22.04/下面找 iso 文件。这些镜像站的内容和官方是同步的,速度能快很多。

下载完之后强烈建议校验一下哈希值,虽然听起来麻烦,但一个损坏的 iso 会让你在安装到一半时报出各种莫名其妙的错误,排查起来特别费劲。校验的命令很简单:

# Linux 或 macOS sha256sum ubuntu-22.04.4-desktop-amd64.iso # Windows PowerShell Get-FileHash .\ubuntu-22.04.4-desktop-amd64.iso -Algorithm SHA256

把结果和官网SHA256SUMS文件里的对应行比一下,一致就放心用。数字对不上就重新下,别抱侥幸心理。

2.2 任务管理器里看不到的那一步:CPU 虚拟化支持

这是新手最容易忽略的一步。虚拟机软件要正常工作,CPU 必须开启硬件虚拟化支持,也就是 Intel 的 VT-x 或者 AMD 的 AMD-V。这个开关在主板 BIOS 或 UEFI 里,不在 Windows 里,所以很多人打开虚拟机软件发现根本建不了 64 位系统,或者创建完之后一开机就蓝屏,才想起来去翻 BIOS。

判断方法很简单:打开任务管理器,切到"性能"标签,点 CPU,右下角会显示"虚拟化:已启用"或者"已禁用"。如果是禁用状态,就重启电脑进 BIOS,在 CPU 相关的设置里找 Intel Virtualization Technology 或者 SVM Mode 之类的选项打开它。

提示:Windows 上的 Hyper-V、Windows 沙盒、WSL2 这些功能会占用底层的虚拟化资源。较新版本的 VMware Workstation 已经能和它们共存,但如果你的版本比较老,可能会出现"VT-x 正在被另一个程序占用"的报错。遇到这种情况,要么升级虚拟机软件,要么在"启用或关闭 Windows 功能"里暂时关掉 Hyper-V 相关项,重启后再试。

进入 BIOS 这个操作听起来简单,实际操作时有几个坑:不同品牌的按键不一样,常见的 F2、F10、Del、Esc 都有可能;开启虚拟化之后记得保存退出,有些 BIOS 是 F10 保存,有些需要手动选"Save and Exit";另外部分笔记本会有"安全启动"限制,如果后面装系统遇到引导问题,可以顺手看一眼这个选项。这些前置动作做一遍以后就不用再管了,但漏掉任何一步都会让你在后面的流程里卡住,而且报错信息往往指向别的地方,特别容易误判。

3. VMware 新建向导:哪几个选项填错后面全是坑

3.1 典型模式和自定义模式,到底该选哪个

VMware 新建虚拟机时会给两个选项:典型和自定义。很多人图省事直接点典型,结果发现磁盘类型、网络模式、固件类型全被软件替你决定了,后面想改还得一个个进设置里翻。我的建议是:新手第一次可以用典型模式走一遍熟悉流程,但从第二次开始一律用自定义,因为自定义能让你显式确认每一个关键参数。

用自定义模式走的时候,会依次问你固件类型(BIOS 还是 UEFI)、虚拟磁盘类型(SCSI 还是 SATA 还是 NVMe)、网络类型、磁盘容量。这几步里最值得斟酌的是磁盘类型和网络类型。Ubuntu 22.04 对 NVMe 的支持很好,但 VMware 里的 NVMe 虚拟控制器在某些老版本上性能反而不如 SCSI,所以稳妥起见选 SCSI 就行。固件方面,UEFI 更加现代,但如果你后面要用到某些老的引导工具,BIOS 更省心。我自己现在统一用 UEFI,Ubuntu 22.04 装下来没遇到问题。

还有一个细节:自定义模式里会让你选"稍后安装操作系统"还是"指向 iso 文件"。我更习惯先选"稍后安装",等虚拟机建好、参数都确认无误了,再在设置里挂载 iso。这样做的好处是新建过程中不会被 iso 检测干扰,而且万一参数填错了,直接在设置里改就行,不用重来。

3.2 内存、核心、磁盘那几个数字背后的取舍

前面已经把分配原则讲过了,这里补充几个实操中容易被忽略的点。

内存方面,VMware 默认会建议一个数值,通常是宿主机内存的一半,这个数字往往偏大。如果你同时开着浏览器、IDE、通讯软件,宿主机本身就要吃掉 6G 到 8G,再加上虚拟机的内存,很容易把物理内存压榨干净,系统开始频繁使用页面文件,整个机器卡成幻灯片。所以宁可给少一点,也别贪心。

磁盘方面,"将虚拟磁盘存储为单个文件"和"拆分成多个文件"这两个选项经常让人纠结。单个文件的读写性能略好,拷贝迁移方便;拆分文件在移动或复制时更灵活,而且单个文件不超过 2G,对某些文件系统更友好。我一般选单个文件,除非这台虚拟机会被频繁复制来复制去。

CPU 核心数那条前面讲过原则,这里补一个反直觉的经验:给虚拟机分配过多的核心,性能不一定更好。因为虚拟机调度需要和宿主机竞争物理核心,核心数超过宿主机空闲核心数时,反而会引入等待。实测下来,给虚拟机 2 到 4 个核心,绝大多数开发场景都够用。

3.3 建好之后先别急着开机,检查这几个设置项

虚拟机建好之后,我一般会先停下来检查几个地方,而不是直接点开机。

第一是"显示"设置里的"加速 3D 图形"。这个选项开着能让 Ubuntu 桌面更流畅,但如果宿主机显卡驱动有问题,开启后可能导致虚拟机花屏甚至黑屏。如果你的宿主机显卡驱动是正常安装的,可以开;如果之前就遇到过显示异常,先关掉,等系统装完再试。

第二是"选项"里的"共享文件夹"。建议现在就开启,并设定一个宿主机上的目录作为共享目录。这样系统装完、装好 open-vm-tools 之后,就能直接在 Ubuntu 里访问宿主机的文件,省得来回用 U 盘或者网盘倒腾。

第三是"处理器"里的虚拟化引擎选项,里面有个"虚拟化 Intel VT-x/EPT 或 AMD-V/RVI",这个选项只有在你打算在虚拟机里再跑虚拟机(嵌套虚拟化)时才需要勾选。嵌套虚拟化会带来性能损耗,日常用不到就别开。

4. Ubuntu 安装向导逐屏拆解:哪些选项值得停一下

4.1 语言、键盘布局与"安装类型"的选择

开机进入安装界面后,第一屏选语言。这里有个常见的误区:很多人一上来就选中文,结果安装过程中某些路径和报错信息也是中文,出了问题去搜索时反而不好搜。我的建议是安装阶段先用英文,系统装完、更新完之后再在设置里把语言改成中文,这样过程中看到的报错都是英文关键词,搜索效率高很多。

键盘布局一般选 English (US),除非你的键盘确实是其他布局。这一屏往下是"安装类型",会问你"正常安装"还是"最小安装",以及要不要在安装时下载更新、要不要安装第三方软件(显卡驱动、媒体解码器等)。

我的取舍是这样的:勾选"下载更新"会让安装时间变长,但它能避免你装完之后面对一个需要更新几百个包的系统;"安装第三方软件"这个选项建议勾上,它会帮你装好一些常见硬件的固件和媒体编解码支持,省得后面手动折腾。

4.2 手动分区还是"擦除整个磁盘"

到了分区这一屏,很多人会紧张,其实在虚拟机里这个环节反而最简单。因为你给的是一块全新的虚拟磁盘,里面没有任何数据,所以直接选"擦除磁盘并安装 Ubuntu"就行,安装器会自动分出一个 EFI 分区(如果用 UEFI 引导)、一个根分区/、可能还有一个 swap 文件。

如果你想练手手动分区,也不是不行,但要记住几个原则:根分区/给大一点,30G 以上;如果打算用休眠功能,swap 给内存的 1.5 倍左右;/boot单独分出来的话给 1G 就够,但现代 Ubuntu 出于简化考虑通常不单独分/boot。手动分区最大的风险是 EFI 分区格式选错,必须是 FAT32 并且挂载到/boot/efi,选错会导致系统装完无法引导。

注意:虚拟机里练手动分区是性价比很高的学习方式,因为搞砸了删掉虚拟磁盘重建就行。但请记住,同样的操作在真实机器上会直接抹掉数据,所以练归练,真机上动手前一定要备份。

4.3 账户设置和"安装时下载更新"的那几分钟

分区之后是账户设置,会让你填用户名、机器名、密码。这里有个小技巧:机器名尽量不要用默认的那种长串,改成一眼能认出来的名字,比如dev-ubuntu、test-vm之类,因为后面配置 SSH 的时候,你会在多个终端里看到这个主机名,名字清楚能省不少事。

密码方面,虚拟机里的密码不必搞得太复杂,但也不要设成123456这种,因为后面用sudo会频繁输入密码。勾选"自动登录"可以让虚拟机开机直接进桌面,开发环境里挺方便,但如果你要把它当服务器用,就别勾。

点下"安装"之后,安装过程通常要十几分钟,具体取决于宿主机磁盘速度和网络。这个阶段最忌讳的是着急去点界面、切窗口,安装器对输入交互比较敏感,乱点可能导致安装进程卡住。装完之后会提示重启,重启时如果看到"Please remove the installation medium"之类的提示,直接按回车就行,因为虚拟机是挂载 iso 而不是物理光盘,不会有介质残留问题。

5. 装完第一件事:open-vm-tools 和那几个共享功能

5.1 为什么不建议用 VMware Tools 的官方安装脚本

装完系统重启进桌面后,你会发现分辨率可能很别扭,鼠标移动也有点飘,剪贴板在主客机之间不通用,这就是没有安装工具组件的原因。传统做法是在 VMware 菜单里点"安装 VMware Tools",然后在 Ubuntu 里挂载虚拟光驱、解压、运行vmware-install.pl脚本。

但这个脚本在新版 Ubuntu 上经常报错,你能在网上搜到各种"继续运行脚本未能在虚拟机中成功运行"的提示,原因通常是脚本编译内核模块时和当前内核版本不匹配。所以我的做法是压根不用它,直接在 Ubuntu 里装官方仓库里的开源版本:

sudo apt update sudo apt install -y open-vm-tools open-vm-tools-desktop

装完重启一次,分辨率自适应、剪贴板共享、拖拽文件、自动时间同步这些功能就都齐了。open-vm-tools-desktop这个包是带桌面集成的版本,只有装了这个才能有剪贴板和分辨率的动态调整;如果你装的是 Server 版,只装open-vm-tools就够。

这个方案的好处是它跟着系统更新走,内核升级之后不需要重新编译。我这些年装下来,open-vm-tools出问题的概率远低于官方脚本。

5.2 共享文件夹挂载和主机访问虚拟机网站

共享文件夹在装了 open-vm-tools 之后不会自动挂载,需要手动挂一次,或者写进/etc/fstab里开机自动挂:

sudo mkdir -p /mnt/hgfs sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other

加allow_other是为了让非 root 用户也能访问挂载的内容,不加的话普通账户会看到权限拒绝。如果要开机自动挂载,在/etc/fstab里加一行,注意要带上fuse相关的挂载选项,否则开机可能因为挂载失败进入紧急模式。

另一个经常被问到的场景是"主机访问虚拟机里的网站"。比如你在虚拟机里跑了个开发服务器,想让宿主机的浏览器访问。这里取决于网络模式:NAT 模式下,宿主机可以通过 VMware 的 NAT 虚拟网卡直接访问虚拟机的 IP;桥接模式下,虚拟机和宿主机在同一网段,互相直接用 IP 就能通;仅主机模式下,虚拟机只能和宿主机通信,外网不通。

判断虚拟机 IP 的命令是ip addr或者hostname -I。如果 NAT 模式下宿主机 ping 不通虚拟机,先确认虚拟机的防火墙状态,Ubuntu 22.04 桌面版默认的 ufw 是不启用的,但如果你手动开过,记得放行对应端口。

6. SSH 连不上这件事,按这个顺序一层层查

6.1 先搞清楚 Ubuntu 桌面版默认没有 SSH 服务端

很多人装完系统之后,从宿主机用 SSH 连虚拟机,第一反应是"网络不通"。其实最常见的真实原因是:Ubuntu 22.04 桌面版默认根本没装 SSH 服务端,端口 22 上什么都没有。客户端连过去只会得到一个连接被拒绝的提示,但提示信息很含糊,容易被误读成网络问题。

所以第一步是先确认服务端装没装、跑没跑:

# 看服务状态 systemctl status ssh # 没装的话装上 sudo apt install -y openssh-server # 启动并设为开机自启 sudo systemctl enable --now ssh

装好之后再从宿主机连,用ssh 用户名@虚拟机IP,第一次连会问你要不要接受指纹,输 yes 就行。

6.2 从服务到防火墙到网卡的分层排查链路

如果服务端确认在跑,还是连不上,那就按下面的顺序一层层往下查,别跳步。

第一层,确认虚拟机的 IP 和宿主机能不能互相 ping 通。ip addr看虚拟机 IP,宿主机ping 虚拟机IP。ping 不通就往网络模式上想。

第二层,确认端口在监听。在虚拟机里跑ss -tlnp | grep 22,看有没有进程监听在 22 端口。如果监听地址是127.0.0.1:22,说明 SSH 只绑定了本地回环,外部连不上,需要改/etc/ssh/sshd_config里的ListenAddress,或者直接注释掉那一行用默认值。

第三层,查防火墙。sudo ufw status,如果是 active 状态,需要sudo ufw allow ssh。注意 ufw 有时候状态显示 active 但规则为空,这种情况默认是拒绝所有入站的。

第四层,查 NAT 模式下的端口配置。NAT 模式下宿主机访问虚拟机是比较顺畅的,但如果要从局域网里另一台机器连过来,就得到 VMware 的"虚拟网络编辑器"里配置端口转发,把宿主机的某个端口映射到虚拟机的 22 端口。

这套排查顺序的价值在于,它把"连不上"这个大问题拆成了四个可验证的小问题,每一步的结果都能明确告诉你下一步该往哪查,而不是凭感觉乱试。

7. 中文显示、输入法和后续环境:几个高频问题的实操答案

7.1 中文界面和中文输入法,别去找什么"汉化包"

网上能搜到"虚拟机汉化包下载"这类关键词,这里明确说一句:Ubuntu 的中文支持是系统自带的,不需要任何第三方汉化包。正确的做法是在"设置 → 区域与语言"里把语言改成中文,系统会提示你安装语言包,确认后自动下载。

如果安装完之后部分界面还是英文,那是因为有些语言包没有完整加载,注销重新登录一次通常就好了。另外系统会问你"是否将文件夹名称也改成中文",我个人建议选"保留旧名称",也就是让桌面、下载、文档这些目录继续保持英文名。原因很简单,很多命令行工具和脚本在处理中文路径时容易出问题,桌面环境里显示成中文还是英文,影响其实很小。

输入法这块,Ubuntu 22.04 默认用的是 IBus 框架,自带"汉语(智能拼音)"输入源。在"设置 → 键盘 → 输入源"里点加号,选"汉语",然后选中文(智能拼音),添加完之后按Super + 空格就能中英文切换。

如果你习惯搜狗输入法,也可以装,但要注意框架冲突。搜狗 Linux 版是基于 fcitx 的,而你系统默认跑的是 IBus,两者同时启用会导致输入法切换异常。正确顺序是先装 fcitx5,把系统输入法框架切换过去,再装搜狗,然后重新登录。如果装完之后输入法完全不工作,多半是环境变量没配好,需要检查~/.profile或/etc/environment里关于输入法框架的变量设置。我的建议是:如果不是特别依赖搜狗的词库,直接用系统自带的智能拼音就够了,省掉一大堆配置麻烦。

7.2 Docker、环境变量和显卡驱动,三个最容易把自己搞崩的操作

Ubuntu 22.04 上装 Docker 现在推荐用官方 apt 源,而不是apt install docker.io,因为仓库里的版本偏旧。步骤大致是添加 Docker 的 GPG 密钥、添加软件源、然后安装docker-ce。装完之后有个必做动作:把当前用户加入 docker 组。

sudo usermod -aG docker $USER # 之后要重新登录,或者执行 newgrp docker 让组权限生效

不加这一步的话,你每次跑 docker 命令都要加 sudo,很烦。加完之后不重新登录会报权限错误,很多人以为装失败了,其实只是组权限没刷新。

环境变量配置错误是另一个高频事故。典型表现是:你改完~/.bashrc,重新开终端,发现连ls这种命令都提示找不到。原因通常是把 PATH 覆盖写而不是追加写,比如写成export PATH=/opt/xxx/bin,这把原来的路径全冲掉了。正确的写法永远是追加:

export PATH=$PATH:/opt/xxx/bin

如果不幸已经改坏了,别慌,直接用绝对路径打开配置文件修回来:/usr/bin/vim ~/.bashrc,或者临时恢复一下路径:export PATH=/usr/bin:/bin:/usr/sbin:/sbin:$PATH,然后再去改文件。

显卡驱动这块需要泼一盆冷水。很多人在虚拟机里搜"Ubuntu 22.04 安装 NVIDIA 驱动",然后照着教程装完,重启之后直接黑屏或者卡在登录界面循环。原因在于虚拟机里默认用的是 VMware 的虚拟显卡,物理显卡并不直通给虚拟机,你装 NVIDIA 驱动是在给一块不存在的硬件装驱动。除非你专门配置了 PCI 直通,否则虚拟机里装显卡驱动没有任何意义,反倒会把显示系统搞崩。如果你已经装崩了,进 GRUB 菜单选恢复模式,或者用之前打的快照回滚。

顺带提一句 CMake 版本的问题。Ubuntu 22.04 仓库里的 CMake 是 3.22,某些新项目会要求 3.25 以上,这时不要手动去官网下二进制覆盖系统里的,容易和 apt 管理冲突。更好的做法是添加 Kitware 的官方 apt 源,装完之后用apt policy cmake确认版本,保持包管理器统一管理,后面升级也方便。

8. 几个真实踩过的坑和它们的复现路径

8.1 开机蓝屏、开机卡住和"需要管理员权限"

"虚拟机安装 Linux 蓝屏"这个现象,绝大多数不是 Ubuntu 的问题,而是宿主机层面的问题。最常见的两个原因:一是 CPU 虚拟化没开或者被 Hyper-V 占用,表现是虚拟机一开机就报错或者宿主机直接蓝屏重启;二是宿主机的显卡驱动和 VMware 的 3D 加速冲突,表现是虚拟机开机画面花屏。前者的解法是回第 2 节检查虚拟化开关和 Hyper-V 状态,后者是在虚拟机设置里先关掉 3D 加速。

还有一个提示是"修复时显示需要管理员权限",这个通常出现在虚拟机文件损坏、需要修复磁盘的时候。VMware 需要以管理员身份运行才能对虚拟磁盘文件做修复操作,右键虚拟机软件的快捷方式,选"以管理员身份运行"再操作就行。如果还是不行,检查虚拟磁盘所在的目录是不是在系统保护目录里,或者杀毒软件是不是锁住了.vmdk文件——后者很常见,某些安全软件会把虚拟磁盘文件当成可疑对象扫描,导致文件被占用。

8.2 磁盘爆满和快照拖慢性能

虚拟机用久了一定会遇到磁盘满的问题。Ubuntu 里查磁盘用df -h,如果根分区使用率超过 85%,系统就会开始出现各种奇怪问题,比如 Docker 启动失败、apt 报错、日志写不进去。清理的时候重点看几个地方:/var/log里的日志、/var/lib/docker里的镜像和容器、还有 apt 的缓存,sudo apt clean能清掉不少。

如果你当初磁盘给的就是 20G,那清理只是治标,长期还是得扩容。VMware 支持扩展虚拟磁盘容量,但因为 Ubuntu 用的是 LVM 或者普通分区,扩展完之后还得在系统里手动扩展分区和文件系统,步骤比较绕。我的建议是与其扩容,不如一开始就给够。

快照这个东西很香,但别滥用。每打一个快照,VMware 就多维护一个增量磁盘文件,快照越多,写入时要合并的层级越多,性能下降越明显。我的做法是最多保留两个快照:一个干净的基线,一个当前工作状态。测试完某个危险操作之后,确认没问题就把中间快照删掉,让磁盘文件重新合并。

8.3 时间不同步和主机访问虚拟机网站失败

虚拟机休眠或者挂起之后再恢复,系统时间经常和宿主机对不上,表现是 HTTPS 证书验证失败、git 提交时间错乱。装了 open-vm-tools 之后,时间同步通常是自动的,如果还是不对,检查一下timedatectl的输出,确认 NTP 同步是开启的:

timedatectl status sudo timedatectl set-ntp true

主机访问虚拟机网站失败的情况,我遇到最多的原因是服务器绑定地址。比如你在虚拟机里用 Python 起了一个开发服务器,默认绑的是127.0.0.1,那只有虚拟机自己能访问,宿主机当然连不上。解决办法是让它绑到0.0.0.0,比如python3 -m http.server 8000 --bind 0.0.0.0。这个细节看起来很小,但排查的时候如果不了解,会在网络配置上绕很久的弯路。

我自己现在的固定流程是这样的:装完系统立刻 apt 全量更新、装 open-vm-tools-desktop、配置好 SSH、打一个 clean-base 快照,然后才开始装开发环境。这套流程跑下来大概一个小时,之后无论我怎么折腾都不会伤到根本。虚拟机最大的价值从来不是省钱,而是给你一个可以随便犯错的环境——前提是你得先把那个"可以回滚的基线"建好。

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

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

立即咨询