1. 为什么这套组合到现在还有人在用
Linux 虚拟机 VMware 16.1.2 搭配 Ubuntu 20.04.3 这套安装教程,说白了就是一套"老但稳"的本地实验环境方案。你要学 Linux 常用命令、要跑 MySQL 和 Git、要折腾 Docker、要准备 Linux 面试题,或者只是想在 Windows 里开一块不污染主系统的地方练手,这套东西三十分钟装完就能用很久。VMware Workstation 16.1.2 是 16 系列里比较成熟的一个小版本,它对 Windows 10、Windows 11 的兼容性、对 NVMe 磁盘和 3D 加速的支持都够用,同时又不像更新的大版本那样对老机器挑三拣四。Ubuntu 20.04.3 属于 LTS 长期支持版本,软件源里的包足够新,社区文档多到随便一搜就有答案,遇到报错不会卡在半路上没人管。
我见过太多人卡在第一步:下了镜像不会建虚拟机,建好了发现网络不通,通网了又发现屏幕分辨率怪怪的,装个 VMware Tools 又提示编译失败。这些问题不是技术难题,纯粹是细节没对齐。这篇内容我会把整个流程拆到"哪个界面点哪个按钮、这个参数为什么这么填"的程度,同时把我在实机上踩过的坑都摆出来,比如虚拟机装 Linux 时蓝屏、安装完宿主机访问不了虚拟机网站、复制粘贴失效这些高频问题,都给你一个能直接抄的解法。
适合谁看:刚接触虚拟机安装 Linux 的新手,需要一套干净环境跑 Python 或 PyCharm 的开发者,想练 Linux 系统安装和分区但不敢动真实硬盘的学生,以及需要给团队做标准化开发环境的人。不需要你懂内核,也不需要你会编译,跟着做就行。
2. 装之前先把这三件事查清楚
2.1 硬件和宿主系统的自查清单
动手前先花两分钟确认宿主机器扛不扛得住。这不是走形式,配置给不到位,后面装到一半卡死或者跑起来风扇狂转,回头改参数比重装还麻烦。
| 项目 | 最低可用 | 舒服使用 | 说明 |
|---|---|---|---|
| CPU | 双核支持虚拟化 | 四核八线程以上 | 必须支持 Intel VT-x 或 AMD-V |
| 内存 | 8 GB | 16 GB 以上 | 宿主机至少留 4 GB 给自己 |
| 硬盘 | 40 GB 空闲 | 100 GB 以上 SSD | 机械盘跑虚拟机会明显迟钝 |
| 宿主系统 | Win10 64 位 | Win10/Win11 64 位 | 家庭版也能装 |
关于内存分配,我建议的算法是:给虚拟机的内存不要超过宿主物理内存的一半。8 GB 的机器给虚拟机 2 GB 到 3 GB,16 GB 的机器给 4 GB 到 8 GB,32 GB 的机器给 8 GB 到 12 GB。Ubuntu 20.04.3 的桌面版带图形界面,2 GB 能开机但开浏览器就卡,4 GB 是日常使用的甜点值。CPU 核心数同理,给两个核心足够跑命令和编辑器,给四个核心适合同时开数据库和 IDE。
硬盘这块要说细一点。如果你打算后面装 MySQL、装 Docker 镜像、塞几个项目代码,60 GB 是基本盘;纯练命令和配置,40 GB 也够。一定要放在 SSD 上,虚拟机最怕随机读写,机械硬盘上装系统那半小时会非常煎熬。
2.2 镜像和安装包的两个来源坑
镜像去 Ubuntu 官网的旧版本归档页面找,认准文件名里带desktop-amd64和20.04.3的那一个,后缀是.iso。文件大小大概 2.9 GB 左右,下载完对一下页面给出的哈希值,不对就重下,别偷懒。用残缺镜像装系统,会出现到某一步突然报"安装程序崩溃",排查半天最后发现是文件坏了。
VMware 16.1.2 的安装包同样是官方渠道下载。安装时会被要求输入许可证密钥,个人学习用途可以直接选试用,到期后功能会受限(不能创建快照、不能克隆),这点要有心理准备。团队使用就走正规采购。
注意:不要用来路不明的"汉化包"或"绿色版"去替换安装目录里的文件。虚拟机软件涉及底层驱动和网络组件,替换文件轻则界面乱码,重则网络模式失效,而且后面出问题几乎无法定位。官方中文界面在安装时选简体中文就行,不需要额外汉化。
2.3 BIOS 里的虚拟化开关怎么开
这是新手最容易漏的一步。表现是:虚拟机电源能开,但一进安装界面就报错,或者直接弹出"此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态"。
重启进 BIOS,不同品牌按键不一样,常见的是 Del、F2、F10、Esc。进去之后找这几个名字之一:Intel Virtualization Technology、Intel VT-x、SVM Mode、AMD-V。位置通常在 Advanced 或 CPU Configuration 菜单下。改成 Enabled,保存退出。
顺便检查一下宿主机有没有开 Hyper-V 相关的虚拟化功能。Windows 的某些安全功能会独占虚拟化权限,导致 VMware 跑不起来。如果你在 Windows 功能里看到 Hyper-V 是勾选状态,而你又不需要它,可以取消勾选后重启。这个动作的影响面比较大,动手前确认自己没有在用 WSL2 或 Docker Desktop 的 Hyper-V 后端,否则它们会一起失效。
3. VMware 16.1.2 安装过程的关键选项
3.1 安装向导里值得停一下的界面
运行安装程序,前面几步都是常规的下一步。到了"自定义安装"这一页要留意,如果你 C 盘紧张,可以改到 D 盘,路径里不要有中文和空格,这是原则。虚拟机软件会在安装目录旁边放虚拟机文件,中文路径偶尔会让某些工具链出错。
"用户体验设置"那两页的勾选项可以全部取消,不影响功能。安装类型选"典型"就行,自定义安装对新手没有额外收益。
安装完成后会要求重启,重启这一步不要跳过,网络驱动需要重新加载。
装完第一次打开,建议先做两件事。第一件是进"编辑 - 首选项",把"虚拟机默认位置"改成一个空间大的盘,别放在 C 盘用户目录下,虚拟机文件几个月就能涨到几十 GB。第二件是进"编辑 - 虚拟网络编辑器",确认 VMnet8 这个 NAT 网络存在。如果不存在,点右下角"更改设置"获取管理员权限,然后点"还原默认设置",网络组件会重新装一遍,这一步能解决后面一大半的网络问题。
3.2 别急着建虚拟机,先看网络模式
很多人装完系统发现上不了网,根子在网络模式选错了,或者根本没理解选了什么。三种模式的差别,用快递打个比方就清楚了。
- NAT 模式:虚拟机住在宿主机搭的一个私密小区里,出门统一走宿主机这个大门。虚拟机能上网,能 ping 通宿主机,但局域网里别的机器看不到它。装系统、日常练习、开发环境首选这个模式。
- 桥接模式:虚拟机直接接到你家的路由器上,跟宿主机平起平坐,拥有独立的局域网 IP。适合需要别人访问你虚拟机服务、或者要模拟真实服务器场景。
- 仅主机模式:只有虚拟机和宿主机能互相通信,虚拟机没有外网。适合做纯隔离实验,比如测试网络隔离、搭建内网环境。
新手最稳的选择是 NAT。等你确确实实需要"局域网内另一台电脑访问我的虚拟机网站"这个功能时,再切桥接。切换后要在 Ubuntu 里确认 IP 变了,因为网段完全不同。
4. 创建 Ubuntu 20.04.3 虚拟机的参数怎么填
4.1 新建向导逐步拆解
打开"文件 - 新建虚拟机",选择"自定义(高级)",这一步多花两分钟,换来后面改配置不用重建。
硬件兼容性保持默认的当前版本即可。接着选"稍后安装操作系统",这一步很关键——如果你在这里选了"安装程序光盘映像文件",VMware 会启用简易安装模式,自动帮你填用户名密码、自动分区,看起来很省事,但它会跳过很多标准安装步骤,装的系统也偏精简,不利于你理解整个过程。我们要的是完整的手动安装体验。
客户机操作系统选 Linux,版本选 Ubuntu 64 位。虚拟机名称随便起,建议用英文,比如ubuntu-dev,位置指向你刚才设定的那个大容量目录。
处理器配置,按前面说的,两个核心起步。内存给 4096 MB。网络类型选 NAT。I/O 控制器类型保持推荐值。磁盘类型选 SCSI 或者 NVMe 都行,SCSI 兼容性更好,遇到问题好查。
磁盘这块,选"创建新虚拟磁盘",容量填 60 GB。下面那个"将虚拟磁盘拆分成多个文件"的选项,建议勾上。原因是单个大文件在拷贝和备份时容易出问题,拆分后每个文件默认 2 GB,方便搬运。但如果你的宿主机文件系统是 NTFS 且硬盘空间充裕,也可以不拆,单个文件读写性能略好一点点。差别不大,别纠结。
最后一步"自定义硬件"里,把"新 CD/DVD"指向你下载的那个 Ubuntu 20.04.3 镜像文件,同时确认"启动时连接"是勾选状态。顺手把"打印机"移除掉,用不上。"声卡"可以留着,也可以移除,不影响系统。"USB 控制器"保持默认,兼容性选 USB 3.0 会更快,但如果你的宿主机 USB 驱动比较怪,退回 2.0 更稳。
4.2 显示设置与 3D 加速的取舍
"显示器"这一页有个"加速 3D 图形"选项。勾上之后 Ubuntu 桌面会更流畅,窗口拖动不掉帧;但它在部分显卡驱动下会引起花屏、黑屏,尤其是老机器和某些核显。我的建议是:第一次装先不勾,系统装好跑通之后再回来勾上测试,有问题随时取消。这样能把"装不上"和"显示异常"两个问题分开排查,不至于互相干扰。
显存给 1 GB 到 2 GB 之间,看你的宿主机显存,别超过一半。
4.3 虚拟机文件都在哪
建好之后你会发现目录里多了一堆文件:.vmx是配置文件,.vmdk是磁盘文件,.nvram是 BIOS 状态,.log是日志。以后虚拟机启动报错,第一件事就是去看vmware.log文件末尾,错误原因基本都在那几行里。养成看日志的习惯,比在论坛里描述半天现象要快得多。
5. Ubuntu 20.04.3 系统安装的完整流程
5.1 引导界面和安装语言
点"开启此虚拟机",屏幕先出 VMware 的启动画面,然后进入 Ubuntu 的引导菜单。如果等了很久只有黑屏加一个光标,八成是镜像没连上,检查"虚拟机设置 - CD/DVD"那条路径。如果提示找不到操作系统,同理。
引导菜单里选Install Ubuntu,回车。语言选中文简体,安装界面就是中文的,省得一边装一边查单词。继续之后是键盘布局,选 Chinese,然后选 English (US) 的布局即可,这个是物理键盘映射,跟你用什么语言输入法没关系。
接下来是"更新和其他软件"这一页,两个选项:正常安装还是最小安装。正常安装会带办公套件、游戏、媒体播放器这些,最小安装只装浏览器和基础工具。做开发环境选最小安装,系统干净,后面缺什么自己装什么。
下面那几个复选框:安装时下载更新,建议取消勾选。原因很实在,安装过程中联网下载更新会让进度卡在"正在下载语言包"几十分钟,而且国内直连官方源速度很慢。全都不勾,装完系统再换国内源统一更新,效率高一个数量级。"安装第三方软件"这个可以勾,它会装显卡驱动和部分媒体编解码器,对显示和视频播放有帮助。
5.2 分区方案怎么选
到了"安装类型"这一页,新手看到"其他选项"四个字会紧张,其实没必要。你有两条路。
第一条路,选"清除整个磁盘并安装 Ubuntu"。注意,这里的"整个磁盘"指的是你刚才分配的那块 60 GB 虚拟磁盘,不会碰你的真实硬盘。虚拟机的隔离性就体现在这。这条路省事,系统会自动分好区,适合纯粹想快点用起来的人。
第二条路,选"其他选项",手动分区。如果你以后要准备 Linux 相关岗位的面试、要被问到分区和挂载点,或者想留出一块独立的数据盘,就选这条。手动分区不用做得太复杂,一个能用的方案如下:
| 挂载点 | 大小 | 类型 | 说明 |
|---|---|---|---|
| /boot | 1 GB | ext4 | 引导分区,放内核和 grub |
| swap | 4 GB | 交换空间 | 内存不够时顶一下,也用于休眠 |
| / | 剩余全部 | ext4 | 根分区,系统本体 |
| /home | 视情况 | ext4 | 可选,独立出来方便重装系统保留数据 |
操作顺序是:先选中那块空闲空间,点"新建分区表",然后逐个添加。注意/boot要放在磁盘最前面,这不是硬性要求,但习惯上这么做。分区完成点"现在安装",会弹窗确认写入磁盘,确认即可。
提示:swap 分区的老规矩是物理内存的两倍,那是当年内存只有 1 GB 的时候。现在给虚拟机 4 GB 内存,swap 给 4 GB 就够。给太多是浪费虚拟磁盘空间。
5.3 时区、用户和密码
时区选 Shanghai,这样系统时间和你本地一致,后面日志时间戳、定时任务都好对应。
用户信息这一页几个字段要讲清楚。你的名字随便填。计算机名建议用短的英文小写,别用中文和特殊符号,因为这个名字会成为终端提示符里的主机名,也会用在网络标识上。用户名必须是英文小写,这是 Linux 的老规矩。密码建议设置一个中等强度的,因为虚拟机的 root 权限是通过 sudo 提权得到的,你平时敲命令全靠这个密码。
"自动登录"这个选项,自己用的开发机可以勾,省得每次开机输密码;如果要练习权限管理或者多人共用,就别勾。
5.4 安装等待和首次重启
接下来系统开始复制文件,进度条大概走五到十五分钟,取决于你的硬盘。这个阶段屏幕会滚动显示正在安装的软件包名字,属于正常现象。最后会提示安装完成,点"现在重启"。
重启时有个经典坑:屏幕提示Please remove the installation medium, then press ENTER。这是让你把安装盘拔掉。虚拟机里对应的操作是:进"虚拟机设置",把 CD/DVD 那项从"使用 ISO 映像文件"取消,或者直接取消勾选"启动时连接"。很多人卡在这一步是因为直接按了回车,结果又进了安装界面,从头再来一遍。
重启后出现登录界面,输入密码进入桌面,系统就装好了。第一次进桌面可能会弹出一些欢迎提示和软件更新提醒,都可以先关掉。
6. 装完系统必做的四件事
6.1 换源并做一次完整更新
Ubuntu 20.04.3 默认的软件源在国外,直连速度很难受。换成国内镜像源,后面的操作会快很多。系统自带的图形化"软件和更新"工具就能改,打开后找到"下载自"那一栏,点进去选一个国内镜像站点,它会自动测试速度。
喜欢命令行的,先备份原文件再替换:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo sed -i 's|http://archive.ubuntu.com|https://mirrors.aliyun.com|g' /etc/apt/sources.list sudo sed -i 's|http://security.ubuntu.com|https://mirrors.aliyun.com|g' /etc/apt/sources.list sudo apt update sudo apt upgrade -yapt update是刷新软件包索引,apt upgrade才是真正升级。这两个命令的区别新手一定要分清,很多人以为 update 就是升级系统,跑完发现没变化。更新过程可能要下载几百兆,耐心等完。
6.2 安装 open-vm-tools
不装这个工具,你会遇到一堆别扭的事:鼠标要从虚拟机窗口里按快捷键才能切出去、屏幕分辨率只有几个固定档位、宿主机和虚拟机之间不能复制粘贴、不能拖拽文件。
Ubuntu 官方源里已经有对应的包,直接装桌面版:
sudo apt install -y open-vm-tools open-vm-tools-desktop sudo reboot重启后验证,鼠标应该能自由进出虚拟机窗口,分辨率自适应窗口大小,复制粘贴也通了。这比手动挂载 VMware Tools 的光盘、进目录跑安装脚本要省事得多,而且内核升级后不用重新编译。实测这条路在 Ubuntu 20.04.3 上最稳。
如果安装后复制粘贴还是不通,先确认虚拟机上是否装了桌面环境,open-vm-tools-desktop依赖图形界面。再检查虚拟机设置里"选项 - 客户机隔离"那两个复制粘贴的勾选是不是被关了。
6.3 打一个干净快照
系统刚装好、更新完、工具装好,这个状态是"黄金状态"。这时候打快照,以后不管你把系统折腾成什么样,都能一键回到现在。
操作路径:虚拟机菜单里选"快照 - 拍摄快照",名字写清楚,比如clean-install-2024,描述里写上装了哪些东西。快照不要滥用,拍多了会拖慢磁盘,而且快照是增量存储,占空间会越来越夸张。原则是:重大变更前拍一个,变更稳定验证后删掉旧的。比如你要装数据库、装驱动、改内核参数,都值得先拍。
虚拟机还可以克隆,分完整克隆和链接克隆。完整克隆是独立副本,不依赖原虚拟机,适合做多节点实验;链接克隆共享原磁盘,占空间小,但原虚拟机不能删。想搭两台机器测主从数据库,用链接克隆又快又省。
6.4 数据盘和共享目录
虚拟机用久了,想把宿主机上的代码目录直接挂到 Ubuntu 里编辑,用共享文件夹最方便。在虚拟机设置里"选项 - 共享文件夹"启用,添加宿主机上的目录。挂载点在/mnt/hgfs/你的共享名。前提是装了前面那套工具。
我个人的习惯是不用共享文件夹,改用 Git 同步代码。原因是共享目录在编译大型项目时性能一般,而且文件权限容易出问题,chmod改不动、软链接失效这些都是常见现象。Git 走一遍流程更干净,也顺手把版本管理练了。
7. 踩过的坑和排查思路
7.1 安装阶段的典型问题
| 现象 | 大概率原因 | 处理方式 |
|---|---|---|
| 提示 VT-x 处于禁用状态 | BIOS 虚拟化没开,或宿主机虚拟化功能冲突 | 进 BIOS 开 VT-x/SVM,检查 Hyper-V 类功能是否占用 |
| 启动后黑屏只有光标 | 光盘镜像路径失效 | 检查虚拟机设置里 CD/DVD 的 ISO 路径与连接状态 |
| 安装中断、报程序崩溃 | 镜像文件损坏 | 重新下载并校验哈希值 |
| 装到一半宿主机蓝屏 | 虚拟化驱动与安全软件冲突 | 更新 VMware 补丁版本,临时关闭冲突的安全软件验证 |
| 装完重启又进安装界面 | 没有卸载安装介质 | 取消 CD/DVD 的 ISO 连接或取消启动时连接 |
虚拟机和宿主机蓝屏这个问题值得多说一句。它不是虚拟机软件本身的 bug,通常是安全类软件拦截了底层驱动,或者宿主机的虚拟化组件互相打架。排查顺序是:先确认 VMware 是最新的小版本,再临时关掉安全软件做一次测试,最后再考虑宿主机的虚拟化相关功能是否有冲突。一次只改一个变量,这样能确定到底是谁的问题。
7.2 网络类问题的排查顺序
网络不通是最高频的问题,按这个顺序走,基本都能定位。
第一步,看虚拟机自己的 IP。终端里敲ip addr,看有没有类似192.168.x.x的地址。如果只有127.0.0.1,说明网卡没拿到地址。常见原因是虚拟网络编辑器的 DHCP 服务没开,去"编辑 - 虚拟网络编辑器"里检查 VMnet8 的"使用本地 DHCP 服务将 IP 地址分配给虚拟机"是否勾选。
第二步,ping 网关和宿主机。网关地址在虚拟网络编辑器里能看到,一般是192.168.x.2。ping 不通网关就是虚拟网卡层的问题,最省事的办法是"还原默认设置"重装网络组件。
第三步,ping 外网地址,比如ping 223.5.5.5。能通说明网络链路是好的,问题出在 DNS。改 DNS 的办法有好几种,最直接的是编辑/etc/systemd/resolved.conf,把 DNS 那行取消注释填上公共 DNS,然后重启解析服务:
sudo systemctl restart systemd-resolved resolvectl status第四步,能 ping 通 IP 但打不开网页,基本可以确定是 DNS 的事,用nslookup或dig验证一下解析结果。Ubuntu 20.04 用 systemd-resolved 管理解析,配置文件被它接管,直接改/etc/resolv.conf会在重启后被覆盖,这是很多人改了不生效的原因。
7.3 宿主机访问虚拟机里服务的配置要点
这是很实用的一个场景:你在 Ubuntu 里跑了个 Web 服务,想在宿主机的浏览器里打开看效果。
NAT 模式下,虚拟机的 IP 是宿主机内部网段的地址,宿主机可以直接访问。但有个前提,虚拟机上跑的服务要监听0.0.0.0,而不是只监听127.0.0.1。很多开发框架默认只绑本地回环地址,这时宿主机怎么都连不上,问题不在网络,在服务配置。
如果服务确实只想绑回环地址,可以加端口转发。在虚拟网络编辑器的 VMnet8 的 NAT 设置里,添加一条端口映射,把宿主机的某个端口转发到虚拟机的指定 IP 和端口。这样访问宿主机端口就等于访问虚拟机服务。
桥接模式下更简单,虚拟机会拿到一个和宿主机同网段的 IP,宿主机和局域网其他设备都能直接访问,前提是防火墙放行对应端口。Ubuntu 默认没开防火墙,一般不用管,但如果你装过并启用了 ufw,记得放行:
sudo ufw allow 8080/tcp sudo ufw status7.4 几个容易被忽略的细节
时间不同步。虚拟机休眠或长时间挂起后,系统时间会偏。装完 open-vm-tools 后可以启用时间同步:
sudo vmware-toolbox-cmd timesync enable宿主机和虚拟机时间一致,日志分析才不会错乱。
解压文件乱码。从宿主机拷过来的压缩包解压后文件名是乱码,这是中文编码问题。用unzip时可以指定编码参数,或者在解压工具里调整。根源是压缩包用的是 GBK 编码,而 Linux 默认 UTF-8。
别在虚拟机里存唯一副本。虚拟机文件损坏、快照链断裂这些情况虽然少见但不是没有。重要代码推送到远程仓库,重要数据定期导出到宿主机。虚拟机是实验场,不是保险箱。
定期做磁盘精简和清理。系统里删掉的文件,虚拟磁盘文件不会自动变小,因为它记录的是"曾经用到过"的位置。清理办法是在 Ubuntu 里把空闲空间填零,然后用 VMware 的磁盘整理功能压缩。这个过程比较慢,一两个月做一次就够。
我个人在这一套环境上最大的体会是:真正花时间的从来不是安装本身,而是安装之后那些琐碎的配置差异。把网络模式想明白、把工具装好、把快照打上,这三件事做完,后面无论是装 MySQL、装 Docker 还是配 Python 和 Git 环境,都是顺水推舟。至于那些看起来吓人的报错,九成以上能靠日志的最后二十行定位到原因,别急着搜,先看日志。