拓冰建站拓冰建站
首页 / 资讯中心 / 正文

VMware虚拟机克隆与删除完全指南:链接克隆、完整克隆及残留清理

看过太多人虚拟机用着用着一团糟不是环境硬盘爆满就是模板机被改得没法复用。今天专门把这个高频问题讲透虚拟机到底怎么克隆怎么删干净。这篇只聊VMware Workstation但很多思路放在VirtualBox、Hyper-V上同样成立。不管你是刚入门的开发、做运维的还是天天跑测试环境的老手只要你在和虚拟机打交道这篇都值得仔细看一遍。克隆看起来是“复制一份”但很多人点完“克隆”就翻车——要么新机器起不来要么IP冲突要么网络整个崩掉。删除更是一堆坑有人直接在资源管理器里删文件夹结果VMware里还留着一条僵死的记录还得去翻注册表。这些我都遇到过所以整理成了这篇完整的实操手册。1. 虚拟机克隆先搞清楚你究竟在“克隆”什么1.1 虚拟机的本质是一堆文件的集合先说个最基础的概念很多人复制粘贴了半天其实根本不知道自己在复制什么。一个虚拟机在宿主机上不是一个文件而是一整个目录里面有.vmx配置文件、.vmdk虚拟磁盘文件、.nvram BIOS信息、.vmem内存文件、.vmsd快照元数据等等。其中最关键的是.vmdk它承载了操作系统和所有数据动辄几十个GB。所以克隆这件事本质上不是“复制粘贴选中的文件”而是“生成一套新的虚拟机描述文件一份可用的磁盘副本”。如果只是手动复制整个目录大概率会出问题UUID冲突、MAC地址冲突、快照信息错乱。VMware提供的克隆功能就是把这些底层细节帮你处理干净生成一台“合法”的新虚拟机。这里说个常见的误解有人觉得把虚拟机目录压缩成压缩包再解压到一个新目录就是克隆了。这种做法偶尔能用但一旦原虚拟机有快照或者系统里某些服务绑定了硬件指纹解压出来的新机器大概率起不来或者网络异常。所以克隆要走正规军路线。1.2 完整克隆和链接克隆到底怎么选VMware Workstation里克隆时有两个选项创建完整克隆和创建链接克隆。这是初学者最容易懵的地方。简单说对比维度完整克隆链接克隆磁盘占用新机器独占完整磁盘副本占空间大依赖父虚拟机磁盘只存差异数据省空间独立性完全独立父机器删除或损坏都不影响新机器依赖父虚拟机父机器没了新机器也废创建速度慢要完整复制大文件快几秒就完成适用场景生产环境、长期使用、要分发出去的机器临时测试、批量开实验机、快速验证链接克隆的原理可以这样理解它共享父虚拟机的基础磁盘镜像只记录新机器发生变化的部分。这类似于你用Word打开一个模板文档另存为新文件后主文档还在但新文件里的改动是独立存放的。好处是创建速度快得惊人10秒就能开一台新机坏处是父虚拟机一旦被删或者快照被清理链接克隆就跟着报废。我的建议是日常学习、跑一次性测试用链接克隆省空间够灵活生产交付、长期保留的环境用完整克隆踏实可靠。如果你主要在练手链接克隆能让你一天开出几十台机器。1.3 克隆前的检查清单关闭虚拟机再克隆。虚拟机运行状态下可以克隆但一致性没保障尤其数据库这类应用很容易克隆出一台带脏数据的机器。我个人的习惯是关机后克隆别嫌麻烦。确认静态IP。克隆出来的新机器会完全继承原机器的IP配置。如果你原来设置了静态IP两台机器同时开机必然冲突。最简单的方案克隆前把系统改成DHCP或者干脆记住原IP克隆后手动改掉。准备修改主机名。Linux下的hostname、Windows下的计算机名都会原样复制如果同一批机器都在一个局域网里重名会带来一堆莫名其妙的问题。Windows系统的SID问题。如果你的Windows虚拟机要在域环境里使用克隆后SID相同会导致域加入失败。解决方案是克隆前运行sysprep工具或者克隆后使用工具重新生成SID。确认磁盘空间。完整克隆需要和原虚拟机一样大的磁盘空间提前检查宿主机剩余空间别克隆到一半提示磁盘满那才叫难受。2. 实操VMware Workstation里克隆一台可用的新虚拟机2.1 图形界面克隆全流程最直观的方式就是VMware Workstation图形界面。右键点击目标虚拟机选择“管理”-“克隆”。跟着向导走选择克隆源。你可以选择“当前状态”也就是虚拟机现在的运行状态也可以选择“现有快照”基于某个历史快照来克隆。如果你有一套干净的基线快照从这里克隆最靠谱。选择克隆类型。这里就是上面说的完整克隆和链接克隆的选择。设置新虚拟机名称和保存位置。建议名称里带上用途和环境标识比如ubuntu-dev-01、centos-test-02方便后续管理。点击完成等待进度条走完。图形界面本身没多大可讲重点说几个实际操作中容易踩的坑第一保存路径不要带中文和空格。有些人在“D:\虚拟机\新环境\”下创建克隆结果虚拟机启动时各种路径解析异常折腾半天才发现是中文路径的锅。第二克隆完成后别急着开机先去检查新虚拟机的网络适配器设置因为VMware通常会给新机器重新分配MAC地址但有些特殊配置下会沿用原MAC。第三如果是链接克隆不要之后再去动父虚拟机的位置否则链接关系会断裂。2.2 命令行克隆vmrun的高级玩法如果你要多台批量克隆或者在脚本化运维流程里集成克隆操作图形界面就不够用了。VMware Workstation安装目录下自带一个vmrun工具在Windows上路径一般是C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe克隆命令的格式是vmrun clone 源虚拟机.vmx路径 目标虚拟机.vmx路径 [linked|full]举个例子我要把一台模板机克隆成一台链接克隆的测试机vmrun clone D:\VMs\ubuntu-template\ubuntu-template.vmx D:\VMs\ubuntu-test-01\ubuntu-test-01.vmx linked如果要完整克隆把最后的linked换成full就行vmrun clone D:\VMs\ubuntu-template\ubuntu-template.vmx D:\VMs\ubuntu-test-01\ubuntu-test-01.vmx full命令行批处理的威力在于可以写循环脚本。比如我要一次性创建5台测试机for i in 1 2 3 4 5 do vmrun clone D:\VMs\ubuntu-template\ubuntu-template.vmx D:\VMs\ubuntu-test-0$i\ubuntu-test-0$i.vmx linked done这样一条命令就能批量铺开环境省下的时间非常可观。vmrun还能做启动、关机、截图等操作配合自动化脚本能实现一套完整的虚拟机生命周期管理。2.3 克隆完成后必做的三件事克隆成功只是开始新虚拟机开机前和开机后有几件事必须处理第一修改网络标识。开机前在VMware里编辑新虚拟机设置把网络适配器的高级选项里“生成新的MAC地址”点一下。这能避免MAC地址冲突也避免DHCP服务器把两台机器当成同一台设备。开机后立即修改IP和主机名Linux下修改主机名sudo hostnamectl set-hostname ubuntu-test-01Windows下修改计算机名右键“此电脑”-属性-更改设置-更改然后重启。第二清理系统唯一性标识。Linux下要清理SSH host key否则新机器和旧机器的SSH指纹一样连SSH时会出现警告还可能有中间人攻击风险。做法是删除再重新生成sudo rm -f /etc/ssh/ssh_host_* sudo systemctl restart sshdWindows下如果涉及域环境需要重新生成SID。虽然Workstation在克隆时会提示选择“复制”或“重新创建”但最稳妥的方式还是用sysprep。第三处理可能的软件冲突。如果模板机里装了Docker、Kubernetes这类带唯一标识的服务克隆后建议把相关服务的证书、节点ID清掉再重启。比如Docker的节点ID在/var/lib/docker/里直接删掉相关元数据让它重新初始化能省掉后面排查集群冲突的时间。提示如果你的模板机要长期作为克隆母本建议装完系统和基础软件后做一次全面清理——清日志、清临时文件、清包管理器缓存再打个快照。这样每次克隆出来的机器都干干净净磁盘占用也最小。3. 删除虚拟机不是丢进回收站就完了3.1 在VMware里正确删除虚拟机的两个层次删除虚拟机时VMware会问你两个不同的选项这个选择直接决定删除的彻底程度。第一个选项是“从清单中移除”。这只是在VMware的管理界面中去掉虚拟机记录虚拟机文件还在硬盘上原封不动。相当于你把一个快捷方式从桌面删掉了但源文件还在。如果你暂时不想用这台机器但可能以后还要用选这个。第二个选项是“从磁盘删除”。这个会连虚拟机的所有文件一起删掉包括.vmx、.vmdk、快照文件全部清空。这才是真正意义上的删除。选择这个之前一定确认好这台机器里没有你要保留的数据做了快照也不顶用因为快照文件也会一并删除删完之后没有任何恢复途径。实际操作中我见过不少人直接在Windows资源管理器里把虚拟机目录删掉然后在VMware里还残留着一条红色不可用的记录。这种残留记录会很碍眼处理起来也麻烦。所以正确顺序是先打开VMware Workstation右键虚拟机选择“从磁盘删除”让它自己清理干净。如果VMware提示删除失败多半是虚拟机还在运行或者相关进程还占着文件先把虚拟机彻底关闭再试。3.2 强制删除虚拟机文件夹命令与权限问题实战有一种常见场景你在VMware里删除了虚拟机但目录里的残留文件还在或者你随手删了目录VMware里残留了记录。这时候你需要在文件系统层面把虚拟机目录干掉。Windows下如果删除时提示“你需要来自administrators的权限才能删除”或者文件一直卡在删除中不要硬刚。大多数情况是vmware进程还持有文件句柄先打开任务管理器把vmware.exe、vmware-vmx.exe都结束掉然后再试。如果还是删不掉用这个标准流程打开服务管理器把VMware相关服务停掉特别是VMware Authorization Service。重启电脑。这一步简单粗暴但能释放所有句柄。删除文件时如果还提示权限用管理员身份打开命令行执行rd /s /q D:\VMs\要删除的虚拟机目录Linux下删除虚拟机目录就简单了rm -rf直接搞定rm -rf /vm/要删除的虚拟机目录不过这里多说一句rm -rf是个危险命令我吃过亏。不小心把路径写错或者变量为空时执行了后果非常惨。更安全的做法是先把目录移动到一个临时位置确认没影响之后再删除mv /vm/ubuntu-test-01 /tmp/trash/ # 观察几天确认不需要了再 rm -rf /tmp/trash/ubuntu-test-01这招虽然多了一步但能避免手滑事故。3.3 彻底清理VMware残留注册表与缓存目录虚拟机删了文件清了但你的VMware Workstation主程序里可能还有一些残留信息比如最近打开的虚拟机记录、收藏的列表等。别小看这些残留积累多了会影响VMware的启动速度和菜单整洁度。VMware的配置信息存在Windows注册表里路径大致是HKEY_CURRENT_USER\Software\VMware, Inc.\VMware Workstation如果你对注册表操作不熟不建议手动去改容易把别的配置搞乱。更安全的方式是把要清理的虚拟机记录从VMware最近列表里移除或者直接重置工作区设置。大多数人根本不用动注册表只有那种列表里一直显示红色不可用虚拟机、点删除又提示文件不存在的情况才需要找到注册表项把对应记录清掉。另外VMware还会在以下位置留下缓存文件C:\Users\用户名\AppData\Local\VMwareC:\Users\用户名\AppData\Roaming\VMwareC:\ProgramData\VMware这些目录里有时候会因为异常退出残留下.lck锁文件。如果虚拟机明明关着但启动时报“虚拟机已被占用”多半就是锁文件没清掉。解决方案找到虚拟机目录下带.lck后缀的文件夹或文件删掉它们再启动。这个操作不影响虚拟机数据放心删。一般来说如果虚拟机长时间不用建议把快照一并清理掉。快照文件.vmsn和增量磁盘会占用大量磁盘空间很多人C盘爆红查来查去发现是快照太大了。删除快照的操作在VMware菜单里“虚拟机”-“快照”-“快照管理器”选中旧快照删除即可。删除快照后虚拟机会合并磁盘文件期间磁盘占用会暂时变大这是正常现象。注意删除快照不等于删除虚拟机它只是移除某个恢复节点。如果某个快照是虚拟机运行的关键状态删除后该状态将无法恢复操作前一定要想清楚。4. 高频故障排查克隆和删除时最常翻车的几个现场4.1 “VMware Workstation无法连接到虚拟机”怎么解决这个报错在克隆完新机器后很常见字面意思是VMware客户端无法和虚拟机进程建立连接。先检查VMware相关服务有没有启动。在Windows上按WinR输入services.msc找到以下服务并确保运行状态服务名称用途VMware Authorization Service授权服务管理用户对虚拟机的访问权限VMware DHCP Service为NAT模式虚拟机分配IP地址VMware NAT Service网络地址转换服务实现虚拟机共享宿主机IP上网VMware USB Arbitration ServiceUSB设备接入服务这几个服务如果没有启动右键启动然后设置为自动启动。不少人的问题就是这样解决的。另一个常见原因是虚拟机目录路径有问题。你手动移动过虚拟机文件夹或者克隆出来的虚拟机路径包含特殊字符都可能导致VMware无法正确读取配置文件。解决方案把虚拟机.vmx文件的位置通过“打开虚拟机”的方式重新加载而不是从最近列表点进去。还有如果宿主机开了杀毒软件某些实时防护组件会阻止VMware进程之间的通信也可能导致这个报错。暂时关闭杀毒软件试用是排障路径之一但判断确认后再长期关闭注意安全。4.2 克隆后开机蓝屏或卡在启动界面克隆出来的机器开机蓝屏十个里面有八个是磁盘控制器驱动问题。原机器如果是IDE接口克隆后VMware换成了SCSI/SATA接口系统里没有对应驱动就蓝屏。解决办法在克隆之前把原虚拟机的磁盘类型设定为目标机器要用的类型或者干脆在克隆后编辑新机器设置把磁盘控制器类型改回原机器的类型。两者保持一致就不会蓝屏。和这个报错同源的还有“客户机操作系统已禁用 CPU”错误。这通常是因为虚拟机设置里没有开启虚拟化引擎或者BIOS/固件层面没有启用虚拟化支持。这时候要去BIOS里开启VT-x或AMD-V。不同品牌主板设置路径不同但基本上都在Advanced或Security菜单下找“Intel Virtualization Technology”或“SVM Mode”设置为Enabled。还有键盘鼠标也异常的情况——克隆后开机只有鼠标能动界面卡死。这种多半是VMware Tools没有跟着克隆迁移好把新机器里的VMware Tools卸载重装一遍问题基本能解决。4.3 删除虚拟机时报“正在使用”或文件锁死删除虚拟机时提示“文件正在被另一个进程使用”烦人程度很高。原因基本都是虚拟机进程没完全退出或者有残留的vmware-vmx.exe进程。解决办法按顺序来关闭VMware Workstation主程序包括系统托盘图标。打开任务管理器检查是否有vmware-vmx.exe或vmware.exe进程有则强制结束。如果还有文件删不掉排查一下是不是杀毒软件在扫描这些大文件把虚拟机目录加入杀毒软件的白名单或者排除列表。如果文件卡在删除过程中一直0%可以用工具查看到底是哪个进程占用了文件。Windows下用Process Explorer或者资源监视器Linux下用lsof命令lsof D /vm/要删除的目录找到占用进程后结束它就能继续删了。另外一个容易忽视的点如果你用了OneDrive同步桌面或者文档文件夹虚拟机放在这些同步目录下删除时会因为云同步冲突导致卡住。虚拟机的文件动辄几十GB本身也不适合放在云同步目录里这点要尽早改。4.4 问题速查表问题现象可能原因解决方法无法连接到虚拟机VMware服务未启动启动Authorization/DHCP/NAT服务并设为自动克隆后开机蓝屏磁盘控制器驱动不匹配克隆前后保持磁盘类型一致或改回原类型客户机操作系统已禁用CPUBIOS未开启虚拟化进入BIOS开启VT-x/AMD-V删除文件提示管理员权限文件句柄被占用结束vmware相关进程用管理员命令行rd删除删除文件一直0%杀毒软件扫描或云同步冲突虚拟机目录加入白名单避免放云同步目录虚拟机启动提示被占用残留.lck锁文件删除虚拟机目录下的.lck文件克隆后SSH提示指纹冲突SSH host key重复删除/etc/ssh/ssh_host_*重新生成5. 我的一些习惯和一些想反复强调的体会虚拟机克隆和删除看起来是很基础的操作但能把这两件事做干净后面省下的时间是很可观的。我在实际使用中一直坚持一个习惯维护一个最小化的模板虚拟机里面只装好操作系统、常用工具和必要驱动然后做一次系统清理关机后打个快照。以后所有新环境都从这台模板机克隆要么链接克隆快速验证要么完整克隆做长期环境。删除虚拟机时我也有一套固定动作先在VMware里从磁盘删除再检查宿主机是否有残留目录最后顺手看一眼服务记录和锁文件。这套动作走下来基本不会留下什么脏数据。有几个建议想特别讲一下第一克隆不是备份。真正常用备份的场景应该用VMware的“导出为OVF”功能或者专业备份工具。克隆生成的是同一个模板的多个实例不是灾备手段。第二链接克隆的依赖关系要留心。链接克隆依赖父虚拟机如果父虚拟机被删了所有链接克隆都会无法启动。如果你有一批链接克隆想长期保留不如趁某个时间点统一转成完整克隆一劳永逸。第三虚拟机的磁盘文件会越来越大即使你删除了虚拟机内部的文件磁盘文件本身不会自动缩小。如果在意磁盘空间需要在虚拟机内部做磁盘收缩或者用VMware自带的磁盘工具压缩Linux虚拟机执行vmware-toolbox-cmd disk shrink /Windows虚拟机需要在系统里运行“VMware Tools”控制面板的“收缩磁盘”功能。克隆和删除这两件事看着像是在“复制”和“删除”本质上其实是虚拟机生命周期管理的两端。把这两端管好你的开发环境、测试环境、生产环境之间就能做到快速切换、按需生成、干净回收效率会完全不一样。上面这些就是我在实际操作中踩坑踩出来的经验。如果你在克隆或者删除虚拟机时遇到了其他问题多看看日志文件和VMware的官方文档过程中记录下每一步操作问题基本都能定位到。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门