Enlaces duros en High Sierra

He estado usando enlaces duros, como se describe aquí , para vincular mis carpetas importantes a mi Dropbox. Un truco muy útil para realizar copias de seguridad sin estropear su estructura de directorios preferida.

Después de actualizar High Sierra, todos los enlaces duros se corrompieron de tal manera que se perdieron todos los archivos.

Esto me deja con un problema. ¿Cómo hago una copia de seguridad de las carpetas seleccionadas de mi disco duro a través de Dropbox sin cambiar mi organización de archivos original, sin perder toda mi información esta vez? ¿High Sierra admite enlaces duros? Parece que no... ¿qué hacer en tal caso?

actualizar

Entonces, tanto Dropbox como OneDrive necesitan que coloque los archivos en una carpeta dedicada. Parece que los enlaces duros ya no son una opción. En este caso, supongo que debería cambiar a un servicio dedicado que me permita 'verificar' las carpetas existentes en la copia de seguridad.

¿El nuevo sistema de archivos es HFS o APFS?
Tengo curiosidad, pero ¿no sería una solución (aunque bastante elaborada) hacer un script que monitoree los cambios en el sistema de archivos en las dos carpetas y propague cualquier cambio a la otra carpeta? Sin embargo, no sé cómo implementaría eso.

Respuestas (4)

He tenido éxito usando Dropbox con carpetas "fuera de la raíz" usando enlaces simbólicos:

  • Detener Dropbox (salir de la aplicación)

  • Cree un enlace simbólico a la carpeta de destino en cualquier lugar dentro de los árboles de carpetas de Dropbox

  • Reiniciar Dropbox

El enlace se sincroniza en Dropbox como una carpeta en esa posición. ¡Funciona genial!

EDITAR: Desafortunadamente, como @krim menciona en los comentarios a continuación, Dropbox dejó de admitir esta solución a fines de 2019 😿😭

OMG Dropbox admite enlaces simbólicos. Esto es increíble. Estoy comprando Dropbox profesional en este momento a pesar de que mi empleador ofrece OneDrive (que no admite enlaces simbólicos). El futuro yo de una línea de tiempo alternativa (que ahora se sabe que existe) que experimentó la pérdida de datos debido a que no se sincronizó, ¡gracias!
Este ya no es el caso. Dropbox dejó de seguir el comportamiento de los enlaces simbólicos a partir de 2019. ( help.dropbox.com/installs-integrations/sync-uploads/symlinks )

El método que describió implica instalar un comando ln de terceros que le permite pedirle al kernel que cree un enlace físico para un directorio.

El comando ln de coreutils termina ejecutando la función linkat() en el kernel de Darwin, donde el código fuente incluye el siguiente comentario:

/*
 * Normally, linking to directories is not supported.
 * However, some file systems may have limited support.
 */

Por lo tanto, generalmente no se recomienda crear enlaces duros a directorios.

Con respecto a la actualización a High Sierra, su sistema generalmente tendrá su sistema de archivos convertido de HFS+ (que admite estos enlaces físicos en algunos casos) a APFS (que no admite enlaces físicos de directorio). Por lo tanto, no tendrá enlaces duros después de la conversión.

Consulte la documentación de Apple sobre el tema aquí:

https://developer.apple.com/library/content/documentation/FileManagement/Conceptual/APFS_Guide/FAQ/FAQ.html

Especialmente el siguiente párrafo:

Los enlaces físicos de directorio no son compatibles con Apple File System. Todos los enlaces duros de directorio se convierten en enlaces simbólicos o alias cuando se convierte de formatos de volumen HFS+ a APFS en macOS.

Se supone que el programa de conversión convierte estos enlaces duros en enlaces simbólicos (enlaces blandos). Los enlaces simbólicos apuntan a nuevas entradas creadas en /.HFS+ Private Directory Data/.

Sin embargo, parece que puede haber un error relacionado con la conversión, ya que ha experimentado la pérdida de archivos. Esto puede deberse al hecho de que los directorios vinculados rara vez se usan y no se pueden crear con las herramientas estándar proporcionadas por Apple.

Por lo tanto, creo que debería presentar un informe de error con Apple usando Radar.

Gracias, ¿entonces básicamente ya no hay forma de hacer esto?
No con APFS, no. Podría usar una unidad formateada con HFS+ y continuar como antes. Sin embargo, no es posible (que yo sepa) convertir APFS a HFS+ en línea. Luego, deberá copiar todos sus datos en una unidad secundaria (USB o similar), reformatear el disco duro original y luego volver a copiar los datos. Las copias de seguridad de Time Machine probablemente serían una manera fácil de hacer esto.
Como un usuario reciente de Linux cambió a Mac, no uso la máquina del tiempo ya que todas mis unidades de respaldo externas están bien organizadas por tema y no están formateadas para el uso de Mac. Desafortunadamente, tengo grandes problemas para acceder a mi disco NFTS y EXT3 en estos días, pero ese es otro tema. Apple... por favor haz que tu fs sea decente.
Los enlaces duros de directorio tampoco se recomiendan en Linux. De hecho, la creación de ellos se limita deliberadamente al usuario root, e incluso entonces la mayoría de los sistemas de archivos no los admiten. Por ejemplo, el fsck para ext3 se quejará de esto por lo que recuerdo. Ni siquiera estoy seguro de que btrfs admita su creación en primer lugar.
Con respecto al acceso a unidades NTFS y ext3 desde macOS, esto es totalmente posible. Simplemente puede buscar soluciones en AskDifferent (existen varias).
¿Cómo hacer .y ..trabajar en APFS entonces? Son solo enlaces duros al directorio apropiado y ls -imuestran los mismos números de inodo, como se esperaba.
@blm Esos son casos especiales, es decir, no enlaces duros de directorio genéricos como era la pregunta aquí. .siempre apunta al directorio actual, por lo que no es una información de inodo que se almacena por separado en el disco. ..siempre apunta al directorio principal, pero no se implementa como una estructura de enlace fijo en el disco. En cambio, cada inodo tiene un campo especial nombrado parent_idcon un puntero de inodo al directorio principal. Los enlaces duros reales se almacenan en estructuras hermanas en el disco.

Puede hacer lo contrario: mueva sus carpetas a la carpeta de Dropbox, luego cree enlaces simbólicos a las ubicaciones que desee.

Ejemplo :

mv ~/Documents/cats ~/Dropbox/cats
ln -s ~/Dropbox/cats ~/Documents/cats
Parece un poco complicado. Estoy acostumbrado a usar la terminal para navegar a través de mis documentos, esto cambiaría la forma en que voy a mis archivos. Además, muchos de mis archivos son códigos que pueden tener algunos enlaces entre sí que pueden no funcionar más.

Sucedió en esta publicación cuando estaba tratando de encontrar una manera de automatizar la eliminación de enlaces duros. Pensé en agregar mis dos centavos.

He estado usando Sugarsync durante unos 5 años para evitar exactamente el problema que describes. Simplemente hace una copia de seguridad de mis archivos en su estructura de directorio original. Ha funcionado bien.