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

简介: 教程来源 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/

相关文章
|
1天前
|
Linux KVM 虚拟化
虚拟机使用教程大全(二)
教程来源 https://oplhc.cn/ 虚拟机网络模式深度解析:NAT(共享上网)、桥接(独立局域网身份)、仅主机(宿主隔离通信)、内部网络(纯虚拟机互通)及VMware自定义模式,涵盖原理、配置、端口转发与高级应用,助你精准构建安全高效实验环境。
|
1天前
|
Ubuntu Linux KVM
虚拟机使用教程大全(一)
教程来源 https://tmywi.cn/ 虚拟机技术已成IT从业者必备技能。本文聚焦“使用”而非搭建,涵盖资源调优、网络配置、快照备份、性能监控与故障排查等30+实用章节,兼容VMware/VirtualBox/KVM,含100+命令示例与实战技巧。
|
传感器 监控
基于STM32的智能交通灯控制系统设计与实现
基于STM32的智能交通灯控制系统设计与实现
1755 0
|
1天前
|
安全 Linux 调度
《掌握图形应用容器化的核心:OpenClaw实战深度解析》
本文针对Docker部署OpenClaw时出现的无日志显示空白、进程异常终止等典型问题,直击容器化通用范式与图形应用硬件原生依赖的本质矛盾。文章跳出传统镜像调整的误区,穿透容器隔离层深入宿主系统与图形子系统的交互逻辑,从驱动版本匹配、进程调度优先级、音频图形耦合、文件系统权限等多个维度拆解问题根源。文中详细阐述了从多源日志排查到镜像构建、参数调优的完整实践路径,其底层方法论不仅能彻底解决OpenClaw的容器化运行问题,也为所有实时图形应用的稳定容器化部署提供了可复制的参考框架。
|
1天前
|
数据采集 自然语言处理 API
反向海淘实战:Pandabuy、ACbuy、Cssbuy、Superbuy、CNFans 代购集运系统搭建真实体验
近年反向海淘火爆,Pandabuy等平台成海外用户采购中国货主流渠道。本文基于实操经验,从模式拆解、搭建流程、核心难点、实测对比四维度,分享如何用taocarts快速(7天)搭建合规、稳定、全链路代购集运系统,助创业者低成本入局。
132 1
|
1天前
|
机器学习/深度学习 人工智能 编解码
睡岗检测数据集分享(适用于YOLO系列深度学习分类检测任务)
本数据集含2000张真实监控场景图像,专为睡岗检测设计,支持YOLO等目标检测模型。涵盖多光照、多角度、多分辨率条件,标注精准(YOLO格式),含训练/验证集及配置文件,适用于安防、交通、工业等智能监控场景。(239字)
99 1
|
1天前
|
机器学习/深度学习 算法
基于BP神经网络的故障分类MATLAB实现
基于BP神经网络的故障分类MATLAB实现
|
1天前
|
缓存 运维 网络协议
网站测速怎么测?完整检测流程与优化思路分享
网站测速是评估DNS解析、TCP连接、首屏/整站加载等关键指标的全流程诊断,需多节点、多环境多次测试取均值。结合资源明细定位瓶颈,分场景优化前端、服务端或CDN,实现持续性能提升。(239字)
113 0
|
1天前
|
JSON 安全 BI
基于微软官方邮件通道滥用的钓鱼攻击机理与防御研究
2026年新型钓鱼攻击滥用微软合法通知系统,以真实microsoft.com地址发送欺诈邮件,100%通过SPF/DKIM/DMARC认证,绕过传统网关与终端检测。攻击者通过合规租户配置触发“平台代发”,实现高强度信任欺骗。本文揭示其攻击链路,提供检测规则、加固代码与覆盖云租户、邮件网关、企业及用户四层的闭环防御体系。(239字)
274 0
|
30天前
|
人工智能 自然语言处理 监控
5 分钟上手 AgentRun:从注册到第一个 Agent 运行
便宜云服务器AgentRun让Agent上线仅需5分钟!告别繁琐运维。支持快速创建、代码部署、工作流编排等5种模式,内置多模型、提示词模板、工具链、知识库与记忆模块,全生命周期管理开箱即用。
http://www.vxiaotou.com