☰
VMware安装Ubuntu 18.04完整教程:虚拟机配置与开发环境搭建
2026/9/29 3:09:18 网站建设 项目流程

1. 为什么要用VMware装Ubuntu 18.04,而不是直接装在物理机上

先说个很多新手容易踩的误区:一上来就在自己主力电脑上装双系统,结果折腾半天,引导坏了、分区表乱了、Windows进不去,心态直接崩掉。用虚拟机装Ubuntu 18.04,本质上是在Windows系统里"开一个窗口"来运行Linux系统,两者互不干扰,想删就删,想重装就重装,非常适合学习、开发和实验。

VMware Workstation是目前最成熟的桌面虚拟化工具之一,对Ubuntu的兼容性做得非常好,尤其是18.04这个版本。很多做自动驾驶、机器人、SLAM方向的同学应该都清楚,Autoware、ROS Melodic这些框架对Ubuntu 18.04的依赖非常深,这也是为什么至今还有大量教程和项目停留在18.04而不是更新的20.04或22.04。

另外虚拟机还有一个物理机比不了的优势:快照。装好系统、配好环境之后,打个快照,后面无论怎么折腾都不会慌,一条命令就能回滚到刚装好的状态。这个对学习Linux和做实验的人来说简直是救命功能。

这篇文章我整理了从VMware下载安装到Ubuntu 18.04镜像获取、虚拟机创建、系统安装、VMware Tools安装、共享文件夹配置、常见问题排查的完整流程。全程基于我反复装过多次的实操经验,每一步都写清楚了"为什么要这样做",而不是简单给一串命令。无论是纯新手还是以前装过但总出问题的人,按这个流程走一遍基本都能顺利跑起来。

2. 安装前的准备工作:镜像、虚拟机软件、硬件要求

2.1 硬件要求与软件版本选择

先说硬件。VMware跑Ubuntu 18.04的桌面版,我建议主机内存至少8GB,分配2GB~4GB给虚拟机;CPU分配2核~4核;磁盘预留至少25GB~40GB空间。如果你只是用命令行界面做服务器用途,1GB内存、10GB磁盘其实也能跑,但桌面体验会很卡。

处理器方面,Intel和AMD的现代CPU都支持虚拟化技术,需要在BIOS/UEFI里开启VT-x(Intel)或AMD-V。大部分新机器默认是开启的,但有些品牌机默认关闭,如果后面虚拟机启动时报"此主机不支持虚拟化实际模式"之类的错误,第一件事就是进BIOS把虚拟化开关打开。

虚拟机软件选择上,VMware Workstation Pro是首选,相比Player版本,Pro支持快照、克隆、高级网络配置等功能,这些后面都会用到。目前常见的版本是16和17,两者的安装流程和使用方式基本一致,本文以17版本为例讲解。

2.2 Ubuntu 18.04镜像下载的几个关键点

Ubuntu 18.04的官方代号是Bionic Beaver,官方已经停止对标准版的维护更新,但镜像文件仍然可以在官方源和国内镜像站下载到。这里说几个关键点:

第一,不要随便在第三方网站下载所谓"优化版""精简版"系统镜像,这类镜像很可能被植入恶意代码。只从两个地方下载最安全:

  • 官方旧版本镜像站:old-releases.ubuntu.com
  • 国内高校镜像站:清华TUNA、中科大USTC等。

第二,文件名要看清版本标识。Ubuntu 18.04桌面版镜像文件名通常是ubuntu-18.04.x-desktop-amd64.iso,其中x代表小版本号,比如18.04.5、18.04.6。服务器版则是ubuntu-18.04.x-live-server-amd64.iso。如果只是学习用途,下载desktop版即可;如果之后要做服务器部署,可以两个都下载备用。还有一个重要区分:官方源里的标准镜像约1.9GB左右,如果下载下来的文件只有几百MB甚至更大好几倍,基本可以判定文件不对,别用。

第三,下载完成后建议核对一下SHA256校验值,镜像站页面都会提供对应的校验值。虽然概率低,但网络传输过程中文件损坏的情况确实存在,校验一下不费事。Windows下用命令行执行certutil -hashfile 下载文件路径 SHA256就能看到结果,和官网对照即可。

