I've been developing a vss-writer based on this microsoft sample.

At the beginning I was using BETest.exe to test my app

> betest.exe /B /S backup.xml /D C:\BackupDestination /X BetestSample.xml
> betest.exe /R /S backup.xml /D C:\BackupDestination /X BetestSample.xml

It worked fine. I was able to:

  • Backup files from c:\testPath
  • Delete them
  • Restore them (to a chosen alternate location c:\testPath2.)

But as soon as I tried to backup/restore a 10GB file, the BETest was crashing at the restore operation. Everytime. I looked at other tools:

  • VShadow
  • VSSAdmin
  • WBAdmin

With VShadow, I Typed:

> vshadow -p -t=c:\bc.xml c:

I could see my Writer printing:

enter: DepWriter::Initialize
enter: DepWriter::OnIdentify
enter: DepWriter::OnPrepareBackup
enter: DepWriter::OnPrepareSnapshot
enter: DepWriter::OnFreeze
enter: DepWriter::OnThaw
enter: DepWriter::OnPostSnapshot
enter: DepWriter::OnIdentify
enter: DepWriter::OnBackupComplete
enter: DepWriter::OnBackupShutdown

I was able with MKLink to link the shadow copy and to browse it:

> mklink /D c:\snapshots \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy6\

I could see the files I wanted to backup.

Then I typed:

> vshadow -r=c:\bc.xml

output contained (among other things):

Sending the PreRestore event ...

(Waiting for the asynchronous operation to finish...)
Set restore status for all components components for restore...
  * Writer 'DFS Replication service writer':
    - Select component \SYSVOL\3E53186A-7D53-4667-A3D1-D278B3564CDC-DF424FA9-3080-403E-B7CE-2A81A03A79FA
  * Writer 'MSDNSampleWriter':
    - Select component \TestFiles

Sending the PostRestore event ...
Restore done.

And I got my writer printing printing:

enter: DepWriter::OnIdentify
enter: DepWriter::OnPreRestore
enter: DepWriter::OnPostRestore

But there was no trace of my files in either c:\testPath or c:\testPath2. They were not restored.

My VSS Writer is a straight moification of the sample Writer from MSDN and it worked fine for small file with betest.

Why does VShadow fail to restore my files and tells it is done? I'm using it on windows Server 2008 R2 64Bits


I found a way...

One needs to use the exec={command} switch.

in my case command is a simple:

vshadow -p -t=c:\bc.xml -exec="robocopy pathA pathB"

I guess normal requester would do something smarter than this though. Most likely it would find alternate locations on its own, have a policy in case of failure... But I can't figure out a better tool than vshadow so far.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.