A long post that may help someone else in the same sorry state we found ourselves when attempting a restore...
We have an ongoing support case which came about as a result of being unable to restore files from a Veeam backup to a Linux box. The backup was verified and reported as successful by Veeam. However, various problems were encountered and despite very helpful suggestions from Dmitry in support we exhausted nearly all the normal Veeam restore options. So we were left with restoring the vmdk that held the files to be restored. This was duly done and placed in a temporary datastore.
The idea was to add the vmdk disk to the original VM, mount it as a different partition in Linux and copy the restored files to their proper destination. This also created errors...
First, I could not add the vmdk to the original VM because it had the same id as a vmdk already present on that VM -- understandable really.
Next, I thought I could add it to another powered off VM. This worked as far as adding it but when I went to power on the VM it produced an error in the VC: 'Unable to access file since it is locked'. Looking through the VMware KB did not really provide a solution. Time to consider one final option...
I would only recommend this workaround to people confident in the VC/ESX/VMware environment:
1. Power off the original VM
2. Create a new Veeam backup job and backup the original VM. Remember the reason we're jumping through these hoops is because of the failed restore from the original job using all the normal Veeam options
3. Do a test restore of the backup to make sure we have a fallback if the rest goes belly up
4. Go to the VM settings in VirtualCenter and make a note of all the hard disk details (SCSI id settings, datastore sources etc.)
5. Remove the disk to be restored (identical vmdk name as the restored vmdk). DO NOT SELECT DELETE FROM DISK!
6. Add new hard disk using the restored vmdk
7. Ensure all disk details match those noted earlier. The SCSI id must be the same as the original though the hard disk number is not important.
8. Power on the VM which now has the restored vmdk mounted
9. Copy whatever files/directories you wanted restored to external storage (e.g. I took an scp of the required directory onto my laptop)
10. Once done, power off VM
12. In VC remove the restored vmdk. Again, do not delete from disk until you are happy that the restore is complete.
13. Add new hard disk using the previously removed original vmdk in step 5.
14. Check that all disk details are correct
15. Power on VM
16. Copy the restored files from external source to another location on the VM. You don't really want to directly overwrite the current data with the restored stuff.
17. Run another Veeam backup using the new backup job
18. Do another test restore
As a workaround it looks scary and can go horribly wrong but if you follow the steps you should be OK. I don't know if anyone has previously recommended this as a last resort but I have posted this in case others have encountered problems when all the usual restore options have been exhausted.