虚拟机使用教程大全(三)

简介: 教程来源 https://qcycj.cn/ 快照是虚拟机的“时间胶囊”,可保存任意时刻的完整状态(含内存与磁盘),支持快速回滚、实验保护与克隆部署。本文详解VMware、VirtualBox、KVM三大平台快照创建/恢复/删除操作,强调其非备份本质、性能影响及3–5个快照的黄金管理实践。

七. 快照管理:时间旅行者指南

快照是虚拟机最强大的功能之一,它允许你保存虚拟机在某个时刻的完整状态(包括内存内容和磁盘数据),之后随时恢复。合理使用快照可以极大地提高实验效率。

7.1 快照的本质
快照不是增量备份,而是存储差异的数据结构。创建快照后,虚拟机继续写入的数据会被记录到一个新文件中,原始磁盘文件变为只读。因此,快照链越长,性能下降越明显。建议每台虚拟机最多保留 3-5 个快照,完成实验后及时删除(合并)。

7.2 VMware 快照操作
创建快照:右键虚拟机 → 快照 → 拍摄快照 → 输入名称和描述。建议开启“捕获内存”以便恢复时无需重新启动系统。

恢复到快照:快照管理器 → 选择快照 → 转到。

删除快照:快照管理器 → 选择快照 → 删除(删除操作会将数据合并到父磁盘,需要时间)。

从快照克隆:快照管理器 → 克隆 → 链接克隆或完整克隆。

命令行操作(使用 vmrun,VMware Workstation 自带):

"C:\Program Files (x86)\VMware\VMware VIX\vmrun.exe" snapshot "D:\VMs\ubuntu.vmx" snap1
"C:\Program Files (x86)\VMware\VMware VIX\vmrun.exe" revertToSnapshot "D:\VMs\ubuntu.vmx" snap1

7.3 VirtualBox 快照操作
创建快照:点击“拍摄快照”图标(或机器 → 拍摄快照)。

快照管理:点击“快照”选项卡,可右键删除或恢复。

差异备份:VirtualBox 的快照文件独立存储于 Snapshots/ 文件夹,删除快照时会执行合并。

命令行:

VBoxManage snapshot "vm-name" take "snap1"
VBoxManage snapshot "vm-name" restore "snap1"
VBoxManage snapshot "vm-name" delete "snap1"

7.4 KVM 快照(qcow2 原生支持)
创建磁盘快照(不包含内存):

virsh snapshot-create-as --domain ubuntu-vm --name snap1 --description "clean install"

创建包含内存的快照(需要磁盘格式为 qcow2):

virsh snapshot-create-as --domain ubuntu-vm --name snap2 --disk-only --atomic

列出快照:virsh snapshot-list ubuntu-vm
恢复快照:virsh snapshot-revert ubuntu-vm snap1
删除快照:virsh snapshot-delete ubuntu-vm snap1 --metadata(磁盘数据需手动合并?一般使用 --disk-only 时需要小心)

警告:KVM 内存快照在虚拟机负载较高时可能导致故障,建议生产环境使用磁盘快照 + 关闭虚拟机后备份。
7.5 快照最佳实践
黄金快照:完成操作系统安装和基础软件配置后,立刻创建一个快照(例如“初始状态”)。

实验前快照:在进行任何危险操作(如修改内核、安装未知软件)前拍摄快照。

定期清理:每月检查快照列表,删除早已无用的快照以释放磁盘空间。

不要依赖快照作为备份:快照文件与虚拟机磁盘文件紧密耦合,一旦原始磁盘损坏,所有快照都会失效。真正的备份应该导出完整虚拟机。

八. 虚拟机克隆:快速部署的艺术

克隆是从现有虚拟机创建一个副本的过程,常用于批量部署测试环境。
8.1 完整克隆 vs 链接克隆
image.png
VMware 链接克隆:右键虚拟机 → 管理 → 克隆 → 选择“链接克隆”。注意,原始虚拟机不能移动或删除,否则链接克隆失效。

VirtualBox 链接克隆:右键虚拟机 → 复制 → 选择“链接复制”。

8.2 跨平台克隆后的注意事项
克隆后的虚拟机具有与原始虚拟机完全相同的标识信息,可能导致网络冲突、主机名重复等问题。你需要执行以下“个性化”步骤:

Linux 客户机:

# 重新生成 SSH 主机密钥(重要!)
sudo rm /etc/ssh/ssh_host_*
sudo dpkg-reconfigure openssh-server   # Debian/Ubuntu
# 或者 sudo ssh-keygen -A

# 更改主机名
sudo hostnamectl set-hostname new-hostname

# 重新生成 MAC 地址关联的 systemd 网络规则
sudo rm /etc/machine-id
sudo systemd-machine-id-setup

# 清理 DHCP 租约
sudo rm /var/lib/dhcp/dhclient.leases*

Windows 客户机:运行 sysprep(C:\Windows\System32\Sysprep\sysprep.exe),选择“进入系统全新体验(OOBE)”并勾选“通用化”。这会重置 SID 和其他唯一标识符。
8.3 命令行克隆(KVM)

virt-clone --original ubuntu-vm --name ubuntu-vm-clone --file /var/lib/libvirt/images/ubuntu-clone.qcow2

克隆完成后,启动克隆机前务必修改网络配置中的 MAC 地址,否则可能与原机 IP 冲突。

九. 虚拟磁盘管理:扩容、压缩与格式转换