2.3 VMware Workstation的安装与激活

VMware Workstation的安装包从官网下载即可,安装过程基本是"下一步"到底。但有两点值得注意:

安装路径建议不要带中文,否则后续在某些场景下可能出现奇怪的问题。安装完成后,如果是试用版或需要密钥,网上流传的各类密钥时效性很强,经常被封,建议直接搜索"VMware Workstation Pro 17 许可证密钥",找最新的可用密钥,或者使用官方试用版也可以,临时学习够用。

装完VMware之后,先别急着创建虚拟机,建议先重启一次电脑。因为VMware在安装过程中会安装虚拟网卡驱动和虚拟化服务,有些情况下不重启驱动不会完全生效,后面可能会出现网络不通的问题。

3. 一步步创建虚拟机:内存、磁盘、网络配置的经验取值

3.1 新建虚拟机向导里的"典型"和"自定义"有什么区别

打开VMware Workstation,点击"创建新的虚拟机",会出现两个选项:"典型(推荐)"和"自定义(高级)"。

典型安装会自动把大部分参数设为推荐值,然后加载ISO直接开始安装系统,适合追求快的场景。但如果你后面要启动嵌套虚拟化(虚拟机里再跑虚拟机)、要预留足够大的磁盘空间,或者要稍后手动调整硬件配置,选自定义会更可控。

我的习惯是选自定义,原因很简单:典型模式下VMware会把磁盘默认设为20GB且单文件存储,后面要扩容比较麻烦。自定义模式下我可以提前规划好磁盘大小、CPU核数、内存大小和存储方式,一步到位。

3.2 硬件兼容性、CPU、内存、磁盘的具体配置建议

创建向导会让你选择硬件兼容性版本,默认选中当前VMware版本对应的最新兼容级别,比如Workstation 17对应的是Workstation 17.x。这个参数决定虚拟机的虚拟硬件版本,越高版本功能越多,但如果你的虚拟机文件需要在其他低版本VMware中打开,就要选低一些的兼容级别。如果自己用,保持默认即可。

接下来按顺序配置:

  • 客户机操作系统:选择"Linux",版本选"Ubuntu 64位"。这里不要选错,32位Ubuntu镜像和64位镜像的选项不同,选错会导致无法正常引导。
  • 虚拟机名称和位置:名称随意,但位置注意两点,一是磁盘空间要充足,二是路径最好不要有中文和空格。我之前见过有人把虚拟机放到中文用户名目录下,结果某些工具链编译时路径解析出错,非常头疼。
  • 固件类型:如果出现这个选项,建议选UEFI,这是现代系统的主流引导方式,也更接近真实服务器环境。不过要注意,如果你的主机开启了安全启动(Secure Boot)且虚拟机的UEFI固件和Ubuntu内核签名之间有兼容问题,启动时报错的话,把虚拟机的固件改为BIOS即可解决。
  • 处理器配置:处理器数量选1,每个处理器的内核数量按你主机的实际情况分配,建议2~4核。不要超过物理机的逻辑处理器总数,否则性能反而下降。
  • 内存:建议至少2048MB,如果主机内存16GB以上,直接给4096MB。桌面环境下内存越大越流畅,低于1.5GB装完系统后打开浏览器都会有卡顿感。
  • 网络类型:这里我单独说一下,见3.3节。
  • I/O控制器和磁盘类型:保持默认推荐即可,NVMe和SATA对Ubuntu 18.04来说差别不大。
  • 磁盘容量:建议40GB,磁盘存储方式我建议选择"将虚拟磁盘拆分成多个文件"。好处有两个:第一,日常备份和复制虚拟机文件更快;第二,某个文件出问题时还有机会从其他分片恢复。缺点是有同学反映大文件读写时有额外IO开销,但实际感知不明显。

3.3 网络模式的选择:NAT、桥接、仅主机到底怎么选

这是新手问的最多的问题,我单独拉出来讲。

VMware提供三种网络模式,核心区别在虚拟机的网络地位不同:

