VMware Communities
JohnMill3r
Contributor
Contributor

The disk 'D:\Virtual Machines\XPProf_xpprof\XPProf_Standard-cl1.vmdk' has one or more internal errors that cannot be fixed. Restore from a backup copy of this disk. The specified virtual disk needs repair

Hi,

I got the following message when startup the virtual machine:

The disk 'D:\Virtual Machines\XPProf_jdownloader\XPProf_Standard-cl1.vmdk' has one or more internal errors that cannot be fixed. Restore from a backup copy of this disk.

The specified virtual disk needs repair

Cannot open the disk 'D:\Virtual Machines\XPProf_jdownloader\XPProf_Standard-cl1-000002.vmdk' or one of the snapshot disks it depends on.

Module 'Disk' power on failed.

Failed to start the virtual machine.

I have a lot of Errors like this:

2019-10-20T12:19:49.952+02:00| vmx| I125: DISKLIB-SPARSECHK: [D:\Virtual Machines\XPProf_xpprof\XPProf_Standard-cl1.vmdk] GT Error (EE): GT[102][389] = 25435136 / 25435136

2019-10-20T12:19:49.952+02:00| vmx| I125: DISKLIB-SPARSECHK: [D:\Virtual Machines\XPProf_xpprof\XPProf_Standard-cl1.vmdk] Resolving      GT[102][389] = 0

The log file has 98Mb and it seems that i can not add it

Tryed the vmware-vdiskmanager.exe, but did not work

Any Idea?

Reply
0 Kudos
16 Replies
a_p_
Leadership
Leadership

Welcome to the Community,

did something unexpected happen, which may have caused this, e.g. a power outage, out of disk space issue, ...?

As a first step run dir *.* /one > filelist.txt in the VM's folder, and attach the resulting filelist.txt to a reply post.


André

Reply
0 Kudos
JohnMill3r
Contributor
Contributor

Hi André,

Thanks for your reply.

I attached the file.

I last used the VM about 4 weeks ago. After using i compacted the disk to save storage space.

I'm afraid I can't remember anything extraordinary.

Reply
0 Kudos
a_p_
Leadership
Leadership

Ok, let's see how the virtual disks' metadata looks like.

To extract the metadata, please create another, temporary VM with the same virtual disk size, and make sure that you select "Store virtual disk in a single file". Then run the dir *.vmdk command in that VM's folder, and make note of the .vmdk file's size.

After that, download dsfok.zip from http://faq.sanbarrow.com/index.php?action=artikel&cat=47&id=111&artlang=en, extract the executables, run the below mentioned command in the corrupted VM's folder, compress/zip all the "xxx-....bin" files, and attach the .zip archive to a reply post

for %i in (*.vmdk) do @dsfo.exe "%i" 0 #### "xxx-%~ni.bin"

Note: Replace #### with the temporary VM's .vmdk file's size.


André

Reply
0 Kudos
JohnMill3r
Contributor
Contributor

Thanks for your help.

I got only one .bin file. I attached the zip archive.

(hopefully I did it right. :smileysilly:)

Reply
0 Kudos
a_p_
Leadership
Leadership

The good news is that the newly created VM has an error free virtual disk 😉

If you want me to take a look at the corrupted .vmdk files, you need to run the command in the corrupted VM's folder, which will create two .bin files.

André

Reply
0 Kudos
JohnMill3r
Contributor
Contributor

Thank you Smiley Happy

I summed up the size of both .vmdk. Added this value to the dsfo command and got 2 bin files.

When i zip those files i got a zip file with about 9GB. Something more than the largest bin file. This is correct?

So i have to upload this to a file hoster.

Sebastian

Reply
0 Kudos
a_p_
Leadership
Leadership

I summed up the size of both .vmdk

Let's clarify this.

According to the "xxx-temp.bin" that you've provided earlier, the metadata size (file size) is 7.929.856 Bytes. Assuming that this is the correct temp.vmdk file's size, the command to extract the metadata from the two .vmdk files is:

for %i in (*.vmdk) do @dsfo.exe "%i" 0 7929856 "xxx-%~ni.bin"

