Instale NTFS-3G con lectura y escritura en OS X Lion usando MacPorts

Instale NTFS-3G con lectura y escritura en OS X Lion usando MacPorts

Tengo MacPorts en Lion que funcionan muy bien. cuando corro

sudo port install ntfs-3g

se compila sin errores. Sin embargo, cuando conecto una unidad externa formateada en NTFS, es de sólo lectura. Y no hay ningún ícono de Preferencias para NTFS-3G, como lo había en mi instalación de Snow Leopard. ¿Está activo el controlador NTFS-3G? ¿Cómo puedo averiguarlo y solucionarlo?

ACTUALIZAR: MacFUSE se instaló junto con NTFS-3G como dependencia y reinicié después de la instalación. El comando ntfs-3g está disponible en la línea de comando, pero realmente me gustaría que todas las unidades NTFS se monten usándolo automáticamente y con soporte de lectura y escritura.

Respuesta1

Verifique esto, detalla cómo hacer que ntfs-3g funcione a través de MacPorts, y también cómo hacer que funcione a través de una versión anterior de NTFS-3G con una versión parcheada de MacFuse:

http://fernandofig.wordpress.com/2011/08/08/ntfs-write-support-on-osx-lion-with-ntfs-3g-f/

La razón por la que no pudo hacer que ntfs-3g funcionara a través de MacPorts es que ntfs-3g todavía depende de MacFuse de forma predeterminada. Desinstale los puertos ntfs-3g y macfuse, luego instale fuse4x y luego ntfs-3g. Como esto:

sudo port uninstall macfuse ntfs-3g
sudo port clean --all macfuse ntfs-3g
sudo port install fuse4x
sudo port install ntfs-3g

Tendrás que usar algunas opciones específicas para el montaje, consulta la publicación anterior.

Respuesta2

MacFuse sólo proporciona una interfaz de 32 bits que no funciona con el kernel Lion de 64 bits. Lea el registro del sistema para ver mensajes de error relacionados.

Tendrás que esperar a que MacPort cambie la dependencia para usar el fuse4x más nuevo (boleto).

Respuesta3

Fernando Figueiredo mencionó y vinculó a uncorreosobre el uso de la compilación ntfs-3g de MacPorts, pero cuando intenté ir a la página, estaba rota (404). Sin embargo, pude recuperarlo del caché de Google. He publicado la parte importante del final de la publicación del blog aquí. Básicamente para poder encontrarlo yo mismo más tarde. :-)

Instrucciones:

  1. Instalar ntfs-3g a través de puertossudo port install ntfs-3g
  2. Dejar de lado el soporte ntfs integrado de Mac OSsudo mv /sbin/mount_ntfs /sbin/mount_ntfs.orig
  3. Cree un script de shell para usar ntfs-3g (ver más abajo)
  4. Arreglar permisos de archivossudo chmod 0755 /sbin/mount_ntfs
  5. Arreglar la propiedad del archivosudo chown 0:0 /sbin/mount_ntfs
  6. Actualizar USER_IDel valor predeterminado del script con la salida deid -u
  7. Actualizar GROUP_IDel valor predeterminado del script con la salida deid -g

El contenido del script de shell para el paso 3:

#!/bin/bash
VOLUME_NAME="${@:$#}"
VOLUME_NAME=${VOLUME_NAME#/Volumes/}
USER_ID=501
GROUP_ID=20
TIMEOUT=20
if [ `/usr/bin/stat -f "%u" /dev/console` -eq 0 ]; then
        USERNAME=`/usr/bin/defaults read /library/preferences/com.apple.loginwindow | /usr/bin/grep autoLoginUser | /usr/bin/awk '{ print $3 }' | /usr/bin/sed 's/;//'`
        if [ "$USERNAME" = "" ]; then
                until [ `stat -f "%u" /dev/console` -ne 0 ] || [ $TIMEOUT -eq 0 ]; do
                        sleep 1
                        let TIMEOUT--
                done
                if [ $TIMEOUT -ne 0 ]; then
                        USER_ID=`/usr/bin/stat -f "%u" /dev/console`
                        GROUP_ID=`/usr/bin/stat -f "%g" /dev/console`
                fi
        else
                USER_ID=`/usr/bin/id -u $USERNAME`
                GROUP_ID=`/usr/bin/id -g $USERNAME`
        fi
else
        USER_ID=`/usr/bin/stat -f "%u" /dev/console`
        GROUP_ID=`/usr/bin/stat -f "%g" /dev/console`
fi

/opt/local/bin/ntfs-3g \
         -o volname="${VOLUME_NAME}" \
         -o local \
         -o negative_vncache \
         -o auto_xattr \
         -o auto_cache \
         -o noatime \
         -o windows_names \
         -o user_xattr \
         -o inherit \
         -o uid=$USER_ID \
         -o gid=$GROUP_ID \
         -o allow_other \
         "$@" &> /var/log/ntfsmnt.log

exit $?;

información relacionada