网络模式虚拟机的网络地位能否访问外网宿主机能否访问虚拟机适用场景
NAT内网地址,通过宿主机转发上网能能(通过特定IP)日常学习开发最推荐
桥接和宿主机在同一局域网,拥有独立IP能能(通过局域网IP)需要和其他局域网设备互访的场景
仅主机只能和宿主机通信不能能隔离测试、纯本地调试

对大多数人来说,默认选择NAT就够了。NAT模式下虚拟机通过宿主机的网络连接上网,你不用操心局域网IP冲突、路由器设置之类的问题,对外部网络来说只有宿主机一个设备,安全性和稳定性都不错。

桥接模式适合什么场景?比如你要在虚拟机里部署一个Web服务,然后拿手机或者另一台电脑访问这个服务,这时就需要桥接,让虚拟机拥有一个局域网内可被其他设备访问的独立IP。但桥接模式有一个麻烦点:如果宿主机的WiFi网络有设备隔离,或者路由器做了MAC地址过滤,虚拟机的网络就可能会不通。

仅主机模式用的最少,但也不是没用——比如你要搭建一个与外界完全隔离的实验环境做恶意代码分析、网络攻防测试,仅主机模式就很合适。

3.4 创建完成后先别开机:先做这几项优化

创建向导结束后,先不要急着启动,建议先做几项预设置:

  1. 关闭虚拟打印机。VMware默认会添加一台虚拟打印机,Ubuntu下有时会引发启动缓慢或CUPS服务报错。在虚拟机设置中移除即可。
  2. 关闭USB自动连接。如果你的主机U盘使用频繁,可以在虚拟机设置→USB控制器中取消"自动连接新的USB设备"选项,避免物理机上U盘被虚拟机抢走。
  3. 设置显存大小。如果是桌面版且要跑图形界面,建议在"显示器"设置中把"加速3D图形"勾上,并把显存调到128MB以上。这个对后面跑Autoware的可视化工具RViz尤为重要,虚拟机的3D加速能力虽然赶不上物理机,但至少能保证软件不至于卡死。
  4. 开机时不要启动多个显示器。多显示器支持在Linux桌面环境下兼容性一般,容易造成分辨率异常或黑屏,保持单显示器启动最省事。

这些细节在官方文档里不会专门强调,但实际安装和日常使用中遇到问题,多半跟这些小配置有关。

4. 安装Ubuntu 18.04系统的完整过程与关键选项解读

4.1 从ISO引导启动并进入安装界面

完成上述设置后,在虚拟机设置→CD/DVD中,选择"使用ISO映像文件",浏览到你下载好的Ubuntu 18.04镜像。在电源选项里勾选"启动时连接",然后开机。

正常会看到VMware的启动画面,进入Ubuntu的GRUB引导菜单,选择"Install Ubuntu"回车。如果屏幕卡在某个Logo界面或者出现紫色画面后长时间无响应,常见原因有三个:

  • ISO文件下载不完整或损坏,检查SHA256。
  • 虚拟机内存分配过小,低于1GB时安装程序可能卡住。
  • 启动参数里需要加上nomodeset,但这个一般只在显卡驱动异常时才会需要,先不用管,遇到了再处理。

4.2 安装过程语言、键盘布局、分区方案的选择

安装程序启动后,左侧语言列表选择中文简体或者English都可以,但建议选英文。原因是很多开发工具、终端输出、错误日志默认都是英文的,如果系统语言设成中文,部分软件的报错信息在网上一搜全是乱码匹配,排查问题非常难受。后面随时可以通过设置添加中文输入法,这不影响使用。

键盘布局选默认的"English (US)"即可,除非你用的是特殊配列的键盘。

安装类型这里要重点说。选择"清除整个磁盘并安装Ubuntu"是最省事的方式,对虚拟机来说没有任何风险,不用手动分区。但如果你有特定的分区需求(比如给/home单独分区方便以后重装系统保留数据),可以选择"其他选项"手动分区。

对于手动分区,我给一个适合开发用途的方案:

挂载点大小类型说明
/boot/efi512MBEFI系统分区仅UEFI引导时需要
/剩余全部-4GBext4根分区,存放系统与软件
swap4GBswap交换分区,内存16GB以下建议分配
/home可选ext4如果你希望重装系统后home数据保留,单独开一个

