Як OneDrive робить свою папку не функціональною для старих версій Windows?


58

Після оновлення осінь 2017 Creators Update для Windows 10 OneDrive папку не можна отримати, використовуючи попередні версії Windows. Ця дива описується на офіційному сайті :

Якщо ви встановили оновлення Fall 2017 Creators для Windows 10 і синхронізуєте файли OneDrive на зовнішній диск, можливо, ви не зможете відкрити свої файли OneDrive, якщо перенести зовнішній диск на комп'ютер із операційною системою, старший за оновлення Fall 2017 Creators Update для Windows 10.

Пропонований спосіб вирішення: "Використовуйте комп'ютер, на якому працює оновлення Fall 2017 Creators для Windows 10 (або новішої версії), щоб відкрити вміст" .

Я успішно відтворив проблему в Windows 7, підключивши жорсткий диск до папки OneDrive, створеної за допомогою Windows 10 раніше. Тепер, коли я намагаюся щось зробити з каталогом (видалити його або cdв нього), я отримую помилку:

The file cannot be accessed by the system.

У FS немає логічних помилок chkdsk, також я є власником папки і маю всі права доступу до безпеки. Жоден процес не використовує гучність. Незважаючи на те, я не можу нічого зробити з цією (і єдиною) папкою. Що таке механізм блокування?

Відповіді:


72

NTFS має функцію під назвою reparse points , в якій файл або каталог можна позначати тегами для спеціальної обробки операційною системою. Він використовується для реалізації досить багатьох функцій - наприклад, точки монтажу гучності (альтернатива Unix-ish для приводу букв); стики та посилання; Рідкі каталоги GitVFS; файли, які фактично зберігаються всередині зображення WIM; файли, завантажені на стрічку чи інше повільне зберігання; і так далі.

Останні версії OneDrive також використовують точки повторного розбору для реалізації "онлайн-файлів" - спочатку вони є заповнювачами, але завантажуються на вимогу. Раніші версії робили це на рівні оболонки, що не працювало з багатьма програмами; використання точки перезавантаження та переміщення автоматичного завантаження в основну ОС робить їх майже невідрізними від локальних файлів.

Зазвичай нові теги призведуть до помилки, коли доступ до шляху здійснюється через старішу ОС; драйвер NTFS не знає, що робити з такими елементами, тому просто відхиляє доступ. Він може показувати, наприклад, порожній каталог, але це може швидко призвести до більшого збитку, коли старша ОС намагається записати на нього.

Ви можете використовувати fsutil reparsepoint через Cmd, щоб побачити тег точки повторного аналізу , якщо такий є, який додається до файлу чи каталогу.


11
Ви мали рацію. fsutil reparsepoint query OneDriveпоказав дані та fsutil reparsepoint delete OneDriveуспішно "розблокував" каталог.
енкриптор

1
Чи точки розпізнавання не розширюються / не встановлюються? Звичайно, ОС Windows не підтримує GitVFS.
usr

3
ОС Windows насправді отримала зміни для підтримки GitVFS. IIRC, він завжди мав вимогу "мінімальної версії Win10". Як і у OneDrive, я припускаю, що це часткова підтримка - можливість для користувачів користувачів або для користувацьких драйверів підключитися до ОС ... Не знаю, чи означає це підтримка довільних точок перезапису, або якщо це означає підтримку певної точки перезавантаження, але дозволяти реалізація може бути встановлена.
grawity

4
@usr У майбутньому ProjFS , ймовірно, буде підтримуваним варіантом подібних функцій, оскільки він може бути реалізований виключно в режимі користувача. Однак він ще не доступний у стабільному випуску. Сам ProjFS реалізований (був?) Реалізований як драйвер фільтру файлової системи, який доступний як точка розширення для досить багатьох версій Windows (я вважаю, що я повертаюсь через XP). Сам OneDrive використовує (використовується?) CldFlt ("Cloud Files Mini Filter Driver").
Боб
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.