第 02 天:虚拟化与 Linux 设置(重点:VirtualBox 实践)
推荐超级课程:
- AWS云服务快速入门实战
- 本地离线DeepSeek AI方案部署实战教程【完全版】
- Docker快速入门到精通
- Kubernetes入门到大师通关课
目录
- 学习目标
- 为什么要学习虚拟化?
- 为什么它对您(DevOps/SRE/云工程师)很重要
- 什么是虚拟化?
- 关键组件及其工作原理
- 优势(面试官特别爱问的知识点哦!)
- 缺点
- Hypervisor:虚拟化的引擎
- 类型 1 与类型 2:主要区别
- 2025 年的新兴趋势
- 概述
- **1) Unikernel**:微小、专用用途的执行单元
- 它们是什么。
- 为什么它们在 2025 年具有吸引力。
- Unikernel 最适合在哪里。
- 限制
- 实用的混合方法(在 2025 年很常见)
- **2) Hypervisor 中的 GPU 和 ARM 支持:针对 AI 工作负载进行优化**
- 背景
- 应用方向
- 为什么这对 AI 很重要
- 注意事项和实际问题
- **3) 开源兴起和容器-Hypervisor 混合(KVM、Firecracker、Kata、gVisor)**
- 现状。
- 为什么 KVM + 开源正在获得发展势头
- 容器-Hypervisor 混合是什么
- 为什么容器-Hypervisor 混合现在很流行
- 三种趋势如何相互作用(实际融合)
- 采用建议(针对架构师/工程师)
- 挑战和风险
- 快速浏览:Linux 启动过程
- 详细分步解释
- 在 VirtualBox 中安装您的第一个 VM
- 先决条件
- 步骤 1:启动 VirtualBox 并创建 VM
- 步骤 2:配置 VM 设置
- 步骤 3:在 VM 中安装 Ubuntu
- 步骤 4:在您的 VM 中进行首次操作
- 熟悉您的 VM:网络、快照等
- 检查网络连接
- 创建和使用快照
- 探索
- 动手练习与实验
- 第 1 部分:VM 创建和首次启动
- 第 2 部分:网络检查和修复
- 第 3 部分:快照练习
- 第 4 部分:简单的配置调整
- 第 5 部分:快速挑战 - 启动观察
- 第 6 部分:多 VM 网络(桥接模式)
- 问题答案
- 关键术语词汇表
- 故障排除
- 面试问题示例
- 面试答案
- 资源
学习目标
在第 2 天结束时,您将:
- 理解基本的虚拟化概念和虚拟机监控程序(Hypervisor)类型
- 在 VirtualBox 中一步步安装和配置一个 Linux 虚拟机 (VM)
- 熟悉您的 VM:检查网络连接、创建快照和调整设置
- 快速了解 Linux 启动过程
- 对简单的 VM 问题进行故障排除
为什么要学习虚拟化?
虚拟化允许您在真实的计算机内部创建一个“迷你计算机”(VM)——这对于安全地尝试 Linux 而不影响您的主要设置来说是完美的解决方案。
为什么它对您(DevOps/SRE/云工程师)很重要
-
DevOps: 在将脚本部署到真实服务器之前,在隔离的 VM 中进行测试。
-
SRE: 使用VM快照来“撤销”错误,按照时间线进行故障机器恢复。
-
云工程师: 本地 VM 可以模仿云实例(例如 AWS EC2),来方便的进行模拟环境练习。
-
方便免费 VirtualBox 是免费的,可以在任何操作系统上运行——它是您的便携式 Linux 实验室哦。
大多数云服务器都是 VM;掌握 VirtualBox 就像在编写代码之前要学会英文字母表一样重要而又基础。
什么是虚拟化?
虚拟化是一种技术,它在一台硬件上创建物理资源的虚拟版本(如服务器、存储或网络)。它抽象了底层硬件,允许多个被称为虚拟机 (VM) 的隔离环境同时运行而互不干扰。
关键组件及其工作原理
-
主机 (Host) vs. 客户机 (Guest): 主机是您的物理机器(例如您的笔记本电脑)。客户机是运行在主机上的 VM(例如一个 Linux 服务器 VM)。
-
抽象层: Hypervisor(稍后会详细介绍)为客户机模拟硬件,分配 CPU、RAM、磁盘和网络切片。
-
虚拟化类型:
-
服务器虚拟化: 一台服务器上运行多个操作系统(例如,运行 Ubuntu 和 Windows VM)。
-
桌面虚拟化: 远程访问 VM(例如,用于安全桌面的 VDI)。
-
网络/存储虚拟化: 跨设备汇集资源。
-
优势(面试官特别爱问的知识点哦!)
-
效率: 一台服务器运行 10 多个 VM,将硬件成本降低 70-80%。
-
隔离: 一个 VM 中的崩溃不会影响其他 VM——这对于 SRE 可靠性至关重要。
-
可扩展性: 按需启动 VM(例如,AWS 中的自动扩缩)。
-
测试/DevOps CI: 轻松构筑部署可重现的环境;使用快照进行“假设”场景分析。
-
安全性: 沙盒环境进行恶意软件分析;模拟多租户云环境等。
在面试中,面试官通常询问将此与实际运用联系起来的话题,如:“虚拟化使得 Kubernetes Pod 能够在共享节点上隔离运行,减少了相对于裸机的开销。”
缺点
-
开销:由于模拟导致 5-15% 的性能损失。
-
复杂性:管理 Hypervisor 增加了一层(但 Kubernetes 等工具对其进行了抽象)。
它是欺骗操作系统使其认为自己运行在真实硬件上的软件(Hypervisor),因此您可以在 Windows 上运行 Linux(反之亦然)。
- Hypervisor: “VM 的老板。”
- 类型 1: 直接在硬件上运行(服务器,例如 VMware ESXi)。
- 类型 2: 在您的操作系统上运行(笔记本电脑上的,例如 VirtualBox)。