如果你不太确定分区怎么分,直接选"清除整个磁盘"其实更适合,虚拟机的优势就是快照和重建成本低,不用那么纠结。以后真的需要调整分区,再新建一台虚拟机就是。

4.3 创建用户、时区设置与等待安装

系统会要求设置你的用户名、计算机名和密码。这里提醒两个细节:

  • 用户名尽量不要用和管理员权限相关的名字,比如直接叫admin或root,虽然也能用,但某些软件默认配置会因此变得不安全。用你的名字拼音或缩写即可。
  • 计算机名(hostname)在后续配置ROS、配置网络时都会用到,不要太随意,最好一眼能认出这台机器是干什么的,比如ubuntu1804-dev。

时区选择上海(Shanghai),这个影响系统日志的时间戳,不要图省事选错。

之后就是十几分钟的自动安装,期间可以喝水休息一下。安装完成后会提示重启,点击"立即重启"。

4.4 首次启动后的基本配置:更新源、语言、输入法

重启进入桌面后,第一件事是打开终端(Ctrl+Alt+T),执行:

sudo apt update && sudo apt upgrade -y

这一步会更新软件包索引并升级系统软件到最新状态。但有个问题:默认的软件源是Ubuntu官方源,在国内网络环境下速度可能很慢,建议先换成国内镜像源。Ubuntu 18.04的软件源配置文件在/etc/apt/sources.list,操作方式如下:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo sed -i 's/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list sudo apt update

把官方源替换为清华镜像源。如果不放心sed命令修改的效果,也可以用sudo gedit /etc/apt/sources.list打开文件手动改。

系统语言如果想切换成中文,在"设置"→"区域和语言"中把语言改为中文并重新登录即可,但正如前面所说,我建议保留英文环境。

5. VMware Tools安装与共享文件夹、剪贴板、分辨率问题一次搞定

5.1 到底该装open-vm-tools还是VMware自带的VMware Tools

这个坑我当年花了不少时间才搞明白。Ubuntu 18.04及以上版本,强烈建议直接安装open-vm-tools,而不是从VMware菜单里选择"安装VMware Tools"再挂载虚拟光驱安装那个传统工具包。

传统VMware Tools在Ubuntu 18.04上经常遇到问题,热词清单里有一条"VMware Tools 继续运行脚本未能在虚拟机中成功运行",是很多人踩过的坑。这是因为传统VMware Tools的安装脚本依赖一些旧库,而18.04的库版本已经变了,脚本执行时出错,导致工具没有真正装好。

open-vm-tools是开源版本,由Ubuntu软件源直接维护,和系统内核的兼容性更好,功能上完全覆盖传统VMware Tools的核心能力,包括:

  • 宿主机与虚拟机之间的剪贴板共享
  • 鼠标平滑切换(不再需要按Ctrl+Alt释放鼠标)
  • 分辨率自适应
  • 文件拖放和共享文件夹挂载
  • 虚拟机性能优化(内存气球等)

安装命令就一条:

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

open-vm-tools-desktop是桌面版额外的包,装图形界面环境必须带上它,否则剪贴板共享等功能不生效。

安装完成后重启虚拟机,或者重启一下相关服务,即可生效。

5.2 配置共享文件夹的三种方法及权限坑

共享文件夹是VMware虚拟机使用频率非常高的功能,尤其在做项目开发时,宿主机下载的源码、数据集直接丢进共享文件夹,虚拟机里就能访问,非常方便。

在VMware菜单栏选择"虚拟机"→"设置"→"选项"→"共享文件夹",选择"总是启用",然后添加一个宿主机目录,比如D:\share,并勾选"启用此共享"。注意这里不要勾选"只读"。

但设置了共享目录,虚拟机里看不到怎么办?典型路径问题是,共享文件夹默认挂载在:

/mnt/hgfs/

需要确认是否挂载成功:

ls /mnt/hgfs/

如果这个目录为空或者根本不存在,多半是open-vm-tools没有完全生效。先确认服务状态:

systemctl status vmtoolsd

