使用 MacPorts 在 OS X Lion 上安裝具有讀寫功能的 NTFS-3G

使用 MacPorts 在 OS X Lion 上安裝具有讀寫功能的 NTFS-3G

我在 Lion 上有一台運作良好的 MacPort。當我跑步時

sudo port install ntfs-3g

它確實編譯沒有錯誤。但是,當我連接 NTFS 格式的外部磁碟機時,它是唯讀的。並且沒有 NTFS-3G 的首選項圖標,就像我的 Snow Leopard 安裝中那樣。 NTFS-3G 驅動程式是否處於活動狀態?我怎樣才能找到並解決這個問題?

更新:MacFUSE 與 NTFS-3G 作為依賴項一起安裝,安裝後我重新啟動。 ntfs-3g 命令可在命令列中使用,但我真的希望使用它自動安裝所有 NTFS 磁碟機並提供讀寫支援。

答案1

檢查一下,它詳細介紹瞭如何透過 MacPorts 使 ntfs-3g 工作,以及如何透過帶有修補版本的 MacFuse 的舊版本 NTFS-3G 工作:

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

您無法透過 MacPorts 使 ntfs-3g 工作的原因是 ntfs-3g 預設情況下仍然依賴 MacFuse。卸載ntfs-3g和macfuse ports,然後安裝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 更改依賴關係才能使用較新的 fusion4x ()。

答案3

費爾南多·菲格雷多 (Fernando Figueiredo) 提到並連結到郵政關於使用 MacPorts 的 ntfs-3g 版本,但當我嘗試造訪該頁面時,它被破壞了(404)。不過我可以從谷歌快取中獲取它。我已經在這裡發布了部落格文章末尾的重要部分。基本上這樣我以後就可以自己再找到它。 :-)

指示:

  1. 透過連接埠安裝ntfs-3gsudo port install ntfs-3g
  2. 放棄內建 Mac OS ntfs 支持sudo mv /sbin/mount_ntfs /sbin/mount_ntfs.orig
  3. 建立 shell 腳本以使用 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的shell腳本內容:

#!/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 $?;

相關內容