Назад | Перейти на главную страницу

Невозможно восстановить из теневой копии из-за длинного имени файла

На нашем сервере Windows SBS 2008 включено теневое копирование. Попытка восстановить файл из теневой копии дала следующую ошибку:

Имя (имена) исходного файла больше, чем поддерживается файловой системой. Попробуйте перейти в место с более коротким именем пути или попробуйте переименовать его на более короткие имена перед выполнением этой операции.

Имя файла состоит из 67 символов, а путь к теневой копии - 170 символов. Кажется, они находятся в пределах NTFS (260?).

Мы попытались-

Можно ли перед копированием переименовать файлы в теневой копии? Есть идеи, почему появляется ошибка, несмотря на то, что размер имени файла находится в установленных пределах?

Предпринятые шаги

  1. На локальном компьютере перейдите в общую папку на сервере SBS (через подключенный диск), например J: \ Projects \ Foo \ Bar
  2. Щелкните правой кнопкой мыши папку и выберите Свойства
  3. Нажми на Предыдущие версии таб.
  4. Выберите теневую копию и щелкните открыто
  5. Во вновь открывшемся окне выберите папку / файл и нажмите Ctrl-C для копирования.
  6. Откройте новый проводник Windows и вставьте папку / файл на локальный диск.

Edit- (Не), к счастью, сейчас я не могу воспроизвести эту ошибку. Конкретные файлы, вызывающие проблему, с тех пор были удалены, и невозможно воссоздать ошибку с другими аналогичными файлами.

У меня была такая же проблема в Server 2008 R2, и я решил ее следующим образом:

  1. Щелкните правой кнопкой мыши папку, которую вы пытаетесь восстановить из теневой копии, и выберите Предыдущие версии. Выберите дату и нажмите открыто.
  2. Щелкните правой кнопкой мыши любой файл или папку в предыдущей папке и выберите Свойства. На вкладке «Общие» скопируйте то, что показано в поле «местоположение», например: \\localhost\D$\@GMT-2011.09.20-06.00.04\_Data
  3. Откройте cmd.exe и введите:

    subst X: \\localhost\D$\@GMT-2011.09.20-06.00.04\_Data
    
  4. Откройте PowerShell и используйте robocopy для копирования содержимого X: например:

    robocopy Z: D:\Folder\ /E /COPYALL
    
  5. Убедитесь, что все файлы скопированы.
  6. Когда закончите тип subst X: /D in cmd

Вы пробовали предоставить общий доступ к папке, из которой пытаетесь восстановить? Таким образом, вы можете попробовать открыть \ server \ share \ filename вместо \ server \ share \ path .... \ filename?

Если это не сработает, я предлагаю попробовать получить доступ к тома через командную строку где вы можете использовать \\?\ метод доступа, имеющий 32 767 символов.

Можете ли вы получить имя / путь к файлу теневой копии из записи «местоположение» на вкладке «Общие» в окне «Свойства», а затем использовать команду «subst», чтобы сократить длинный путь до одной буквы?

subst Z: "H: \ 1 \ 2 \ 3 \ 4 \ 5 \ 6 \ 7 \ Мне нравится создавать дурацкие имена каталогов, которые очень длинные \ 8 \ 9"

dir Z: то же самое, что и dir "H: \ 1 \ 2 \ 3 \ 4 \ 5 \ 6 \ 7 \ Мне нравится создавать дурацкие имена каталогов, которые очень длинные \ 8 \ 9"