Установка NTFS-3G с режимом чтения и записи на OS X Lion с помощью MacPorts

Установка NTFS-3G с режимом чтения и записи на OS X Lion с помощью MacPorts

У меня есть прекрасно работающий MacPorts на Lion. Когда я запускаю

sudo port install ntfs-3g

он компилируется без ошибок. Однако, когда я подключаю внешний диск, отформатированный в NTFS, он становится доступным только для чтения. И нет значка настроек для NTFS-3G, как в моей установке Snow Leopard. Активен ли драйвер NTFS-3G? Как это выяснить и исправить?

ОБНОВЛЯТЬ: MacFUSE был установлен вместе с NTFS-3G в качестве зависимости, и я перезагрузился после установки. Команда ntfs-3g доступна в командной строке, но мне бы очень хотелось, чтобы все диски NTFS монтировались с ее помощью автоматически и с поддержкой чтения-записи.

решение1

Проверьте это, там подробно описано, как заставить ntfs-3g работать через MacPorts, а также как заставить его работать через старую версию NTFS-3G с исправленной версией MacFuse:

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

Причина, по которой вы не смогли заставить ntfs-3g работать через MacPorts, заключается в том, что ntfs-3g по-прежнему зависит от MacFuse по умолчанию. Удалите порты ntfs-3g и macfuse, затем установите fuse4x, а затем ntfs-3g. Вот так:

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

Вам придется использовать некоторые особые варианты монтажа, проверьте пост выше.

решение2

MacFuse предоставляет только 32-битный интерфейс, который не работает под 64-битным ядром Lion. Прочтите системный журнал для получения соответствующих сообщений об ошибках.

Вам придется подождать, пока MacPort изменит зависимость, чтобы использовать более новую версию fuse4x (билет).

решение3

Фернандо Фигейредо упоминается и ссылается напочтаоб использовании сборки MacPorts ntfs-3g, но когда я попытался зайти на страницу, она оказалась сломанной (404). Однако мне удалось извлечь ее из кэша Google. Я опубликовал важную часть из конца поста в блоге здесь. В основном, чтобы я мог найти ее сам позже. :-)

Инструкции:

  1. Установить ntfs-3g через портыsudo port install ntfs-3g
  2. Отменить встроенную поддержку NTFS в Mac OSsudo mv /sbin/mount_ntfs /sbin/mount_ntfs.orig
  3. Создайте скрипт оболочки для использования ntfs-3g (см. ниже)
  4. Исправить права доступа к файламsudo chmod 0755 /sbin/mount_ntfs
  5. Исправить права собственности на файлsudo chown 0:0 /sbin/mount_ntfs
  6. Обновить скрипт USER_IDпо умолчанию с выводом изid -u
  7. Обновить скрипт GROUP_IDпо умолчанию с выводом изid -g

Содержимое скрипта оболочки для шага 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 $?;

Связанный контент