What you should get, are two .bin files with exactly this size (7.929.856 Bytes).

André

Reply
0 Kudos
JohnMill3r
Contributor
Contributor

Thanks,

yes, i got two.bin files with the exact size of the two .vmdk.

Then i zipped this two .bin files.

According to the "...temp.bin" i got .bin filesize of 7.929.856 and after packing it with zip, the .zip file got a size of 14.200 byte. So a very high compression.

The .bin file of my damaged system has about 9GB. When i pack it, the .zip file also got size about 9GB. So a very bad compression.

My question now was whether this poor compression is normal?

Thanks fpr your help!

Reply
0 Kudos
a_p_
Leadership
Leadership

The .bin file of my damaged system has about 9GB. When i pack it, the .zip file also got size about 9GB. So a very bad compression.

That's actually impossible, we are extracting only a few MB from the .vmdk files.

Please delete the current .bin file and run the extract command again. Maybe something went wrong with the first attempt!?


André

Reply
0 Kudos
JohnMill3r
Contributor
Contributor

I tried again.

1. I navigate to the VMs directory.

D:\Virtual Machines\XPProf_xpprof>dir *.vmdk

Datenträger in Laufwerk 😧 ist DATEN

Volumeseriennummer: 48D2-4E8D

Verzeichnis von D:\Virtual Machines\XPProf_xpprof

20.10.2019  10:45         7.929.856 XPProf_Standard-cl1-000002.vmdk

09.10.2019  14:57     9.079.881.728 XPProf_Standard-cl1.vmdk

               2 Datei(en),  9.087.811.584 Bytes

               0 Verzeichnis(se), 37.779.369.984 Bytes frei

2. I execute your command

D:\Virtual Machines\XPProf_xpprof>for %i in (*.vmdk) do @dsfo.exe "%i" 0 9087811584 "xxx-%~ni.bin"

OK, 7929856 bytes, 0.031s, MD5 = d53a36a3cdd668bf9b89079493086f76

OK, 9079881728 bytes, 70.824s, MD5 = a9e592a129fc6d00a8f6ee5d75e5c733

3. I packed the two .bin files with 7-Zip

Unbenannt2.JPGUnbenannt.JPG

Did i somthing wrong?

Reply
0 Kudos
a_p_
Leadership
Leadership

You are specifying an incorrect number of bytes to extract from the .vmdk file.

Instead of:

for %i in (*.vmdk) do @dsfo.exe "%i" 0 9087811584 "xxx-%~ni.bin"

run:

for %i in (*.vmdk) do @dsfo.exe "%i" 0 7929856 "xxx-%~ni.bin"

André

Reply
0 Kudos
JohnMill3r
Contributor
Contributor

I have two .vmdk. so i thought i have to sum up their sizes. When i do it with "7929856" i only have the size of the smalest vmdk

Reply
0 Kudos
a_p_
Leadership
Leadership

When i do it with "7929856" i only have the size of the smalest vmdk

That's correct, what I need is only the metadata (header, grain directories/tables, ...) which are stored in the first 7929856 bytes of each .vmdk file, but not your user data.

André

Reply
0 Kudos
JohnMill3r
Contributor
Contributor

It has taken a long time, but now i'va got the correct size :smileylaugh:

Reply
0 Kudos
a_p_
Leadership
Leadership

This doesn't seem to be a simple metadata issue, but an issue with a truncated data file.

According to my test results, the virtual disk's provisioned size is 60GB with ~37GB are (were) used, but the data file is only ~9GB in size.

ERROR: Mismatch - Size = 9.079.881.728, Expected = 37.298.110.464 (Diff = -27.556.864 kB)

There are unfortunately not really another option than to restore the missing data from backups. Trying to recover data from the physical disk will most likely also not be successful anymore, because I guess that most of the files previously used sectors on the physical disk have already been overwritten.

Sorry for the bad news.


André

Reply
0 Kudos
JohnMill3r
Contributor
Contributor

Thanks for your help, anyway. Best regards

Reply
0 Kudos