VMware ESXi检查磁盘错误并修复(VMKFSTOOLS)
ESXi硬盘检测并不复杂。当VMDK虚拟磁盘损坏、虚拟机无法启动时,使用vmkfstools -x check命令可以检查磁盘错误,配合repair选项加以修复;反之在虚拟机内运行chkdsk也能验证文件系统。本文详述命令用法并给出备份建议。
VMDK文件,其完整名称是“虚拟机磁盘”。它是包含有关虚拟机的所有信息的虚拟磁盘,常用于云计算和虚拟计算环境。
在VMware ESXi中,一台虚拟机通常由两个文件构成:虚拟磁盘描述符diskname.vmdk,以及包含实际裸数据的虚拟磁盘扩展文件diskname-flat.vmdk。
VMDK文件的重要性不言而喻。但当您管理大量虚拟机时,一个或多个VMDK文件可能因为意外中止、强制关机、病毒等原因损坏或丢失,虚拟机随之无法正常启动,出现进不去系统的情况。遇到这类问题时,就需要在ESXi中检查磁盘错误,尽早定位故障。
如果您的任何.vmdk文件损坏,您可以使用VMKFSTOOLS命令来执行不同的存储操作,例如检查和修复有故障的VMDK文件。

VMKFSTOOLS是用于管理VMFS卷、存储设备和虚拟磁盘的ESXi Shell命令。您可以使用它来执行许多VMFS卷和虚拟磁盘的操作,例如,在物理分区上创建和管理VMFS数据集,操纵虚拟磁盘文件,检查或修复VMDK文件等。
ESXi使用VMKFSTOOLS检查磁盘错误:
注意:默认情况下禁用SSH。在使用vmkfstools命令之前,请启用SSH并通过SSH以root身份连接到ESXi主机。在Windows操作系统中,您可以使用PuTTY作为SSH客户端,远程执行ESXi shell命令。
要检查虚拟磁盘的完整性,可以使用以下检查磁盘错误命令:请使用-x和check选项(需要替换数据存储和磁盘名称为您自己的):
vmkfstools -x check /vmfs/volumes/my_datastore/my_disk.vmdk
如果未检测到错误,VMKFSTOOLS将返回“磁盘无错误”。如果确实有问题,可以使用下面的命令修复损坏的虚拟磁盘:
vmkfstools -x repair /vmfs/volumes/my_datastore/my_disk.vmdk

在使用VMKFSTOOLS进行更改后,vSphere Client可能不会立即更新。您可以从客户端使用刷新操作。
一些用户有这样的疑问:在虚拟机上运行chkdsk命令检查磁盘错误是否可以,或者这样做是否有意义?
由于虚拟机是通过软件来模拟硬件系统的全部功能,所以任何在物理计算机上能做的事情,在虚拟机上都可以做到。那么在虚拟机的来宾操作系统内部运行chkdsk命令,是否可以达到与在物理机中相同的效果呢?

出于安全原因,有些人不建议这样做,认为chkdsk会尝试检查整个存储区域。实际上,如果您在虚拟机上启动chkdsk,它只会扫描它所在的虚拟磁盘,而不是整个物理驱动器,通常不可能超出虚拟机内分配的虚拟磁盘。
关于chkdsk命令的具体参数,可以参考微软官方的chkdsk命令参考文档。
Chkdsk的主要用途是检测和修复损坏的文件系统,无论它是在物理硬盘上还是在虚拟硬盘上都无关紧要。运行chkdsk有助于文件系统的一致性,并且如果您需要连续备份虚拟机,它尤为重要。
虽然VMKFSTOOLS命令是ESXi常用的检查磁盘错误的手段,但经常会出现VMDK不能被它正常修复的情况,就像物理磁盘问题总不能被chkdsk修复一样。如果您的虚拟机承载着一些非常重要的数据或业务,不要指望出现问题后再来修复它。
当虚拟机出现问题,不能正常修复时,可以考虑打开VMDK文件从中复制必要的内容。但要真正防止此类问题,虚拟机备份是一种简单而有效的手段。通过定期备份ESXi虚拟机,您始终可以在需要时将它们恢复到可用状态。
在这里,我将介绍一个可靠的VMware备份软件——以傲梅企业备份旗舰版为例。它适用于VMware ESXi 6.0及以上版本(也支持ESXi试用版)。您可以轻松地将ESXi主机或vCenter添加到Web控制台,实现虚拟机自动备份和恢复。
如果您的任何虚拟机出现故障,您可以轻松地执行恢复,甚至根据需要将虚拟机还原到另一台主机(以及数据存储、vCenter),并进行虚拟机迁移到另一个数据存储的操作。
您可以选择在Windows或Linux系统上转到下载中心下载并安装此虚拟机备份软件。
◈ 易于使用:集中式Web控制台和直观的用户界面,只要单击即可实现任何操作。

◈ 自动化:创建备份计划以自动执行虚拟机备份,并启用保留策略以自动删除旧备份。

◈ 灵活恢复:当您想要将虚拟机恢复或迁移到另一个位置时,选择您想要的任何备份版本,然后选择“还原到源位置”或“还原到新位置”。
使用“还原到新位置”,您可以执行异地还原以从备份创建一个相同的虚拟机,不用重新安装或配置新虚拟机。

在实际使用中,您的VMDK文件可能会损坏,甚至无法启动虚拟机。因此,您可能想知道如何使用命令行在ESXi虚拟机中检查磁盘错误。面对这类情况,把数据托付给可靠的备份方案,例如使用ESXi备份恢复虚拟机,才能更加从容。
上文介绍了使用VMKFSTOOLS命令在ESXi中检查磁盘错误的方法,它能发现部分虚拟磁盘问题并尝试修复。不过并非每一种错误都能靠它解决。
为了减少可能造成的损失,建议采用高效的VMware备份解决方案,定期把虚拟机数据备份下来,遇到磁盘错误也能从容应对。
更新于2026年09月20日