如果服务没跑起来,手动启动:

sudo systemctl restart vmtoolsd

还不行的话,可以手动挂载:

sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o uid=1000

其中uid=1000对应登录用户的ID,allow_other允许普通用户访问。如果不想每次开机都手动执行,可以把挂载命令写进/etc/fstab:

.host:/ /mnt/hgfs fuse.vmhgfs-fuse allow_other,defaults 0 0

权限方面最容易踩的坑是:共享文件夹里的文件归属显示为root:root,普通用户只有只读权限。这是因为VMware共享文件夹默认以root权限挂载。如果经常需要在共享目录里改文件,上面的fstab里加上uid=1000,gid=1000就能直接以普通用户读写。

有一个点需要提前说明:Windows宿主机和Linux虚拟机的文件系统特性不同,共享文件夹里不建议直接放需要执行权限的脚本或包含大量小文件的代码仓库,例如Git仓库。前者是因为Windows的NTFS没有Linux的chmod权限概念,脚本传到Linux目录下需要手动chmod +x;后者是因为大量小文件跨文件系统读写性能很差,编译大型项目时会明显变慢。正确的做法是:在虚拟机内部目录建一个工作副本,从共享文件夹拷贝过去再操作,这样体验会顺畅很多。

5.3 剪贴板共享和文件拖放突然失效怎么办

有时候剪贴板共享刚开始能用,后来突然失效了。这个问题的根因通常是桌面会话里的剪贴板管理进程被系统更新或手动kill掉了。重启虚拟机一般能恢复,但更优雅的解决方法是重启vmtoolsd服务:

pkill -f vmtoolsd sudo systemctl start vmtoolsd

如果重启服务后还是不行,再执行一次sudo apt install --reinstall open-vm-tools-desktop,然后重启。这里的教训是:不要装了两个VMware Tools,即open-vm-tools和传统VMware Tools同时存在,大概率会冲突。如果之前已经通过传统方式装过VMware Tools,先把虚拟机设置里的CD/DVD从"使用ISO映像文件"(指向VMware Tools镜像)改为"自动检测",再用下面命令彻底移除传统包:

sudo vmware-uninstall-tools.pl

没有这个命令就说明没装过传统版,跳过即可。

6. 实测中的网络问题和常见启动故障排查

6.1 虚拟机无法上网:NAT网卡不工作的排查链路

网络问题是虚拟机使用中最高频的故障,我总结一个排查链路,按顺序执行就能定位大部分问题。

第一步,确认虚拟机内部的网络接口状态:

ip addr show

如果看到类似ens33或ens160的接口有IP地址,且显示state UP,说明虚拟机网络本身正常,跳去检查外部网络。如果没有IP地址,执行:

sudo dhclient ens33

手动获取IP地址,如果还是失败,进入下一步。

第二步,确认VMware的虚拟网络服务是否正常。在Windows中按Win+R输入services.msc,找到VMware NAT Service和VMware DHCP Service,确保状态为"正在运行"。这两项服务经常在系统更新后被禁用或卡死,手动重启一下往往就好了。

第三步,确认VMware虚拟网络编辑器配置是否正确。菜单栏"编辑"→"虚拟网络编辑器",确保VMnet8(NAT模式对应的虚拟网卡)的网段没有和宿主机实际局域网网段冲突。例如宿主机在192.168.1.x网段,VMnet8也设置在192.168.1.x,就会出现路由混乱,这时把VMnet8改成192.168.x.0/24的其他网段即可。

第四步,如果以上都正常但还是上不了网,检查Windows防火墙是否拦断了VMware的虚拟网卡通信。可以临时关闭防火墙做测试,确认是防火墙问题之后,再去防火墙设置中专门放行VMware相关服务,不建议为了省事长期关闭防火墙。

6.2 启动时黑屏或卡在Logo界面的处理方式

这台走了几次弯路之后,我把常见的启动故障整理成了一张速查表:

