Deploying an OFV package failes with the error:
Failed to deploy OVF package. Cause: A specified parameter was not correct: The checksum(s) from the provided manifest file do not match the content of file(s): <filename>
vSphere
The checksum hash for the file on disk does not match the value listed in the manifest file.
This could indicate data corruption, or modification since creation, but it could also be from the way the OVF was transported across the network. CIFS, other file protocols, and security appliance inspections can sometimes slightly modify the file contents changing the hash, but not affect the VM operationally.
It is important to consider the source of the OVF. If this package is from the internet the hash value not matching could be malicious in nature, but if you are exporting a VM in your environment for use in another environment the change is more likely due to the way you moved the data.
You can attempt to download the package from the source again and validate the hash.
# In this case, vmdk hash value is different from an actual hash value, which means this vmdk file has been modified and will fail to import/deploy.
PS C:\Users\Administrator\Downloads\photon ovf> cat .\photon-ovf-test.mf
SHA256(photon-ovf-test-2.nvram)= a79d8d4ea6fcb63ef8b90b3e872a5d5382ec25b8d3af5dc09d1bab24f5f3ef28
SHA256(photon-ovf-test.ovf)= 117d07136d2b8cbafd834c1fe2c5fe3ea22f0c854b59fdfac9fdf60e5ea85301
SHA256(photon-ovf-test-1.vmdk)= 23eff1cfb80c92f8d7adc66b08ac9248ef0e83000d7c42eb513db43c9af1c0fe
PS C:\Users\Administrator\Downloads\photon ovf> Get-FileHash .\photon-ovf-test-1.vmdk
Algorithm Hash Path
--------- ---- ----
SHA256 173477E727467FA9A737F6CE66DFCE290DAF4651AD1FC6E34A619F84E6CC09E9 C:\Users\Administrator\Downlo...
If you are unable to get a copy that doesn't fail a hash check, you can work around this issue by creating a new manifest file using the current hash values with PowerShell.
1. Change the name of your current manifest file to .old.
2. Modify the last line in the script to replace MyManifestName with your manifest file name and execute. Once completed you can view and revalidate that the hashes match your new manifest file, and import the OVF.
$files = Get-ChildItem -Path *.nvram,*.ovf,*.vmdk -File
if ($files.Count -eq 0) {
Write-Error "No .ovf or .vmdk files found in $(Get-Location)"
return
}
$output = foreach ($f in $files) {
$h = Get-FileHash -Path $f.FullName -Algorithm SHA256
"SHA256($($f.Name))= $($h.Hash.ToLower())"
}
Set-Content -Path "MyManifestName.mf" -Value $output -Encoding ASCII