最近帮同事在一台新笔记本上搭开发环境,又被问到“为什么你总爱在VMware里装Server版Ubuntu,直接用桌面版不香吗”。这个问题其实挺典型的。桌面版确实开箱即用,但live-server版装出来的是纯命令行环境,干净、省资源,适合当开发服务器、跑Docker或做CI节点。这篇就按我这两周的实际操作顺序,把在VMware Workstation里安装ubuntu-24.04.3-live-server-amd64的完整过程写清楚,从ISO下载、虚拟机创建,到Subiquity安装器里每个选项该怎么选,最后附上我踩过的坑和排查思路。不管你是刚接触Linux的新手,还是想换个环境跑服务的熟手,照着走一遍基本都能顺利装上。
1. 准备工作:镜像文件与虚拟机平台
1.1 为什么选VMware Workstation,版本和授权怎么解决
先聊平台。市面上的虚拟机方案不少,VirtualBox免费开源,Hyper-V是Windows自带,但我在真实项目里用得最多的还是VMware Workstation。原因不外乎三点:一是虚拟硬件兼容性好,Linux发行版基本都能直接识别;二是快照和克隆功能做得成熟,做实验、改配置出问题后一键回滚非常方便;三是网络模式细分到位,NAT、桥接、仅主机几种模式在本地开发场景里足够灵活。
版本方面,我目前用的是VMware Workstation Pro 17。这里有个好消息,从2024年5月开始,Broadcom把Workstation Pro对个人用户免费了,不再强制要求商业许可证。官方下载页面直接注册一个账号就能拿到Windows或Linux版本,安装后选择“个人使用”即可,不再需要到处找激活密钥。如果你手头还是16或15的老版本,功能上完全够用,不用急着升级,但要注意旧版对较新的内核版本(比如Ubuntu 24.04的6.8内核)可能存在虚拟硬件兼容的隐患,装完以后虚拟机里如果出现奇怪的卡死或驱动问题,优先考虑升级Workstation版本。
1.2 Ubuntu 24.04.3 live-server镜像下载与校验
镜像这块有两个坑要提前说清楚。第一,24.04.3是Ubuntu 24.04 LTS系列的一个point release版本,它主要目的是把之前半年内的硬件驱动和安全更新合并进安装镜像,比最初版24.04.0对新笔记本、新硬件支持更好,所以我建议直接用.3这个版本。第二,live-server版本的镜像文件名很长,比如ubuntu-24.04.3-live-server-amd64.iso,很多人看到“live-server”就以为是那个带图形界面的Ubuntu Server,其实它就是命令行安装的服务器版,安装器是Subiquity,界面是低分辨率字符终端,不是桌面图形界面。
下载地址优先走官方源:https://releases.ubuntu.com/24.04.3/ ,国内网络如果很慢,可以换成清华TUNA或阿里云镜像站,文件内容和官方一致,但速度快很多。拿到ISO后别急着装,先做一步校验。官方页面每个镜像都附带了SHA256SUMS文件,Windows下可以用PowerShell执行Get-FileHash命令:
powershell复制Get-FileHash .\ubuntu-24.04.3-live-server-amd64.iso -Algorithm SHA256
对比一下返回的哈希值和官方SHA256SUMS里那一行是否一致。这一步非常关键,我之前有一次从某个第三方下载站拿到的ISO体积一样,但安装到一半Subiquity直接崩溃,最后排查发现就是文件不完整,重新下载校验后一切正常。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 创建虚拟机的关键决策
2.1 硬件配置:内存、CPU、硬盘如何取舍
在VMware里新建虚拟机时,有“典型”和“自定义”两种路径。我强烈建议选“自定义”,因为默认的典型配置很多参数不适合跑Ubuntu Server。进入自定义向导后,主要设置这几项:
- 内存:至少给2GB,但如果你打算在虚拟机里编译代码或跑几个容器,直接给4GB以上。我自己的经验是4GB起步,别低于这个数。
- 处理器:分配2个内核比较稳妥。如果是8核以上的宿主机可以给到4个,但注意这不是越多越好,虚拟机的多核调度开销并不小。
- 硬盘:Ubuntu Server基础安装占用不到3GB,但后续装Docker镜像、编译缓存、日志文件都会膨胀,建议给40GB以上。磁盘类型默认NVMe或SCSI都行,我这里选了NVMe,速度更好。
- 固件类型:这个容易被忽略。新版Ubuntu对UEFI支持更好,我建议选UEFI。如果选BIOS也能装,但后续如果要用Secure Boot或vTPM相关的功能会受限。
内存和CPU的配比我在项目里踩过一次坑:一开始图省事给虚拟机分了8个核心,结果宿主机本身就在跑编译任务,两个系统抢CPU资源反而互相拖慢。后来换成2核心4GB,日常使用完全够,宿主机也稳了。所以配置不是越大越好,量力而行。
2.2 网络模式与虚拟化开关,装完少走弯路
虚拟机创建向导里,“网络连接”有桥接、NAT、仅主机三种模式。很多新手装完Ubuntu后发现能上网但宿主机访问不到虚拟机,基本都是网络模式选错了。简单说:
- NAT模式(默认):虚拟机通过宿主机共享IP上网,外部访问不到虚拟机。适合不需要外部连接的开发测试。
- 桥接模式:虚拟机是独立主机,和宿主机同一局域网,可以直接被其他设备访问。适合需要SSH连接、部署服务供局域网访问的场景。
- 仅主机模式:只能和宿主机互通,不能访问外网,适合完全隔离的测试环境。
我的习惯是,装系统阶段用NAT,装完系统后改成桥接。原因很简单:NAT模式在安装时不容易出网络问题,等系统起来再改桥接,配置静态IP时思路更清晰。
另外在“处理器”设置里,有一个“虚拟化引擎”选项,默认没勾选。如果你以后想在虚拟机里再跑虚拟化工具(比如Docker Desktop、Android模拟器、嵌套虚拟机),建议勾上“虚拟化Intel VT-x/EPT或AMD-V/RVI”。不勾的话,Ubuntu里很多依赖KVM的软件会报错,而且是那种很难排查的底层错误。
补充一点,如果你有多个物理网卡(比如笔记本有线和无线),创建虚拟机时选桥接模式会要求指定桥接到哪块网卡。这里选实际接入网络的网卡,否则虚拟机可能获取不到IP。
3. 从启动到装完:Subiquity安装器全流程
3.1 首次引导与键盘、网络配置
虚拟机创建完成后,挂载ISO并启动,GRUB引导界面会出现几个选项,选择“Try or Install Ubuntu Server”回车。注意这里不是桌面版那种图形界面,屏幕会进入一个字符界面,顶部会显示Ubuntu和Subiquity安装器的版本号。
第一项是选择语言,默认English,这里建议直接选English,避免后续路径或字符集出现奇怪问题。接下来是键盘布局,同样是默认English (US)即可,如果你有特殊需求可以在Configure layout里改。这两个选项在安装系统后可以随时改,不用太纠结。
然后是网络配置。Subiquity会自动探测网卡并尝试用DHCP获取IP,大多数情况下能看到自动分配到的IP和网关。如果你就打算用DHCP,直接下一步;如果你想要静态IP,选中网卡后按回车进编辑界面,手动填IP、掩码、网关和DNS。这里有个细节,IPv6自动生成的地址在没配置时显示为SLAAC,不用管它,IPv4能用就行。还需要把镜像源地址改成国内源,不然后面下载软件包会慢到怀疑人生。默认的archive.ubuntu.com在全球都很快,但在国内经常掉链子,换成清华源或阿里源会明显改善。如果后面发现更新源速度慢,也可以在装完系统后通过sed命令替换为国内镜像源。
代理设置一般情况下留空即可。如果公司网络有代理,在对应栏目里填http://用户名:密码@代理IP:端口的格式。
3.2 存储配置与软件包选择,LVM、ZFS怎么选
存储这块是新手最懵的地方。Subiquity会列出检测到的磁盘,默认让你选择“Use An Entire Disk”,即使用整块磁盘。底下还有配置LVM和ZFS的选项。
默认的整块磁盘模式会创建一个分区表,包含一个EFI分区、一个根分区(或根分区加swap分区),对大部分人来说最省心。但如果后续想做磁盘快照或扩容,建议勾选“Set up this disk as an LVM group”。LVM的好处是可以把多个物理磁盘合并成逻辑卷,也可以方便地在逻辑卷级别做扩展和迁移。安装时它会创建一个卷组,并在里面划分根卷和swap卷。
ZFS则更好用,支持快照和校验,但这些特性也带来更高的内存占用。我个人在虚拟机上通常用LVM,因为ZFS对内存敏感,VM环境下内存本来就有限,让ZFS吃掉一大部分做ARC缓存不划算。
顺带说一句,安装过程中你可以看到磁盘分区的最终预览,如果你对哪一步不放心,可以在这一步停下来检查。我之前遇到过一次诡异问题,ISO烧录方式不当导致可用空间为0,在这个界面根本看不到磁盘,后来换了一个U盘重烧系统才恢复正常。
软件包选择方面,Subiquity会让你勾选安装额外的软件,常见的有OpenSSH server、Docker、MicroK8s等。我建议在这里直接勾选OpenSSH server,这样系统起来就能用SSH连接,省去后面手动安装的步骤。
3.3 创建账户与SSH密钥导入
用户配置界面需要填三件事:你的名字、登录名、密码。填完后有一个“Import SSH identity”选项,可以从GitHub或Launchpad导入SSH公钥。如果你之前配置过GitHub账号,这里输入用户名后会自动拉取公钥,勾选后就可以实现免密SSH登录。
这一步我强烈建议做,因为后续远程开发、scp传文件都会频繁用到SSH。没有公钥的话每次连接都要输密码,而且在一些自动化的脚本场景里,免密登录几乎是必备条件。如果你暂时没有SSH公钥,也可以在系统装完后用ssh-keygen生成,再把公钥加到~/.ssh/authorized_keys,效果一样。
账户创建完成后,Subiquity还有一个“Snap商店”配置页,可以安装一些常用的snap包。这一步可选,默认不勾选,具体需要什么装完系统再按需添加即可。最后安装器会汇总所有配置,确认无误后点击Install,系统就开始写入磁盘了。这个过程根据你的磁盘速度和虚拟机的CPU性能,通常在5到15分钟之间。
安装过程中,Subiquity底部会滚动显示进度信息,什么复制文件、安装引导器、清理临时文件之类的。你不需要干预,去做别的事即可。安装完成后会提示Reboot,点击回车重启。如果出现“Please remove the installation medium, then press ENTER”的提示,关掉虚拟机,在设置里把ISO从光驱中卸载,然后再次启动。
4. 安装完成后的初始化与增强工具
4.1 第一次登录,必做的几个检查
虚拟机重启后进入GRUB菜单,默认第一个选项就是启动系统,几秒钟后会看到命令行登录提示。用你刚创建的用户名和密码登录,第一件事是确认网络和服务状态。
bash复制ip a
ping -c 3 baidu.com
systemctl status systemd-networkd
IP地址和网络通不通,这是很多问题的根源。另外检查一下主机名:
bash复制hostnamectl
Ubuntu安装器默认会生成一个随机主机名,类似ubuntu或ubuntu-24-04-3,如果你想改成有辨识度的名字:
bash复制sudo hostnamectl set-hostname dev-server
然后编辑/etc/hosts,把新主机名映射到127.0.1.1:
bash复制127.0.0.1 localhost
127.0.1.1 dev-server
改完主机名后记得重启systemd-hostnamed服务或者直接重启系统。
第二步是更新软件源和升级系统包。这一步能解决后续很多软件兼容问题,建议装完就做:
bash复制sudo apt update && sudo apt upgrade -y
升级时如果看到linux-image内核更新的选项,选择“Y”安装即可。升级完成后我习惯重启一次,确保新内核生效。
另外,Ubuntu安装器虽然创建了swap分区,但虚拟机里如果内存足够,可以检查一下swap的使用情况:
bash复制free -h
如果内存8GB以上,swap经常是0,这完全正常,不用慌。
4.2 open-vm-tools的安装与时间同步
以前在VMware里装完Ubuntu,很多人会去挂载VMware Tools安装包运行那个perl脚本。但新版Ubuntu里那个官方VMware Tools脚本经常报错,而且和内核模块不兼容,我现在基本不推荐用。正确做法是安装open-vm-tools包,这是VMware和Linux社区合作的VMware Tools开源版本,已经集成到Ubuntu官方源里了。
bash复制sudo apt install open-vm-tools -y
如果是Server版,没有桌面环境,安装open-vm-tools就够了;如果是Desktop版还需要安装open-vm-tools-desktop来支持剪贴板共享和自动分辨率调整。安装完成后虚拟机里的vmware-toolbox-cmd命令就能用了,可以用它查询虚拟机状态和设置选项。
另外,时间同步是个容易被忽略的坑。虚拟机挂起或宿主机休眠后,重启虚拟机经常会发现系统时间偏了几分钟甚至几天。解决办法是确保systemd-timesyncd服务在运行,并且在VMware虚拟机设置里勾选“同步VM时间与宿主时间”选项。如果时间还是不对,可以手动执行:
bash复制sudo timedatectl set-ntp true
sudo systemctl restart systemd-timesyncd
强制同步一次:
bash复制sudo timedatectl set-time "$(date)"
这一套下来,时间问题基本就解决了。我之前遇到过宿主机和虚拟机时间差了8小时,排查了半天没找到原因,后来发现是宿主机时区设置成了UTC,和虚拟机的Asia/Shanghai时区不一致,调整宿主机时区后一切正常。
5. 常见问题排查实录
5.1 Subiquity崩溃:要么内存不够,要么镜像有问题
这是我在安装过程中遇到最多的报错。Subiquity在安装过程中偶尔会直接退出或卡住,界面显示类似“Subiquity crashed”的红色信息。如果你遇到这种情况,按顺序排查:
- 确认ISO文件哈希值和官方一致,方法见1.2节。
- 检查虚拟机内存分配,建议最低2GB,推荐4GB。内存不足时Subiquity的Websocket通信模块非常容易崩溃。
- 检查磁盘空间是否充足,磁盘快照或空间不足也会导致安装中断。
另外,如果安装器卡在某个进度条很久不动,可以按Ctrl+Alt+F2切换到Shell界面查看日志,或者等待几分钟,有时它只是在后台下载软件包而已。
我遇到过最离奇的崩溃是ISO文件没问题,内存也给得很足,但安装器在分区阶段报错。后来发现原因是我在VMware里手动改了虚拟磁盘类型,从默认的SCSI改成了“虚拟NVMe”,而某些版本的VMware和Ubuntu内核驱动组合有兼容性问题。改成默认的LSI Logic或VMware Virtual NVMe后问题解决。
5.2 VMware Tools脚本报错怎么办
如果你在安装完系统后,手动在VMware菜单里选择“Install VMware Tools”,然后挂载虚拟光驱,运行那个vmware-install.pl脚本,很可能在编译内核模块时出现Unable to find the kernel source或The path "/usr/src/linux" is not valid这样的报错。
原因很简单:新版Ubuntu不再默认安装内核头文件。解决办法是不用官方VMware Tools,改用系统自带的open-vm-tools。执行:
bash复制sudo apt install open-vm-tools -y
安装完后查看服务状态:
bash复制systemctl status open-vm-tools
如果是active (running),说明驱动和守护进程都已经就绪,虚拟机里的其他VMware增强功能也能正常使用了。
5.3 网络不通、DHCP分配的IP总变,怎么处理
虚拟机刚装完时网络是通的,但如果把网络模式从NAT改成桥接,或者在不同网络间切换(比如家到公司),经常遇到IP连不上。排查思路如下:
先确认虚拟机里网络的确是通的:
bash复制ip a
ip route
然后确认宿主机能ping通虚拟机。如果宿主机ping不通,但虚拟机上网正常,多半是防火墙或网络模式没配对。桥接模式下,虚拟机要能和宿主机互通,需要确保两者在同一个子网内,且虚拟机的网关和DNS配置正确。
如果你觉得DHCP分配的IP不稳定,建议直接给虚拟机配置静态IP。编辑/etc/netplan/下的YAML文件(文件名通常是50-cloud-init.yaml或00-installer-config.yaml),参考这样的配置:
yaml复制network:
version: 2
ethernets:
ens33:
dhcp4: false
addresses:
- 192.168.1.100/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [223.5.5.5, 114.114.114.114]
然后执行sudo netplan apply生效。这里注意,Ubuntu Server默认使用了netplan作为网络配置工具,不是传统的/etc/network/interfaces,别改错地方。
5.4 分辨率不对、剪贴板不好用,Server版需要处理吗
如果你装的是Server版,纯命令行界面,分辨率和剪贴板其实都不重要,但如果你像我一样习惯把字体调到最大、窗口拉大,可以通过GRUB配置调整控制台分辨率。编辑/etc/default/grub,找到GRUB_CMDLINE_LINUX_DEFAULT,加上video=1920x1080这样的参数,然后执行sudo update-grub。
如果你实际上装的是带桌面的Ubuntu Desktop版,那交互体验问题更多。剪贴板共享在Desktop版里需要安装open-vm-tools-desktop包,分辨率自适应也需要这个包,装完后重启虚拟机再试。如果还是不行,检查虚拟机设置里的“加速3D图形”是否打开,显卡控制器最好默认选AUTO而不是手动指定。
我个人的建议是,如果你在VMware里主要想体验Ubuntu桌面的,直接装Desktop版别再纠结Server版的分辨率问题;如果将来目标是做服务端、Docker、数据库,那不管装什么版都建议把桌面环境去掉,纯SSH操作,稳定性高得多。
我自己在实际操作中最深的体会是,VMware里装Ubuntu Server根本不需要整那些花活——配置别贪多,网络模式想清楚,软件源换成国内镜像,装完系统立刻装open-vm-tools,这几步做好,后面基本不会遇到什么致命问题。如果你正好卡在某个报错上,先按上面几类排查,大概率都能解决。这次用的是24.04.3这个版本,后续如果想再跑一个干净的单节点K8s环境,也可以在这个虚拟机基础上直接克隆,省去重复安装的时间。
