3. 虚拟机搭建:VMware/VirtualBox安装、Ubuntu Server/Desktop安装、网络配置(NAT与桥接)

嵌入式Linux开发,说白了离不开虚拟机。你想想看,我们总不能为了学个嵌入式,就把主力电脑重装成Linux吧?我个人的习惯是:Windows做宿主机,虚拟机跑Linux开发环境。这样两边互不干扰,截图、查资料、写文档都方便。

这一章,咱们就把虚拟机环境彻底搞定。包括选哪个虚拟机软件、装什么版本的Ubuntu、网络怎么配——每一步我都会把坑指出来。

3.1 虚拟机软件选型:VMware vs VirtualBox

市面上主流的虚拟机软件就两个:VMware Workstation(收费)和Oracle VirtualBox(免费)。我两个都用过,简单说说区别。

对比项 VMware Workstation Oracle VirtualBox
价格 商业软件,需付费(有试用期) 开源免费
性能 3D加速、磁盘I/O更优 日常开发够用,稍弱
快照/克隆 功能完善,支持链接克隆 支持快照,克隆稍麻烦
USB设备透传 稳定,支持USB 3.0 偶尔掉设备,需装扩展包
社区资源 企业级文档多 教程多,遇到问题好搜

我的建议:如果你是新手,直接用VirtualBox就行,免费且够用。如果你公司项目里用VMware,或者你需要频繁操作USB下载器、调试器,那VMware更稳。我个人在培训学员时,统一用VirtualBox——省去破解的麻烦。

3.2 安装VirtualBox(以6.1.x为例)

安装过程其实很简单,但有几个细节要注意。

  1. 下载安装包:去官网 virtualbox.org 下载对应Windows版本。别去第三方下载站,容易被捆绑。
  2. 安装路径:建议不要有中文和空格。比如 C:\Program Files\Oracle\VirtualBox 就挺好。
  3. 网络组件:安装过程中会提示安装虚拟网卡驱动,一定要同意。否则后面NAT和桥接都用不了。
  4. 扩展包(Extension Pack):装完主程序后,再下载同版本的扩展包。它提供USB 2.0/3.0、RDP等支持。双击安装即可。

我曾经踩过的坑:有一次装完VirtualBox,发现虚拟机死活识别不到U盘。折腾了半天,才发现是扩展包没装。记住:主程序 + 扩展包,缺一不可。

3.3 创建虚拟机 & 安装Ubuntu

虚拟机软件装好了,接下来要创建一台“虚拟电脑”,然后在里面装Ubuntu。

3.3.1 创建虚拟机

点击VirtualBox主界面的「新建」,按以下参数配置:

配置项 推荐值 说明
名称 Ubuntu-Dev 见名知意
类型 Linux 自动选择
版本 Ubuntu (64-bit) 根据镜像选择
内存大小 4096 MB(4GB) 至少2GB,推荐4GB
虚拟硬盘 现在创建虚拟硬盘 选VDI格式
硬盘大小 40~60 GB 动态分配,实际用多少占多少

嗯,这里有个细节:内存别给太大。你宿主机如果是8GB内存,分4GB给虚拟机,剩下4GB给Windows,刚好够用。如果你给6GB,Windows那边卡成PPT,你连百度查错都费劲。

3.3.2 Ubuntu Server vs Desktop,怎么选?

很多新手会纠结这个问题。我直接给结论:

  • Ubuntu Desktop:带图形界面,适合初学者。你可以在里面打开浏览器、终端、文件管理器,跟用Windows差不多。
  • Ubuntu Server:纯命令行,没有桌面。省资源,适合服务器部署或老手。

我的建议是:如果你是第一次接触Linux,选Desktop。等熟悉了命令行操作,再考虑Server版。我自己教学时,统一用Ubuntu 22.04 LTS Desktop。

3.3.3 安装Ubuntu Desktop

启动虚拟机,选择下载好的ISO镜像文件,然后开机。安装步骤很简单:

  1. 选择语言:English(别选中文,终端报错搜起来麻烦)
  2. 键盘布局:默认English (US)
  3. 安装类型:选「Erase disk and install Ubuntu」——放心,它擦的是虚拟硬盘,不影响你Windows。
  4. 设置用户名和密码:比如用户名 embed,密码 123456(自己用无所谓,生产环境别这么干)
  5. 等待安装完成,重启。