现象最常见原因解决办法
启动后一直黑屏显卡驱动或虚拟显存不足把虚拟机的显存调到128MB以上,勾选"加速3D图形"
卡在紫色安装界面ISO文件损坏或内存过小校验SHA256,分配内存到2GB以上
启动时报"此主机不支持虚拟化"BIOS里VT-x/AMD-V未开启重启进BIOS开启虚拟化开关
启动时报"VMware Workstation无法启动"服务未运行或版本冲突重启VMware服务或重装对应版本
登录后桌面图标消失或卡顿显卡驱动、open-vm-tools未装好执行sudo apt install --reinstall open-vm-tools-desktop后重启

有一个容易被忽略的操作是:如果虚拟机异常卡死,按Ctrl+Alt+Delete或者强制关闭虚拟机窗口后,下次启动时会弹出"虚拟机正在使用中"的提示,这时在虚拟机目录下删除.lck后缀的锁定文件夹,再重新开机即可。

6.3 磁盘空间不够用的扩容流程

装了开发环境之后,40GB的磁盘空间很快就显得紧张。VMware支持在线扩容虚拟磁盘,但扩容后Linux内部的分区和文件系统还需要手动扩展。

第一步,虚拟机设置中对磁盘执行"扩展",填写想要扩展到的总大小,比如从40GB扩展到80GB,注意这里只能加大不能缩小。

第二步,进入虚拟机,确认磁盘识别情况:

sudo lsblk

假设原来是/dev/sda3作为根分区,扩容后/dev/sda盘变大,但分区大小未变。用sudo growpart /dev/sda 3扩展分区(数字3改成你自己的分区编号),然后让文件系统扩展:

sudo resize2fs /dev/sda3

对于ext4文件系统,这两条命令顺序执行之后,df -h就能看到根分区已经变大。如果你是LVM逻辑卷,流程会稍微复杂一点,不过Ubuntu 18.04桌面版默认不是LVM,普通用户不需要担心。

扩容操作虽然不复杂,但还是建议操作前打一个快照,万一手滑删了分区,还能恢复。

7. 安装完成后的系统精简与开发环境预备

7.1 关闭不必要的系统服务,降低资源占用

Ubuntu 18.04桌面版默认会启动很多你用不上的服务,对虚拟机来说每一点内存和CPU都很宝贵。几件值得做的事:

关闭不需要的自动更新提醒。编辑配置文件:

sudo sed -i 's/1/0/g' /etc/apt/apt.conf.d/20auto-upgrades

查看具体内容:

cat /etc/apt/apt.conf.d/20auto-upgrades

如果显示两个0,说明自动检查更新已禁用,系统不会再时不时弹更新提醒占用网络和CPU资源。

关闭桌面搜索索引服务。这个服务会持续扫描文件系统建立索引,在虚拟机里不仅消耗性能,还可能导致共享文件夹被反复扫描。Ubuntu 18.04桌面版的索引工具是tracker,禁用方式:

systemctl --user mask tracker-store.service tracker-miner-fs.service tracker-miner-rss.service tracker-miner-apps.service

如果你用不到位置服务,也可以关掉GNOME的定位相关组件。不过这个影响不大,按需操作即可。

7.2 为ROS开发和Autoware环境预留的依赖安装清单

Ubuntu 18.04是ROS Melodic的主要支持版本,也是Autoware等自动驾驶框架的主战场。如果你装这台虚拟机就是为了跑这些,下面几项建议提前做:

安装编译工具链和基础依赖:

sudo apt install build-essential git cmake curl wget net-tools -y

安装文本编辑器和终端增强工具:

sudo apt install vim tmux htop tree -y

安装Python开发环境(Ubuntu 18.04自带Python 3.6,注意版本差异):

sudo apt install python3-pip -y

如果有图形界面可视化需求,加上:

sudo apt install mesa-utils -y

glxinfo和glxgears两个工具可以用来验证虚拟机的OpenGL加速是否正常。之前RViz渲染异常,就是靠glxinfo | grep renderer定位到虚拟显存不足的问题。

7.3 打快照:装好系统后第一件要做的事

配置好更新源、装完基础工具之后,在VMware菜单栏选择"虚拟机"→"快照"→"拍摄快照"。这个快照相当于系统的"存档点",以后不管是装软件搞坏了系统、改配置改到起不来、还是编译依赖包折腾到依赖冲突,都可以直接恢复到当前这个干净的状态。