Hypervisor:虚拟化的引擎
Hypervisor(或虚拟机监视器,VMM)是创建、运行和管理 VM 的软件/固件。它是分配资源和执行隔离的“大脑”。截至 2025 年,Hypervisor 为 95% 以上的云工作负载提供支持。
类型 1 与类型 2:主要区别
Hypervisor 根据其运行位置分为两大阵营——面试官经常要求您比较它们。
| 方面 | 类型 1(裸机/原生) | 类型 2(托管) |
|---|---|---|
| 运行于 | 直接在硬件上(无主机操作系统)。 | 在主机操作系统之上(例如 Windows)。 |
| 性能 | 接近原生(1-5% 开销)——适用于生产服务器。 | 开销较高(5-20%)——适用于开发/测试。 |
| 安全性/隔离 | 最强;故障很少影响硬件。 | 依赖主机操作系统;可能出现单点故障。 |
| 使用案例 | 企业数据中心、云(例如 AWS Nitro)。 | 用于练习的电脑上(例如 VirtualBox 用于本地实验)。 |
| 示例 (2025) | VMware ESXi(具有 AI 优化的 vSphere 9.0)、Microsoft Hyper-V(集成在 Azure 中)、KVM(Linux 内核模块,用于 OpenStack)、Citrix XenServer(现为 Citrix Hypervisor 8.3)。 | Oracle VirtualBox(具有 Wayland 支持的 7.0)、VMware Workstation 17(专业版用于团队)、Parallels Desktop 20(专注于 Apple Silicon)。 |
| 优点 | 更好的可扩展性、高负载效率(例如 1000+ 个 VM/节点)。 | 设置更容易,可在不同操作系统之间移植。 |
| 缺点 | 安装更困难(专用硬件);与特定硬件供应商挂钩。 | 速度较慢;主机操作系统漏洞会暴露 VM。 |
面试技巧: “对于大规模的生产 SRE,我会选择像 KVM 这样的类型 1 以获得成本/性能;对于本地开发,选择类型 2 VirtualBox 以进行快速启动。”的表述会给人留下深刻印象的哦。
2025 年的新兴趋势
2025 年的新兴趋势:Unikernel、GPU/ARM Hypervisor 和开源混合
概述
在 2025 年,基础设施格局受到两大力量的塑造:
-
更紧密的专业化:工作负载(微服务、边缘功能、无服务器)将 OS/VM/运行时设计推向更小、更快、更安全的执行环境(unikernel、微型 VM)。
-
异构计算和 AI 需求:AI/ML 工作负载需要加速(GPU、DPU、专用 AI 芯片),并且通常在云规模上运行在基于 ARM 的平台上,这迫使 Hypervisor 供应商和开源堆栈添加更丰富的 GPU/ARM 支持和 GPU 共享模型。
总而言之,这些力量导致“VM 的外观”更加多样化——从用于无服务器的小型 unikernel 镜像或 Firecracker 微型 VM,到由 vSphere/VMware 和基于 KVM 的云等平台的带有 vGPU 的完整 VM。
1) Unikernel:微小、专用用途的执行单元
它们是什么。
Unikernel 是一个单用途二进制文件,它结合了应用程序代码和仅需要的内核/库组件,生成非常小的、专用的 VM,这些 VM 通常启动速度快且攻击面小。MirageOS 是一个著名的项目(基于 OCaml),它为网络服务构建 Unikernel。
为什么它们在 2025 年具有吸引力。
-
占用空间和启动时间。极其紧凑的镜像和接近即时的启动时间使它们非常适合短暂的微服务、对冷启动敏感的无服务器功能和边缘设备。(2025 年的研究和调查显示企业更强调启动效率的提升。)
-
安全性。消除不必要的子系统可减少攻击面(没有 shell,系统调用有限)。MirageOS 和当代调查强调类型安全性和更小的代码库作为安全优势。
-
确定性资源使用。因为没有带后台任务的多用途操作系统,资源消耗更容易限定——这在边缘和实时工作负载中很有用。
Unikernel 最适合在哪里。
-
高度特定的网络服务(DNS 解析器、小型代理、身份验证验证器)。
-
边缘和受限环境,其中最小内存/启动延迟很重要。
-
可以投资于构建/测试 Unikernel 的工具的公司(语言支持和 lib 可移植性很重要)。
限制
-
生态系统和工具成熟度。容器和 Linux 拥有庞大的生态系统(打包、可观察性、调试)。Unikernel 仍然存在工具、调试和库移植方面的差距。
-
兼容性和开发速度。重写或调整应用程序以适应 Unikernel 友好的运行时并非易事。
-
操作复杂性。镜像构建链、调试和可观察性需要重新设计 CI/CD 和操作实践。
实用的混合方法(在 2025 年很常见)
许多组织选择性地采用 Unikernel:对于边缘的性能/安全关键微服务,同时将主流应用程序堆栈保留在容器中。行业的趋势是选择性采用 Unikernel,而不是完全替换。
2) Hypervisor 中的 GPU 和 ARM 支持:针对 AI 工作负载进行优化
背景
AI 工作负载正在推动 Hypervisor 的发展。两个重要趋势是:
- (a)更好的 GPU 集成(vGPU、直通、资源预留以及多租户 AI 的编排)
- (b)更广泛的 ARM 应用(使用 Arm/Graviton 系列的服务器和云实例)。
应用方向
-
企业 Hypervisor 中的 vGPU 和 GPU 编排。VMware 和相关堆栈现在提供用于预留 GPU 插槽、用于计算工作负载的 vGPU 支持以及在面向 AI 的版本中进行更深集成等功能。VMware 的 Private AI/Foundation 版本和 vSphere 更新包括 NVIDIA vGPU 和面向 AI 的功能。这些有助于确保 GPU 对延迟敏感模型的可用性,并实现 GPU 资源的多租户共享。
-
GPU 虚拟化模型。有几种模式:完整的 PCIe 直通(将整个 GPU 专用于一个 VM)、供应商 vGPU(时间/内存切片虚拟化)以及新兴的机架规模的分解式编排。NVIDIA 的 vGPU 和 NVIDIA AI Enterprise版仍然是在虚拟化环境中部署 GPU 的关键参考。
-
ARM 和异构服务器。公共云加速了 ARM (Graviton) 的应用;内部部署 Hypervisor 和实验性 arm 端口(例如 ESXi-ARM flings)表明 ARM 在私有/边缘部署中具有发展势头。基于 KVM 的云(以及云原生编排)越来越多地考虑 ARM-first 实例类型和工具。
为什么这对 AI 很重要
-
更低的成本/更好的电源效率。基于 ARM 的服务器 (Graviton) 通常为某些工作负载提供更好的性能/功耗比;异构设置允许操作员将部分工作负载放置在不同的加速器类型上。
-
操作灵活性。vGPU 和 GPU 编排允许多个 AI 团队共享昂贵的 GPU,在保持隔离的同时提高了利用率。VMware 和其他 Hypervisor 供应商正在扩展功能集以满足企业 AI 需求。
注意事项和实际问题
-
性能均等性。某些 vGPU 或切片模式可能无法与裸机性能相匹配(驱动程序和调度程序行为很重要)。对于大型模型训练,完整的直通仍然提供最佳的原始性能。文档和兼容性矩阵(NVIDIA、VMware)对于生产部署选择至关重要。
-
复杂的编排。管理混合集群(x86、ARM、GPU)会增加调度复杂性和工具需求(节点标记、实例类型、亲和性规则)。
3) 开源兴起和容器-Hypervisor 混合(KVM、Firecracker、Kata、gVisor)
现状。
到 2025 年,KVM 仍然是许多公共云和虚拟化平台底层的主导开源 Hypervisor;大型云提供商和开源项目继续投资于基于 KVM 的工具和平台(OpenShift Virtualization 是 VM+容器集成的著名企业级示例)。
为什么 KVM + 开源正在获得发展势头
-
云原生集成。KVM 很好地集成到基于 Linux 的云堆栈和容器生态系统中;OpenShift Virtualization 等项目将 VM 引入 Kubernetes 控制平面,因此团队可以从单个平台管理 VM 和容器。OpenShift Virtualization 的采用指标表明强劲增长。
-
社区和生态系统。KVM 具有广泛的供应商、发行版和云支持;这使得云构建者更容易在开放虚拟化层上实现标准化。
容器-Hypervisor 混合是什么
-
微型 VM 和微型 Hypervisor (Firecracker):专为无服务器/快速启动功能设计的小型类 VM 隔离单元。Firecracker 最初由 AWS 为 Lambda 和 Fargate 开发,是其原型:微型 VM 提供了比容器更强的隔离,同时保持了低开销和快速启动时间。
-
Kata Containers / gVisor:提供了不同方面的权衡:Kata 使用轻量级 VM 来运行容器(更强的隔离,接近 VM 的语义);gVisor 实现了用户空间内核用于容器隔离,侧重于与现有容器工作流的兼容性。
为什么容器-Hypervisor 混合现在很流行
-
安全和多租户。微型 VM 和 VM 支持的容器为不受信任的工作负载(多租户无服务器、FaaS、托管运行时)提供了更强的隔离。
-
性能权衡。Firecracker 的微型 VM 设计提供了可接受的冷启动性能,同时具有比普通容器更好的隔离,使其对需要多租户安全性的无服务器平台和边缘计算具有吸引力。
三种趋势如何相互作用(实际融合)
-
Unikernel + 微型 VM:Unikernel 可以打包为最小 VM 镜像(或微型 VM),以获得 Unikernel 的微小二进制/启动优势以及 Firecracker 等微型 VM 的隔离/管理优势。这对于安全边缘功能来说是一个有吸引力的技术堆栈:Unikernel 二进制文件 + 微型 VM 运行时。(研究和社区实验表明这是一种可用性极高的逻辑组合。)
-
混合环境中的 GPU/ARM:很多企业在 KVM 或 VMware 上运行一些具有 vGPU 支持的工作负载,用于繁重的 AI 训练,同时使用 Firecracker 或 Unikernel 进行低延迟推理或边缘功能。编排层(Kubernetes/OpenShift)将越来越需要在调度时考虑设备拓扑(GPU、DPU、ARM 与 x86)。
-
开源生态系统支持实验:KVM + Firecracker + Kata 生态系统允许开发人员选择他们需要的隔离/性能配置文件,并且像 OpenShift 这样的平台使得在统一控制平面中管理 VM 和容器成为可能。
采用建议(针对架构师/工程师)
- 何时使用 Unikernel
将它们用于启动时间、小内存和最小化攻击面是决定性因素的小型、关键网络/边缘功能。
使用 MirageOS(或其他 Unikernel 工具链)针对目标服务进行原型设计,而不是作为全面的容器替代品。
-
何时选择 Firecracker / 微型 VM / Kata
为无服务器或多租户功能托管选择 Firecracker,其中隔离很重要,但您仍然需要高密度和快速启动。Firecracker 在无服务器环境(AWS)中经过实战考验。 -
当您需要对容器工作负载进行完整的 VM 级隔离,并兼容标准容器工具(但具有 VM 安全特性)时,请考虑 Kata。
-
何时需要完整的 Hypervisor 功能(vSphere / KVM + vGPU)
对于需要可预测性能或供应商认证堆栈(NVIDIA vGPU)的繁重的、受 GPU 限制的 AI 训练或生产推理,具有 vGPU 和企业支持的完整 Hypervisor 可能是正确的选择。检查供应商兼容性矩阵和 vGPU 文档。
挑战和风险
-
Unikernel 的工具和调试。预计会持续一段时间的磨合适配:现成的库更少、独特的调试跟踪以及定制的 CI。研究和社区进展正在弥补这些问题,但尚未完全消除。
-
GPU 虚拟化复杂性。vGPU 行为、驱动程序和性能的差异可能会让您得到意外的结果,因此务必:始终使用具有工作负载代表性的基准进行验证,并查阅供应商兼容性矩阵。
-
可移植性和碎片化。更多运行时类型(Unikernel、微型 VM、VM、容器)意味着更多的构建/测试排列和潜在的碎片化管理,除非平台提供强大的抽象。
快速浏览:Linux 启动过程
当您的 VM 启动时,它会分步骤“醒来”。
Linux 启动是一个精心编排的序列:将硬件转变为可用的操作系统。
这也是面试的重点——可能会问“请带我走一遍启动流程”或“调试阶段某点的停滞”
详细分步解释
-
上电自检 (POST) 和固件 (BIOS/UEFI):
- 硬件通电;固件(BIOS 传统或 UEFI 现代)测试组件(CPU、RAM、磁盘)。在 VM 中,Hypervisor 模拟此过程(约 1-2 秒)。
- 定位启动设备(例如 VM 磁盘中的 /dev/sda)。UEFI 使用 GPT 分区;BIOS 使用 MBR。
-
引导加载程序阶段 (GRUB2):
- GRUB (GNU GRand Unified Bootloader) 从启动扇区加载。扫描
/boot/grub/grub.cfg查找内核(vmlinuz-*)。 - 显示菜单(按住 Shift);用户选择条目。将参数(例如
root=/dev/sda1)传递给内核。 - 如果双启动,则链式启动其他操作系统。时间:<5 秒。
- GRUB (GNU GRand Unified Bootloader) 从启动扇区加载。扫描
-
内核初始化:
- 内核 (
bzImage) 解压缩到 RAM 中。挂载initramfs(带有早期驱动程序的压缩文件系统)。 - 探测硬件(通过像
virtio这样的 VM 模块),设置内存(分页),挂载真正的根文件系统 (/)。 - 启动 PID 1 (
init)。日志记录到dmesg。时间:5-20 秒。
- 内核 (
-
Init 系统 (systemd):
- systemd 读取
/etc/fstab进行挂载;解析/lib/systemd/system中的单元。 - 达到默认目标(服务器为
multi-user.target;桌面为graphical.target)。 - 并行启动服务(例如 NetworkManager、sshd)。时间:10-60 秒。
- systemd 读取
-
用户空间与登录:
getty在 tty/SSH 上生成;PAM 验证用户身份。- Shell (bash) 加载
~/.profile;显示提示符。GUI:显示管理器 (gdm) 启动 X11/Wayland。
总时间: SSD 上 30-90 秒;HDD 上较慢。在 2025 年,dracut 优化 initramfs 以加快嵌入式启动。
VM 细微差别: Hypervisor 提供虚拟 BIOS (SeaBIOS) 或 UEFI (OVMF);启动速度更快,没有实际硬件检查。
调试技巧: journalctl -b (systemd 日志)、dmesg (内核)、systemd-analyze blame (服务计时)——面试中关于“启动缓慢原因?”类的问题的回答的重点。
启动后可以运行 systemd-analyze 查看计时指标分析!
在 VirtualBox 中安装您的第一个 VM
让我们构建一个 Ubuntu VM——我们将使用 Ubuntu 25.04 (Plucky Puffin),用户名为 “linuxuser01”。
先决条件
- 下载:从 virtualbox.org 下载 VirtualBox(安装 + 扩展包)。
- ISO:访问 https://ubuntu.com/download/desktop 并下载 Ubuntu 25.04 Desktop(x86_64 的 5.8 GB ISO;至少需要 4 GB RAM,25 GB 磁盘——相应调整 VM)。
步骤 1:启动 VirtualBox 并创建 VM
- 打开 VirtualBox → 点击“新建”。
- 名称:“MyUbuntuLab” | 文件夹:默认 | ISO 镜像:选择您的 Ubuntu 25.04 ISO | 类型:Linux | 版本:Ubuntu (64-bit) → 下一步。
- 硬件:基础内存:4096 MB(4GB 以匹配先决条件)→ 下一步。
- 处理器:2 个 CPU → 下一步。
- 硬盘:创建新的 → VDI → 动态分配 → 30 GB(高于最小值)→ 创建。
步骤 2:配置 VM 设置
- 选择您的 VM → 设置。
- 系统: 主板:启用 EFI(现代启动);处理器:2 个 CPU。
- 显示: 屏幕:128 MB 显存;启用 3D 加速(更流畅的 GUI)。
- 存储: 在控制器下:IDE → 空 → 光驱图标 → 选择您的 Ubuntu 25.04 ISO。
- 网络: 适配器 1:启用 → 连接方式:NAT(方便上网)。
- USB: 启用 USB 控制器。
- 确定 → 启动 VM。
步骤 3:在 VM 中安装 Ubuntu
- VM 从 ISO 启动 → “试用或安装 Ubuntu” → 安装。
- 键盘:English → 继续。
- 更新:正常 → 继续。
- 类型:抹掉磁盘并安装 → 继续(仅 VM 磁盘!)。
- 位置:您所在的地区 → 继续。
- 身份:名称 “linuxuser01”,计算机 “lab-vm”,用户名 “linuxuser01”,密码(现在简单一点)→ 继续。
- 等待约 10-15 分钟进行安装 → 重启(出现提示时移除 ISO:设备 → 光驱 → 移除)。
成功! 以 “linuxuser01” 身份登录桌面。
步骤 4:在您的 VM 中进行首次操作
- 打开终端 (Ctrl+Alt+T)。
- 更新:
sudo apt update && sudo apt upgrade -y。 - 安装基础工具:
sudo apt install curl htop -y。 - 重启:
sudo reboot——观察启动流程。
专业提示: 安装增强功能 (Guest Additions) 以实现剪贴板共享:设备 → 插入增强功能 CD → 在终端中运行:
sudo sh ./VBoxLinuxAdditions.run。
熟悉您的 VM:网络、快照等
现在它正在运行,让我们进行实验操作。
检查网络连接
- 在 VM 终端中:
ping google.com(测试互联网——应该有回复)。 - 如果失败:VM 设置 → 网络 → 确保 NAT 已启用 → 重启适配器(在网络菜单中右键单击)。
- 测试:
curl ifconfig.me(显示 VM 通过主机的公共 IP)。
问题: 为什么选择 NAT?(将 VM 隐藏在您的 IP 后面——安全且简单。)
创建和使用快照
- VM 正在运行?→ 机器 → 创建快照 → 名称:“Fresh Ubuntu” → 创建。
- 进行更改:创建文件
touch ~/experiment.txt→ls ~(查看)。 - 再创建一个快照:“With File” → 确定。
- “糟糕!” → 快照面板 → 右键单击 “Fresh Ubuntu” → 恢复。
- 重启/刷新——文件消失了!
试试撤销按钮——SRE 用它来进行部署的“前/后对照”。
探索
- 调整窗口大小: 视图 → 自动调整客机显示(全屏)。
- 共享文件夹: 设置 → 共享文件夹 → 添加主机文件夹 → 在 VM 中访问:
sudo mount -t vboxsf shared /mnt/shared。 - 启动窥视: 重启 → 按住 Shift 进入 GRUB 菜单 → 选择高级 → 恢复(安全模式)。
动手练习与实验
第 1 部分:VM 创建和首次启动
- 遵循上述步骤 1-3——安装 Ubuntu 25.04 并以
linuxuser01身份登录。 - 练习: 运行
neofetch(如果需要,安装:sudo apt install neofetch)——截图您的系统信息。 - 问题: 显示的内核版本是多少?(与第 1 天的
uname -r进行比较。)
第 2 部分:网络检查和修复
- Ping 测试:
ping 8.8.8.8(IP) 和ping google.com(DNS)。 - 练习: 如果 DNS 失败,编辑
/etc/resolv.conf(添加nameserver 8.8.8.8)→ 再次测试。 - 问题: VM 网络与您的主机有何不同?
第 3 部分:快照练习
- 创建“基线”快照。
- 练习: 安装一个有趣的工具(
sudo apt install cowsay -y; cowsay "Hello VM!")→ 创建“With Cow”快照。 - 恢复到基线——
cowsay消失了吗?重新安装以确认。 - 问题: 想象一个错误的配置更改——体验下快照是如何拯救您的错误的?
第 4 部分:简单的配置调整
- 练习: 更改主机名:
sudo hostnamectl set-hostname my-lab-server→ 重启 →hostname确认。 - 添加到快照链:“Renamed Host”。
- 问题: 为什么要在 VM 中调整主机名(例如,用于多 VM 测试)?
第 5 部分:快速挑战 - 启动观察
- 重启 VM;计时启动时间(登录后
time sleep 1以获得乐趣)。 - 练习: 运行
journalctl -b -p err(启动错误?通常没有!)。 - 问题: 哪个服务最后启动(提示:
systemd-analyze blame)?
第 6 部分:多 VM 网络(桥接模式)
- 创建第二个 VM: 对第二个 Ubuntu VM(“VM2-Lab”)重复第 1 部分的步骤。
- 切换到桥接: 对于两个 VM:设置 → 网络 → 适配器 1 → 连接方式:桥接适配器 → 名称:您的 WiFi/以太网接口(例如
en0)。 - 启动两者: 启动 VM1 和 VM2——记下它们的 IP(
ip addr show或ifconfig)。 - 测试访问: 从 VM1:
ping <VM2-IP>(应该有回复)。从主机终端:ping <VM1-IP>(桥接会暴露给网络)。 - 练习: 安装 netcat(
sudo apt install netcat -y);在 VM1 中:nc -l 1234;在 VM2 中:nc <VM1-IP> 1234→ 输入消息(传输!)。 - 问题: 为什么多 VM 应该使用桥接而不是 NAT?(直接通信,就像局域网聚会。)
问题答案
- 首次启动: 内核版本如 6.14——匹配 Ubuntu 25.04。
- 网络: VM 使用主机的连接;DNS 通过
resolv.conf。 - 快照: 即时回滚——不会丢失数据。
- 调整: 主机名可避免团队/集群中的混淆。
- 启动: 登录管理器最后启动;
blame显示计时。 - 多 VM: 桥接提供真实 IP 以进行对等测试;NAT 隔离(无法直接进行 VM-VM ping)。
关键术语词汇表
- Hypervisor: VM 运行程序(VirtualBox = 类型 2)。
- VM: 您的虚拟 Linux 盒子。
- 快照 (Snapshot): 保存/恢复点。
- NAT: 简易网络模式。
- GRUB: 启动选择器。
- systemd: 服务管理器。
故障排除
- VM 黑屏: 增加显存(设置 → 显示)。
- 无互联网: NAT 是否开启;主机是否在线?重启 VM。
- GUI 缓慢: 启用 3D 加速;对于仅 CLI,使用 Server ISO。
- 快照错误: VM 关闭;主机磁盘空间是否充足。
- 安装卡住: 检查 ISO 下载(如果损坏,重新下载)。
- 桥接无 Ping: 确保适配器选择正确;防火墙关闭(
sudo ufw disable)。
面试问题示例
- VirtualBox 是什么,为什么要用它学习?
- 分步说明:您如何创建一个 VM?
- 为什么在虚拟化中使用快照?
- 在 VM 中进行基本网络检查?
- 快速启动概述?
面试答案
- VirtualBox: 免费的 Type 2 Hypervisor——易于进行本地 VM 测试。
- 创建 VM: 新建 → ISO → 内存/磁盘 → 设置(网络/存储)→ 安装。
- 快照: 安全地回滚更改。
- 网络: Ping IP/DNS;NAT 用于快速连接。
- 启动: BIOS → GRUB → 内核 → 服务 → 登录。
资源
- VirtualBox.org
- ubuntu.com/download/desktop (Ubuntu 25.04)。
