exsi7.0 重新创建缺少的虚拟机磁盘文件文件(.vmdk)

数据存储浏览器中首发的虚拟机磁盘文件是虚拟机的界面文件,并且没有图标。
打开虚拟机电源时,出现文件未找到的错误。
查看虚拟机目录时存在平面文件
虚拟机磁盘的磁盘文件不存在或已损坏。

解决方案

如何重新补发丢失/丢失的虚拟磁盘光盘文件(.vmdk):

注意:VMware 建议对关键虚拟机定期执行完整映像备份,以便在出现这种情况时轻松进行还原。VMware 还建议您尝试从备份损坏的磁盘文件中恢

复。此方法不能用于重新创建加密的磁盘

描述符文件。

**注意:**视频中使用了 vmkfstools -a 选项。在 ESXi 6.5 版本及更高版本中,此选项已弃用,将被忽略,并显示以下消息:“–adaptertype 已弃用,

因此将被忽略”。

**重要说明:**如果旅行的虚拟机没有完整备份,请确保将平面文件复制或备份到单独的位置。本文仅重点介绍为虚拟机重新创建文件文件,请勿编辑或

更改平面文件的内容,因为这可能会导致数据丢失。

注意:在虚拟机中配置了准虚拟化SCSI控制器的虚拟磁盘中,此过程将会损坏,因为虚拟机可能不会引导。不过,如果使用准虚拟化SCSI控制器,将

通过ddb 。 adapterType = pvscsi替换文件中的ddb.adapterType = lsilogic来对新的总线文件进行更新。

要创建虚拟机磁盘文件,请执行以下步骤:

  1. 通过 SSH 或 DCUI 登录到 ESXi 主机的终端。
  2. 使用以下命令导航到包含丢失的磁盘文件的虚拟机磁盘的目录:

​ # cd /vmfs/volumes/myvmfsvolume/mydir

  1. 检查虚拟机配置文件 ( .vmx ),确定虚拟磁盘正在使用的 SCSI 控制器的类型。控制器由scsi # .virtualDev行标识,其中#是控制器编号。有多个控制器和控制器类型可附加到虚拟机,如lsisas1068(即LSILogic SAS控制器)、lsilogic或buslogic。

    此示例使用lsilogic:

    scsi0.present = “true”

    scsi0.sharedBus = “none”

    scsi1.present = “true”

    scsi1.sharedBus = "virtual "

    scsi1.virtualDev = “lsilogic”

  2. 使用类似以下内容的命令,确定并记录-flat文件的准确大小:

    # ls -l vmdisk0-flat.vmdk

    -rw------- 1 root root 4294967296 Oct 11 12:30 vmdisk0-flat.vmdk

  3. 使用vmkfstools命令创建新的虚拟磁盘:

    # vmkfstools -c 4294967296 -d Thin temp.vmdk

命令使用以下标记:

注意:为了节省磁盘空间,我们使用Thin类型创建采用专业设置格式的磁盘。但是,如果原始分区未未设置为“专业”,该操作的唯一结果是初始化文件包含一个额外的行,您必须在后面的步骤中手动将其最终删除。会创建temp.vmdk和

​ temp - flat.vmdk文件。

​ -c size 这是虚拟磁盘的大小。

​ -d Thin 这会创建采用专业配置的磁盘。

  1. 删除temp-flat.vmdk,因为不需要这个文件。运行以下命令:

    # rm -i temp-flat.vmdk

  2. 将temp.vmdk重命名为与孤立的 - flat文件(或本例中的vmdisk0.vmdk)匹配的名称:

    # mv -i temp.vmdk vmdisk0.vmdk

  3. 使用“vi”文本编辑器编辑布拉格文件(本例中为vi vmdisk0.vmdk,)

    a. 在范围描述部分下,

    使用命令“ Shift + r ”进入替换模式。

    找到并更改 - flat文件的名称以与隔离的 - flat,相匹配按“Esc”退出替换模式。

    b. 如果原始.vmdk不是光盘,请找到ddb.thinProvisioned = "1"行后将其删除。如果是光盘,则保留此行。使用命令"Shift + zz"保

    存并退出“vi”编辑器。

    示例

    # Disk DescriptorFile

    version=1

    CID=fb183c20

    ParentCID=ffffffff

    createType=“vmfs”

    # 盘区描述

    RW 8388608 VMFS “vmdisk0-flat.vmdk”

    # 磁盘数据库

    #DDB

    ddb.virtualHWVersion = “4”

    ddb.geometry.Columns = “522”

    ddb.geometry.heads = “255”

    ddb.geometry.sectors = “63”

    ddb.adapterType = “lsilogic”

    ddb.thinProvisioned = “1”

    现在,可以准备打开虚拟机电源了。验证您的更改,并在启动虚拟机前确保磁盘链是一致的。

  4. 要检查磁盘链一致性,请针对磁盘磁盘文件运行以下命令:

    # vmkfstools -e filename.vmdk

    对于完整的链,输出将如下所示:

    磁盘链一致(磁盘链一致)

    对于损坏的链,您会看到快照链的摘要,然后会看到类似以下内容的输出:

    磁盘链不一致: 由于创建了子虚拟磁盘,父虚拟磁盘被修改。父虚拟磁盘的内容 ID 与子虚拟磁盘中对应的父内容 ID 不匹配 (18) (磁盘

    链不一致:自创建子虚拟磁盘以来,父虚拟磁盘已被修改。父虚拟磁盘的内容 ID 与子虚拟磁盘中相应的父内容 ID 不匹配 (18))

    附加信息

    虚拟机的每个磁盘驱动器均包含多个.vmdk文件。一个是包含有关虚拟硬盘的描述性数据的文本文件,另一个是该磁盘的实际内容。例如,名为

    examplevm 的虚拟机拥有一个附加的10 GB 磁盘。此磁盘由不超过 1 KB 的examplevm.vmdk读写文件和包含虚拟机内容的 10 GB examplevm-

    flat.vmdk平面文件构成。

你可能感兴趣的:(exsi7.0,exsi7.0)