
Я уже много читал о проблемах с символическими ссылками и Windows 10 в интернете, но не о том явлении, с которым я столкнулся сейчас. Так вот…
Моя цель — синхронизировать папку («Моя музыка»), расположенную на отдельном разделе данных моего SSD-диска, в облако OneDrive через символьную ссылку. Все работает отлично… кроме 2-сторонней синхронизации. Она остается улицей с односторонним движением. :-(
Раздел данных и системный раздел Windows имеют файловую систему NTFS. Раздел данных имеет букву ( X:
). У меня есть существующая учетная запись OneDrive, на которой пока нет файлов и папок.
Насколько я понимаю сейчас, создание соединения — это выход, хотя в этом случае может сработать и создание символической ссылки. Процедура, которой я следовал, такова:
- Открыл свою учетную запись OneDrive онлайн.
- Настроил OneDrive на моем компьютере.
- Сохранить стандартное расположение моего OneDrive на системном разделе:
C:\Users\<my user name>\OneDrive
. - Откройте командную строку от имени администратора.
- Создал соединение с помощью этой команды:
mklink /J “C:\Users\<my user name>\OneDrive\My Music” “X:\My Music”
- Ссылка
‘My Music’
отображается в виде папки под значком OneDrive в проводнике Windows. - Проверил, работает ли ссылка на папку
‘My Music’
на моем разделе данных. И она работает отлично. - Перейти в OneDrive онлайн.
‘My Music’
Папка также появилась в моем OneDrive онлайн. - Загрузил случайный файл со своего компьютера в
‘My Music’
папку, чтобы проверить синхронизацию. - Загруженный файл появляется в моем OneDrive онлайн.
- Возвращаюсь в проводник Windows на моем компьютере. Загруженный файл появился в
‘My Music’
папке на разделе данных по созданной ссылке.
Пока все хорошо. Все, что я загружаю в OneDrive онлайн, отлично отображается в папке раздела данных. Но проблема в том, что двусторонняя синхронизация не работает. Если я что-то меняю в папке ‘My Music’
на разделе данных, это изменение отображается в той же папке OneDrive, которая связана (очевидно), но на этом все и заканчивается: синхронизация с OneDrive онлайн не происходит. Почему так и каково решение?
Точно то же самое происходит, если я использую не соединение, а символическую ссылку:mklink /D “C:\Users\<my user name>\OneDrive\My Music” “X:\My Music”
И мой второй вопрос: как возможно, что результат будет ровно обратным, когда я меняю процедуру и сначала создаю соединение (или символическую ссылку), а затем настраиваю OneDrive на своем компьютере? Так что в этом случае синхронизация файла с OneDrive онлайн через созданную ссылку работает нормально, но если я что-то меняю в папке «Моя музыка» в OneDrive онлайн, это изменение не отображается в папке на моем разделе данных. Опять же, это только один способ.
Я просто не понимаю. Есть ли у кого-нибудь ответы, пожалуйста? Спасибо заранее!
решение1
Заэта тема на форумах Microsoft, похоже, что OneDrive получал уведомления о событиях изменения файлов из псевдонимов (соединений/символических ссылок) примерно 31.05.2017 (см. ответ, помеченный как лучший ответ), но 17.01.2018 кто-то сообщил, что они были повреждены, и автор ответа, помеченного как лучший ответ, похоже, подтвердил это.
Последнее предложение «использовать жесткие ссылки» не работает, поскольку я считаю, что в NTFS нет «жестких ссылок на каталоги».
К сожалению, я думаю, что сейчас это сломано.
В этой теме есть несколько упоминаний о способах решения проблемы:OneDriveBullyдля периодического ручного запуска (полной?) синхронизации OneDrive и универсальные утилиты синхронизации папок для двусторонней синхронизации двух каталогов (что потребует в 2 раза больше дискового пространства и, вероятно, вызовет много головной боли, когда это потребуется, например, при обработке конфликтов). Мне ни один из них не нравится.
решение2
Я бы не чувствовал себя в безопасности, размещая папку Desktop на внешнем диске, поскольку мой Desktop не загрузится, если SD-карта отсутствует или повреждена. Поэтому я предпочитаю хранить Desktop в его расположении по умолчанию на локальном диске C: и просто помещать соединительную ссылку на Desktop в папку OneDrive на внешнем диске.
Проблема в том, mklink /J
что внешние диски не синхронизируются с OneDrive, как ожидалось. Синхронизация не происходит мгновенно при изменении файлов. (в других отчетах раньше работало, но с января 2019 года у меня не работает).
Однако рабочий стол, связанный с соединениемВОЛЯсинхронизировать, когда компьютерперезапущен(или когда пользователь выходит из системы и снова входит в нее).Для некоторых целей этого может быть достаточно.
Например, я только изредка сохраняю файлы на рабочем столе, поэтому я помещаю ссылку Junction в папку OneDrive (которая находится на внешней SD-карте). Обычно я перезагружаю компьютер по крайней мере раз в день, поэтому рабочий стол синхронизируется ежедневно.
(Это будеттакжесинхронизация, когда onedrive ставится на паузу и затем снимается с паузы, но вручную постоянно приостанавливать/снимать с паузы не удобно)
Для Documents я хочу постоянную синхронизацию немедленно при изменении файлов, поэтому я переместил свою папку Documents в OneDrive на внешней SD. Если SD-карта отсутствует или повреждена, моя учетная запись все равно сможет войти и загрузиться (так как это не зависит от папки Documents).
Mklink /H
не допускается с внешними дисками.
решение3
Я знаю, что эта тема довольно старая, однако проблема все еще существует. OneDrive (который, похоже, является прямой копией Dropbox, изначально имевшего ту же проблему) не синхронизирует файлы с символическими ссылками, если исходная папка или файл не находятся в папке OneDrive. Поэтому самое простое решение — поместить исходные (исходные) файлы в папку OneDrive и создать символическую ссылку на любое другое место назначения, где вы хотите их редактировать. Вы можете редактировать их в двух местах, и OneDrive все равно их синхронизирует. Конечно, если папка назначения снова синхронизирована (например, Dropbox), то она не будет синхронизироваться, но это довольно редкий случай, когда вы используете OneDrive и Dropbox.
mklink /J "C:\...\OneDrive\SourceFolder" "C:\SomewhereElse\HardlinkedFolderToCreate"
У меня работает. Я могу редактировать файлы из любой из двух папок, и OneDrive отлично их синхронизирует. Я также могу редактировать их онлайн (используя OneDrive для бизнеса, который синхронизируется с библиотекой SharePoint, но это не должно иметь значения). Также должно работать с Dropbox. Если вам нужно наоборот, поменяйте источник и место назначения.
решение4
Как ни странно, при небольших структурах папок это прекрасно работает как с символическими ссылками, так и с соединениями.
Но если я создаю слияние или символическую ссылку на структуру папок размером в несколько десятков гигабайт с примерно 100 000 папок и файлов, это не работает. Вместо этого OneDrive, похоже, навсегда остается в состоянии «Поиск изменений».