关键一步:重启后如果黑屏只看到一个光标在闪,别慌。这是显卡驱动问题。关闭虚拟机,在设置 → 显示 → 显卡控制器里,改成 VBoxSVGA,再启动就好了。

3.4 网络配置:NAT与桥接

虚拟机装好了,但没网络等于废了一半。VirtualBox提供两种主流网络模式:NAT 和 桥接。我画了张图帮你理解。

虚拟机网络模式对比:NAT vs 桥接 虚拟机网络模式对比:NAT vs 桥接 NAT 模式 虚拟机 NAT网关 宿主机 互联网 特点 • 虚拟机共享宿主机IP • 宿主机可访问虚拟机 • 局域网其他设备 无法访问虚拟机 • 适合:仅需上网 下载软件包 桥接 模式 虚拟机 虚拟交换机 宿主机 路由器/互联网 特点 • 虚拟机独立IP • 与宿主机同级 • 局域网其他设备 可直接访问虚拟机 • 适合:SSH登录 NFS/SFTP传文件 板子与虚拟机通信

3.4.1 NAT模式(默认)

NAT模式下,虚拟机通过宿主机上网。说白了,宿主机像个路由器,虚拟机在它后面。虚拟机可以访问外网,但局域网里的其他电脑访问不了虚拟机。

适用场景:

  • 虚拟机只需要上网下载软件包、更新系统
  • 不需要从外部SSH连接虚拟机
  • 宿主机和虚拟机之间偶尔传文件

配置方法:虚拟机设置 → 网络 → 网卡1 → 连接方式选「NAT」,默认就能上网。不需要额外配置。

3.4.2 桥接模式

桥接模式下,虚拟机直接连到你的局域网,跟宿主机平起平坐。它有自己的IP地址(比如192.168.1.xxx),局域网里其他设备可以直接访问它。

适用场景:

  • 你需要从Windows用SSH连到虚拟机
  • 开发板需要通过NFS或TFTP跟虚拟机通信
  • 你想在虚拟机里搭建服务器,让局域网其他电脑访问

我曾经踩过的坑:在公司用桥接模式,虚拟机死活拿不到IP。后来发现是公司网络有MAC地址过滤,虚拟机网卡的MAC是随机的。解决办法:在虚拟机设置里,把MAC地址改成「固定」,然后找网管把MAC加到白名单里。

配置方法:

  1. 虚拟机设置 → 网络 → 网卡1 → 连接方式选「桥接网卡」
  2. 界面名称:选你宿主机正在用的网卡(有线选以太网,无线选Wi-Fi)
  3. 启动虚拟机,用 ip addr 查看是否获取到IP

3.4.3 双网卡方案(推荐)

我个人在实际开发中,喜欢给虚拟机配两张网卡:

网卡 模式 用途
网卡1 NAT 虚拟机上网、apt下载
网卡2 桥接 SSH连接、与开发板通信

这样既不影响上网,又能跟局域网设备互通。配置也很简单:在虚拟机设置里添加两个网卡,分别设置模式即可。

3.5 验证网络连通性

装好系统、配好网络后,做几个简单测试:

# 测试NAT网卡能否上网
ping -c 4 8.8.8.8

# 测试DNS解析
ping -c 4 www.baidu.com

# 查看IP地址
ip addr show

# 测试桥接网卡(从Windows ping虚拟机IP)
# 在Windows cmd里执行:
ping 192.168.1.xxx

如果都能通,恭喜你,虚拟机环境搭建成功。

小技巧:如果ping不通外网,先检查宿主机能不能上网。如果宿主机能上但虚拟机不能,多半是DNS问题。编辑 /etc/resolv.conf,加上 nameserver 8.8.8.8 试试。

3.6 本章小结

这一章我们干了三件事:装了虚拟机软件、装了Ubuntu系统、配了网络。这三步是嵌入式Linux开发的基础设施,后面所有实验都跑在这个环境上。

记住几个关键点:

  • VirtualBox + 扩展包,一个都不能少
  • Ubuntu Desktop 适合新手,Server版留给老手
  • NAT上网,桥接连板子,双网卡最省心