We were just about to deploy the latest version of VCE’s UIMP when vSphere Client failed with an error message about a failed integrity check of the VMDK file. Although not the best idea, the fix was easy: When an integrity check is performed at all, OVF brings an additional file: the manifest file (.mf). In our case, it contained SHA1 checksum information about the .ovf and the .vmdk file:
mathias@x1c:/media/mathias/Volume$ ls -hl UIMP* -rw------- 1 mathias mathias 2,6G Mär 5 19:25 UIMP-4.0.0.2.359-Install-Media.iso -rw------- 1 mathias mathias 1,3G Mär 6 09:28 UIMP_OVF10-disk1.vmdk -rw------- 1 mathias mathias 133 Mär 6 10:54 UIMP_OVF10.mf -rw------- 1 mathias mathias 125K Jan 4 23:13 UIMP_OVF10.ovf mathias@x1c:/media/mathias/Volume$ cat UIMP_OVF10.mf SHA1(UIMP_OVF10.ovf)= 881533ff36aebc901555dfa2c1d52a6bd4c47d99 SHA1(UIMP_OVF10-disk1.vmdk)= f175f150decb2bf5a859903b050f4ea4a3982023
Interestingly, the whole OVF data was contained in an ISO file which passed the MD5 check after download. So something must have gone wrong packaging the appliance. I calculated the SHA1 checksum for the file and compared it to the one in the manifest:
mathias@x1c:/media/mathias/Volume$ sha1sum UIMP_OVF10.ovf 881533ff36aebc901555dfa2c1d52a6bd4c47d99 UIMP_OVF10.ovf mathias@x1c:/media/mathias/Volume$ sha1sum UIMP_OVF10-disk1.vmdk f175f150decb2bf5a859903b050f4ea4a3982023 UIMP_OVF10-disk1.vmdk mathias@x1c:/media/mathias/Volume$
VMDK: f175f150decb2bf5a859903b050f4ea4a3982023
MF: 9371305140e8c541b0cea6b368ad4af47221998e
Strange 😀 Well, the fix was to simply edit the manifest with the correct SHA1 checksum. But please keep in mind that just because we just forged the checksum doesnt mean the data is not corrupt. In this case, as the MD5 check of the ISO was successful we assumed that the data is probably fine an decided to give it a try. In the end, the file was still corrupt and brought errors mounting the root file system.u