Unable to restore from Shadow Copy due to long filename

ntfsrestorevsswindows-sbs-2008

We have shadow copy enabled on our Windows SBS 2008 server. Attempting to restore a file from shadow copy gave the following error-

The source file name(s) are larger than is supported by the file system. Try moving to a location which has a shorter path name, or try renaming to shorter name(s) before attempting this operation.

The filename has 67 characters, and it's shadow copy path is 170 characters. These seem to be under the NTFS limits (260?).

We tried-

  • Copying to the shortest path possible (C:)
  • Copying to the shortest path possible on both a client computer and the server itself

Is it possible to rename files in a shadow copy, before doing the copy? Any idea why the error is appearing despite the filename size appearing to be within limits?

Steps taken

  1. On local computer, go to shared folder on SBS server (via mapped drive), e.g. J:\Projects\Foo\Bar
  2. Right click on folder and select Properties
  3. Click on the Previous Versions tab.
  4. Select a shadow copy and click Open
  5. In newly opened window, select folder/file and press Ctrl-C to copy.
  6. Open a new Windows Explorer, and paste folder/file onto local drive.

Edit- (Un)fortunately, I am now unable to reproduce this error. The particular files causing the problem have since been deleted, and unable to recreate the error with other, similar files.

Best Answer

I had the exact same problem in Server 2008 R2 and this is how I solved it:

  1. Right click on the folder you're trying to restore from shadow copy and chose Previous Versions. Chose a date and click on Open.

  2. Right click on any file or folder within the previous folder and chose Properties. On the General tab copy what's shown in 'location', e.g.: \\localhost\D$\@GMT-2011.09.20-06.00.04\_Data

  3. Open cmd.exe and type in:

     subst X: \\localhost\D$\@GMT-2011.09.20-06.00.04\_Data
    
  4. Open PowerShell and use robocopy to copy content of X: e.g.:

     robocopy X: D:\Folder\ /E /COPYALL
    
  5. Check that all files have been copied.

  6. When finished type subst X: /D in the cmd (Command Prompt) window