虚拟磁盘使用一段时间后,内部文件删除释放的空间并不会自动缩小磁盘文件,导致宿主机磁盘占用虚高。本节教你专业管理虚拟磁盘。

9.1 增加虚拟磁盘容量
VMware:

关闭虚拟机 → 编辑设置 → 硬盘 → 扩展 → 输入新大小(例如从 40GB 扩大到 80GB)。

注意:此操作仅增加磁盘总容量,分区和文件系统需要在客户机内扩展。

VirtualBox:

VBoxManage modifymedium disk "path/to/disk.vdi" --resize 81920   # 单位 MB

KVM(qcow2):

qemu-img resize /var/lib/libvirt/images/vm.qcow2 +20G   # 增加 20GB

9.2 扩展客户机内部的分区与文件系统
Linux(使用 LVM 示例):

# 查看当前磁盘布局
lsblk
# 假设 /dev/sda 扩容了,未分配空间在 sda 末尾
sudo fdisk /dev/sda   # 创建新分区或扩展已有分区(注意使用正确的起始扇区)
# 对于 LVM:先扩展物理卷,再扩展逻辑卷,最后扩展文件系统
sudo pvresize /dev/sda3
sudo lvextend -l +100%FREE /dev/ubuntu-vg/root
sudo resize2fs /dev/ubuntu-vg/root   # ext4
# xfs 使用 xfs_growfs

Windows 客户机:

打开“磁盘管理”(diskmgmt.msc),右键点击 C 盘 → 扩展卷 → 按向导操作。

9.3 压缩虚拟磁盘文件(回收闲置空间)
VMware:

在虚拟机内部对空闲空间清零:Windows 使用 sdelete -z;Linux 使用 dd if=/dev/zero of=/zero.file bs=1M; rm /zero.file。

然后关闭虚拟机,VMware 菜单“文件” → “清理磁盘”。

VirtualBox:

VBoxManage modifymedium disk "path/to/disk.vdi" --compact

KVM(qcow2):

qemu-img convert -O qcow2 -c disk.qcow2 disk_compacted.qcow2   # -c 启用压缩

9.4 虚拟磁盘格式转换
有时需要将 VDI 转换为 VMDK 以迁移到 VMware:

VBoxManage clonehd source.vdi destination.vmdk --format VMDK

VMware 转 VirtualBox:使用 qemu-img 作为中介。
image.png
来源:
https://fndvx.cn/

相关文章
|
7天前
|
人工智能 自然语言处理 文字识别
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
Qwen3.7-Max是阿里云百炼面向智能体时代推出的新一代旗舰模型,对标GPT-5.5、Claude Opus 4.7等闭源旗舰。该模型支持百万级token上下文窗口,具备顶级推理能力、多模态搜索与视觉理解增强、流式输出低延迟响应等核心优势,覆盖编程、办公、长周期自主执行等复杂场景。同时支持OpenAI接口兼容,便于系统快速迁移。用户可通过Token Plan团队或节省计划等订阅方式灵活调用,适合企业级高要求场景使用。
3434 14
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
|
15天前
|
人工智能 开发工具 iOS开发
Claude Code 新手完全上手指南:安装、国产模型配置与常用命令全解
Claude Code 是一款运行在终端环境中的 AI 编程助手,能够直接在命令行中完成代码生成、项目分析、文件修改、命令执行、Git 管理等开发全流程工作。它最大的特点是**任务驱动、终端原生、轻量高效、多模型兼容**,无需图形界面、不依赖 IDE 插件,能够深度融入开发者日常工作流。
3553 12
|
9天前
|
人工智能 自然语言处理 供应链
|
18天前
|
Shell API 开发工具
Claude Code 快速上手指南(新手友好版)
AI编程工具卷疯啦!Claude Code凭借任务驱动+终端原生的特性,成了开发者的效率搭子。本文从安装、登录、切换国产模型到常用命令,手把手带新手快速上手,全程避坑,30分钟独立用起来。
3668 25
|
11天前
|
人工智能 Linux BI
国内用 Claude Code 终于不用翻墙了:一行命令搞定,自动接 DeepSeek
JeecgBoot AI专题研究 一键脚本:Claude Code + JeecgBoot Skills + DeepSeek 全平台接入 一行命令装好 Claude Code + JeecgBoot Skills + DeepSeek 接入,无需翻墙使用 Claude Code,支持 Wind
2908 7
国内用 Claude Code 终于不用翻墙了:一行命令搞定,自动接 DeepSeek
|
9天前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全+三种模式+记忆体系+实战工作流完整手册
Claude Code 是当前最流行的终端级 AI 编程助手,能够直接在命令行中完成代码生成、项目理解、文件修改、命令执行、错误修复等全流程开发工作。它不依赖图形界面、不占用额外资源,却能深度理解项目结构,自动生成规范代码,大幅提升研发效率。
1399 3
|
1月前
|
人工智能 JSON 供应链
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
LucianaiB分享零成本畅用JVS Claw教程(学生认证享7个月使用权),并开源GeoMind项目——将JVS改造为科研与产业地理情报可视化AI助手,支持飞书文档解析、地理编码与腾讯地图可视化,助力产业关系图谱构建。
23621 15
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
|
16天前
|
存储 Linux iOS开发
【2026最新】MarkText中文版Markdown编辑器使用图解(附安装包)
MarkText是一款免费开源、跨平台的Markdown编辑器,主打所见即所得实时预览,支持Windows/macOS/Linux。内置数学公式、流程图、代码高亮、多主题及PDF/HTML导出,是Typora的轻量免费替代首选。(239字)