¿Cómo hace OneDrive para que su carpeta no funcione para versiones anteriores de Windows?

58

Después de la actualización de creadores de otoño de 2017 para Windows 10, no se puede acceder a la carpeta OneDrive con versiones anteriores de Windows. Esta rareza se describe en el sitio oficial :

Si instaló la Actualización de creadores de otoño de 2017 para Windows 10 y sincroniza los archivos de OneDrive con una unidad externa, es posible que no pueda abrir los archivos de OneDrive si mueve la unidad externa a una computadora con un sistema operativo anterior a la Actualización de creadores de otoño de 2017 para Windows 10

La solución alternativa sugerida es "Usar una computadora que ejecute la Actualización de creadores de otoño de 2017 para Windows 10 (o posterior) para abrir el contenido" .

He reproducido con éxito el problema con Windows 7 conectando un disco duro con una carpeta OneDrive, creada con Windows 10 anteriormente. Ahora, cuando intento hacer algo con el directorio (eliminarlo o cden él), aparece un error:

The file cannot be accessed by the system.

No hay errores lógicos en el FS según chkdsk, también soy el propietario de la carpeta y tengo todos los privilegios de seguridad. Ningún proceso está utilizando el volumen. De todos modos, no puedo hacer nada con esta (y solo) carpeta. ¿Cuál es el mecanismo de bloqueo?

enkryptor
fuente

Respuestas:

72

NTFS tiene una característica llamada puntos de análisis , en la que un sistema operativo puede etiquetar un archivo o directorio para un procesamiento especial. Se utiliza para implementar bastantes características, por ejemplo, puntos de montaje de volumen (la alternativa Unix-ish a las letras de unidad); cruces y enlaces simbólicos; Directorios dispersos de GitVFS; archivos que realmente se almacenan dentro de una imagen WIM; archivos que se han descargado en cinta u otro almacenamiento lento; y así.

Las versiones recientes de OneDrive también usan puntos de análisis para implementar "archivos en línea": al principio son marcadores de posición, pero se descargan a pedido. Las versiones anteriores hicieron esto a nivel de shell, que no funcionaba con muchos programas; usar un punto de análisis y mover la descarga automática al sistema operativo central los hace casi indistinguibles de los archivos locales.

Naturalmente, las etiquetas nuevas generarán un error cuando se acceda a la ruta a través de un sistema operativo anterior; el controlador NTFS no sabe qué hacer con dichos elementos, por lo que simplemente rechaza el acceso. Podría mostrar, por ejemplo, un directorio vacío, pero eso podría provocar rápidamente más daños cuando el sistema operativo anterior intenta escribir en él.

Puede usar fsutil reparsepoint a través de Cmd para ver la etiqueta de punto de análisis, si la hay, que se ha adjuntado a un archivo o directorio.

Gravedad
fuente
11
Tenias razon fsutil reparsepoint query OneDrivemostró los datos y fsutil reparsepoint delete OneDrive"desbloqueó" con éxito el directorio.
Enkryptor
1
¿Los puntos de análisis no son extensibles / instalables? Seguramente, el sistema operativo Windows no es compatible de forma nativa con GitVFS.
usr
3
De hecho, el sistema operativo Windows recibió cambios para admitir GitVFS. IIRC, siempre tuvo un requisito de "versión mínima Win10". Al igual que con OneDrive, supongo que es un soporte parcial: la capacidad del espacio de usuario o de que los controladores personalizados se conecten al sistema operativo ... No sé si significa admitir puntos de análisis arbitrarios, o si significa admitir un punto de análisis específico pero dejar que el La implementación sea instalable.
Gravedad
44
@usr En adelante, ProjFS probablemente será la opción compatible con características similares, ya que puede implementarse únicamente en modo de usuario. Sin embargo, aún no está disponible en una versión estable. ProjFS en sí se implementa (¿fue?) Como un controlador de filtro de sistema de archivos, que ha estado disponible como un punto de extensión para bastantes versiones de Windows (creo que desde XP). OneDrive en sí usa (¿usado?) CldFlt ("Controlador de mini filtro de archivos en la nube").
Bob