我个人的习惯是分阶段打快照:

  • 第一个快照:刚装完系统,还没做任何修改,标记为"01-clean-install"
  • 第二个快照:换好国内源、装完open-vm-tools、配好共享文件夹,标记为"02-base-config"
  • 第三个快照:装完开发工具链和ROS环境,标记为"03-dev-ready"

快照之间层级不要打太深,最多两级就够,层级太深也会占用磁盘空间。时间久了,确认某个快照不需要了,直接删除即可。

8. 其他值得说的细节:窗口自适应、录屏、传输文件的替代方案

8.1 VMware窗口全屏分辨率不自动匹配的处理

装好open-vm-tools-desktop之后,窗口自动适应功能通常会正常工作。如果全屏后分辨率没有变化,在Ubuntu的"设置"→"显示器"里手动选择分辨率,去掉"跟随VMware窗口大小"的选项再重新勾选,一般就能刷新生效。

个别情况下,Wayland会话可能导致分辨率自适应异常。Ubuntu 18.04默认是Xorg会话,如果你手动切换到Wayland,在登录界面齿轮菜单里选回"Ubuntu on Xorg"即可。

8.2 虚拟机内录屏和截图的正确姿势

在虚拟机里做演示或者记录操作过程,截图直接用Ubuntu自带的截图工具即可。录屏的话,不带声音的简单录屏可以用GNOME自带的录屏功能,按Ctrl+Alt+Shift+R开始和结束录制,视频默认存放在~/Videos目录。

需要带声音录屏的话,推荐用OBS Studio,安装命令:

sudo apt install obs-studio -y

虚拟机内录屏的音频源选PulseAudio,也就是虚拟机的音频输出,这样录出来的画面和声音是同步的。

8.3 不用共享文件夹的替代传输方案

除了共享文件夹,在VMware里传输文件还有几种方式,按场景选择:

直接拖放。适合零星小文件。如果拖放不了,检查两件事:一是确认open-vm-tools-desktop已安装并重启过,二是确认VMware的"虚拟机设置"→"选项"→"客户机隔离"中"启用拖放"已勾选。

HTTP服务。如果你在物理机上跑着下载工具或Web服务,可以在虚拟机里用wget直接下载,比如python3 -m http.server 8080起一个临时HTTP文件服务,虚拟机用浏览器访问宿主机的IP加端口就能下载文件。适合大文件传输。

SSH传输。在虚拟机里启动SSH服务之后,物理机上用scp或WinSCP直连虚拟机的IP地址传文件。注意NAT模式下需要先知道虚拟机的NAT IP,用ip addr查看即可。

这些方法没有绝对的好坏,共享文件夹适合常规开发协作,SSH适合服务器场景,HTTP适合一次性大文件传输,灵活搭配就好。

8.4 虚拟机休眠和挂起的区别

VMware中有"挂起"和"关机"两个选项。挂起相当于把虚拟机的当前状态保存到磁盘,下次启动直接恢复到挂起时的状态,启动速度快,适合日常临时离开的场景。但挂起状态下系统时钟可能漂移,跑一些对时间敏感的服务时回来看时间不对,需要手动同步。另外挂起时虚拟机仍然占用磁盘空间,大小约等于分配给它的内存量。

我个人的习惯是:开发累了直接挂起,非常方便,第二天打开虚拟机两秒就能回到之前的桌面环境。但如果要长时间不用,或者准备给重要节点打快照,先执行内部的sudo shutdown now关机再去操作快照,更稳妥。

9. 几个容易踩的生活方式类问题

9.1 Ubuntu 18.04已经停止维护,还要不要用

这是个绕不开的问题。Ubuntu 18.04标准支持在2023年已经结束,这意味着它不再接收安全和功能更新。但为什么还有大量人在使用?根源在于ROS Melodic、Autoware以及很多自动驾驶领域的老项目都基于18.04构建,升级系统意味着大量依赖重装、代码适配,迁移成本非常高。

