exsi7.0 重新创建缺少的虚拟机磁盘文件文件(.vmdk)
  9JCEeX0Eg8g4 2023年11月13日 30 0

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

解决方案

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

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

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

描述符文件。

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

因此将被忽略”。

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

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

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

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

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

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

\# cd /vmfs/volumes/myvmfsvolume/mydir

检查虚拟机配置文件 ( .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"

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

\# ls -l vmdisk0-flat.vmdk

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

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

\# vmkfstools -c 4294967296 -d Thin temp.vmdk

命令使用以下标记:

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

temp - flat.vmdk文件。

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

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

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

\# rm -i temp-flat.vmdk

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

\# mv -i temp.vmdk vmdisk0.vmdk

使用“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"

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

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

\# vmkfstools -e filename.vmdk

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

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

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

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

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

附加信息

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

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

flat.vmdk平面文件构成。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读