In che modo OneDrive rende la sua cartella non funzionale per le versioni precedenti di Windows?


58

Dopo l'Autunno 2017 Creators Update per la cartella OneDrive di Windows 10 non è possibile accedere utilizzando le versioni precedenti di Windows. Questa stranezza è descritta al sito ufficiale :

Se hai installato l'aggiornamento dei creatori dell'autunno 2017 per Windows 10 e sincronizzi i file OneDrive su un'unità esterna, potresti non essere in grado di aprire i tuoi file OneDrive se sposti l'unità esterna su un computer che esegue un sistema operativo precedente all'aggiornamento dei creatori dell'autunno 2017 per Windows 10.

La soluzione suggerita è "Utilizzare un computer che esegue l'aggiornamento dei creatori dell'autunno 2017 per Windows 10 (o più recente) per aprire il contenuto" .

Ho riprodotto correttamente il problema con Windows 7 collegando un disco rigido con una cartella OneDrive, creata utilizzando Windows 10 in precedenza. Ora, quando provo a fare qualcosa con la directory (eliminala o cdin essa), ricevo un errore:

The file cannot be accessed by the system.

Non ci sono errori logici in FS secondo chkdsk, anche io sono il proprietario della cartella e ho tutti i privilegi di sicurezza. Nessun processo utilizza il volume. Indipendentemente da ciò, non posso fare nulla con questa (e unica) cartella. Qual è il meccanismo di blocco?

Risposte:


72

NTFS ha una funzione chiamata punti di analisi , in cui un file o una directory possono essere taggati per l'elaborazione speciale dal sistema operativo. È utilizzato per implementare alcune funzionalità, ad esempio punti di montaggio del volume (l'alternativa Unix alle lettere di unità); giunzioni e collegamenti simbolici; Directory sparse di GitVFS; file che sono effettivamente memorizzati all'interno di un'immagine WIM; file che sono stati scaricati su nastro o altro archivio lento; e così via.

Le versioni recenti di OneDrive usano anche punti di analisi per implementare "file online": all'inizio sono segnaposto, ma vengono scaricati su richiesta. Le versioni precedenti lo facevano a livello di shell, che non funzionava con molti programmi; l'utilizzo di un punto di analisi e lo spostamento del download automatico nel sistema operativo principale li rende quasi indistinguibili dai file locali.

Naturalmente i nuovi tag comporteranno un errore quando si accede al percorso tramite un sistema operativo precedente; il driver NTFS non sa cosa fare con tali elementi, quindi rifiuta semplicemente l'accesso. Potrebbe mostrare ad esempio una directory vuota, ma ciò potrebbe rapidamente causare più danni quando il sistema operativo precedente tenta di scrivere su di esso.

È possibile utilizzare fsutil reparsepoint tramite Cmd per vedere l'eventuale tag reparse point che è stato allegato a un file o una directory.


11
Avevi ragione. fsutil reparsepoint query OneDriveha mostrato i dati e fsutil reparsepoint delete OneDrive"sbloccato" correttamente la directory.
enkryptor

1
I punti di analisi non sono estensibili / installabili? Sicuramente, il sistema operativo Windows non supporta GitVFS in modo nativo.
usr

3
Il sistema operativo Windows ha infatti ricevuto modifiche per supportare GitVFS. IIRC, ha sempre avuto un requisito di "versione minima di Win10". Come con OneDrive, suppongo che sia un supporto parziale: la capacità per gli utenti o per i driver personalizzati di agganciarsi al sistema operativo ... Non so se significa supportare punti di analisi arbitrari o se significa supportare un punto di analisi specifico ma lasciando che il l'implementazione può essere installata.
Grawity

4
@usr In futuro, ProjFS sarà probabilmente l'opzione supportata per funzionalità simili, poiché può essere implementata esclusivamente in modalità utente. Tuttavia, non è ancora disponibile in una versione stabile. ProjFS stesso è (era?) Implementato come driver di filtro del file system, che è stato disponibile come punto di estensione per parecchie versioni di Windows (credo che risalga a XP). OneDrive stesso usa (usato?) CldFlt ("Mini Filter Driver di Cloud Files").
Bob
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.