对学习用途来说,18.04依然可用,但建议注意几点:第一,不要在这台虚拟机里处理敏感数据或对外暴露服务,因为缺少安全补丁风险相对较高;第二,如果只是学习Linux基础,其实可以考虑Ubuntu 20.04或22.04,没有必要非守着18.04。如果你明确知道自己要跑ROS Melodic或者Autoware,那18.04就是当前最合适的选择。

9.2 虚拟机卡顿的几个真实原因

装了虚拟机之后感觉比物理机卡,大多数人第一反应是"虚拟机性能不行",但实际上绝大多数卡顿的根源是资源分配不合理。

最典型的场景是:宿主机只有8GB内存,却给虚拟机分配了6GB,然后宿主机自己内存吃紧,开始疯狂使用虚拟内存,整个系统都卡。正确做法是给虚拟机预留宿主机内存的1/3~1/2,并且宿主机侧保证有足够的空闲内存。

另一个常被忽视的问题是虚拟机的CPU分配比物理机逻辑核心数还多。比如4核8线程的CPU,给虚拟机分配8核,反而是负优化。虚拟化层调度多个虚拟CPU的开销非常大,一般建议分配物理逻辑核心数的一半即可。

还有一个问题是磁盘IO。虚拟机镜像存放在机械硬盘上时,启动和软件安装的速度会明显偏慢,这是硬件层面的瓶颈,没有太多优化空间,只能建议尽量把虚拟机文件放在固态硬盘上,或者至少放在剩余空间充足的盘上,避免磁盘碎片过多影响性能。

9.3 为什么要在虚拟机里而不是WSL里装Ubuntu?

如果你用的是Windows 10/11,可能会有人推荐你直接用WSL。WSL有自己的优势,启动快、资源占用低、和Windows文件系统交互方便。但它和完整虚拟机的定位不同。

WSL没有完整的Linux内核(WSL2虽然带了轻量内核,但和Ubuntu桌面版还是不同),不能跑需要直接操作硬件设备的程序,比如部分传感器驱动、USB设备直通的测试。图形界面方面,WSL的GUI支持虽然一直在改进,但跑RViz、Gazebo这类OpenGL密集型应用时,性能和兼容性都不如完整虚拟机或物理机。

如果你只是写写脚本、跑跑命令行工具,WSL足够。如果要做机器人仿真、自动驾驶算法验证、需要完整的桌面图形环境和设备直通能力,VMware虚拟机是更稳妥的选择。这两者不是替代关系,是不同场景下的不同工具。

10. 我自己重装过十几遍之后的心得

回到开头那句话,装虚拟机这件事,看似简单,里面的小坑是真不少。但每个坑踩过去之后,你对整个虚拟化、Linux系统启动流程、网络栈的理解都会上一个台阶。下面几条是我重装了很多遍之后沉淀下来的习惯,分享给你。

第一,每进行一个大步骤就拍一个快照。安装完成、换源成功、装好Tools、配置好开发环境,每个节点都存一个。这样就算后面把系统搞到完全起不来,恢复也就几分钟的事,远比重新走一遍安装流程省心。

第二,装好系统第一件事不是装软件,而是换软件源。用默认源在国内环境下apt update慢到怀疑人生,先换成国内镜像源,后续所有软件安装的体验都会顺畅很多。这一步很多人没做,装个软件等半天,就说Ubuntu"用不了",其实是冤枉它了。

第三,遇到问题先确认基础环境,再往深处查。VMware里的很多"玄学问题",多一半出在基础配置上,比如虚拟化开关没开、服务没启动、网段冲突、内存分配过小。按照从底向上的顺序排查,效率远高于直接搜某个报错然后乱改一通。

第四,别迷信网上的命令和密钥。尤其是许可证密钥,时效性很强,今天能用明天可能就失效了。命令也要看清楚对应的系统版本和软件版本,很多教程里的命令是针对旧版VMware或者新版Ubuntu的,直接照搬反而会出问题。

最后想说,虚拟机这个东西,最好的学习方法就是亲手装一遍,装坏了就重来,反正有快照兜底。装好之后再多折腾几个软件和服务,你对Linux系统的理解会远远超过看十篇教程。希望这篇教程能帮你把第一步走稳。

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

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

立即咨询