2 votos

Buscando una forma limpia de montar un directorio en una unidad HFS+ como un directorio en otra unidad de este tipo en la misma máquina

Necesito montar sin problemas (y automontar, por ejemplo, a través de fstab) un directorio (carpeta) en una unidad para que aparezca en el nivel de línea de comandos y GUI como un directorio en otro, en la misma máquina. Esto es para derrotar a algún software "inteligente" que detecta que los enlaces simbólicos y los alias no son directorios "reales" y se niega a actuar sobre ellos.

En Linux, esto sería trivialmente fácil, con:
mount --bind /path1/source_dir /path2/target_dir
Sin embargo, la versión de mount de Mac OS no soporta esta funcionalidad de bind (de ninguna forma, incluyendo mount -o bind o mount -B ), por lo que puedo determinar. También parece que ninguno de los Macports, Homebrew, o Fink suministran una versión adaptada de mount con tal opción. Algunas herramientas de montaje más especializadas disponibles tampoco parecen estar relacionadas (por ejemplo, xmount es para imágenes de disco, y djmount es para volúmenes de red).

Para ser claro, no estoy tratando de montar un disco o partición como un volumen o como un directorio local, ni de crear un recurso compartido para ser montado arbitrariamente por varios usuarios en varias máquinas. Más bien, quiero montar una carpeta, con propiedad y escritura sólo para un usuario en particular, en un disco HFS+ como si fuera una carpeta en otro disco HFS+, localmente, de una manera que es efectivamente transparente, con los mismos permisos y sin problemas de seguridad/integridad.

Una solución chapucera es crear un recurso compartido CIFS de la carpeta que se va a montar, y (llamando a una variante personalizada y única de smb.conf) limitar sus permisos en Samba de forma justa, de manera que no sea pública, y tenga los mismos permisos que la ubicación de destino, exactamente la máscara de archivos y directorios correcta, etc.; luego montarla de esa manera. Pero esto sería ineficaz, ya que estaría utilizando el protocolo de compartición de archivos de Windows, además de crear un recurso compartido visible que se muestra como un volumen montable desde el servidor SMB, para cualquier persona que pueda acceder a esta máquina a través de SMB/CIFS (incluso si no pueden realmente montarlo). La interfaz gráfica de Mac probablemente también lo representará como un volumen compartido.

-1voto

Shimon Doodkin Puntos 101

Para montar un disco duro en un punto de montaje personalizado:

Puede hacerlo con diskutil mount y el -mountPoint opción. De la página man:

mount [readOnly] [-mountPoint path] dispositivo

Montar un solo volumen. Si se especifica readOnly, el sistema de archivos se monta en modo de sólo lectura, incluso si el sistema de archivos subyacente del volumen y/o el dispositivo y/o el medio soportan la escritura; incluso el incluso el super-usuario no puede escribir en él; esto es lo mismo que la opción rdonly para el montaje (8). Si se especifica un -mountPoint, entonces esa ruta, en lugar de la ruta estándar de que la ruta estándar de /Volúmenes/NombreDeVolumen, se utilizará como la de la tienda de archivos del volumen; un directorio en esa ruta debe existir ya un directorio en esa ruta.

Desde man diskutil , sección "Verbos".

La sintaxis para montar en un punto de montaje personalizado es la siguiente:

diskutil mount -mountPoint /path/to/custom/mountpoint [volume (identifier/UUID/label)]

Tenga en cuenta que /path/to/custom/mountpoint debe ser un directorio Al igual que en el caso de mount y que su identificador/UUID/etiqueta sean específicos del volumen (es decir /dev/diskXsY no /dev/diskX ). El montaje en un punto de montaje personalizado no puede realizarse con diskutil mountDisk y sólo funciona con un solo volumen a la vez.

Desde mi respuesta a Cómo montar un disco por UUID o LABEL en OS X El Capitan .

He probado esto "montando" una memoria USB en un disco duro externo. Como ejemplo,

$ diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.3 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh SSD           499.4 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk1 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk1
   1:                        EFI EFI                     209.7 MB   disk1s1
   2:                  Apple_HFS HDD-1T                  999.8 GB   disk1s2
/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *31.6 GB    disk2
   1:               Windows_NTFS USB-32                  31.6 GB    disk2s1

Como puedes ver, /dev/disk2s1 o USB-32 es el nombre de la memoria USB que voy a montar en el disco duro, /dev/disk1s2 o HDD-1T . Para ello, utilice el -mountPoint opción. Pero primero, asegúrate de que hay un directorio de aterrizaje en el que montar:

$ mkdir /Volumes/HDD-1T/mountpoint

Y ahora, a montar:

$ diskutil mount -mountPoint /Volumes/HDD-1T/mountpoint /dev/disk1s2

El disco montado aparecerá en las siguientes ubicaciones: /Volumes y /Volumes/HDD-1T/mountpoint como USB-32 y mountpoint respectivamente.

Asegúrese de desmontar ( diskutil umount ) su USB-32 equivalente antes de volver a montar en su HDD-1T equivalente.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X