AutomatorのQuick Action(サービス)を使います。(色々確認はしましたが、どんな環境でもどんなボリューム名に対してもうまく動くかは自信がありません、、、自分の環境では動きました)
準備
私の環境は、macOS 10.14.5とmacOS 10.13.6です。 準備作業中に再起動が必要かもしれません(?)- Fuse for macOS をインストール
- Homebrewを使って、
$ brew install ntfs-3g
(FUSEのライセンスの関係でhomebrewからntfs-3gがdeprecatedされ、例えばこの代替手段を使う必要があるかも) - システム環境設定 -> 通知 -> Script Editor にて、バナー等を選択。(これをしないとAutomatorのサービスの通知が見れない)
Automatorの中身
- 保存名: Make NTFS Vol Writable
- Service receives selected
folders
inany application
- Run Shell Script
Shell:/bin/bash
Pass input:as arguments
######### get only directory(volume) name from full path ######### vol=$1 vol_name_orig="`echo ${vol} | awk -F "/" '{ print $NF }'`" df_h_grep=`df -h | grep "$vol_name_orig"` ######### get node name ######### node_name=`echo ${df_h_grep} | awk -F "/" '{ print $3 }'| awk '{ print $1}'` is_it_ntfs=`diskutil info ${node_name} | grep -c NTFS` # check vol is NTFS if [ ${is_it_ntfs} -eq 0 ]; then osascript -e 'display notification "The format is not NTFS." with title "Make NTFS Vol Writable"' exit fi ######### unmount and remount with ntfs-3g ######### diskutil unmount ${node_name} vol_name=${vol_name_orig//\ /\\\\\ } #replace " " with "\\ " for apple script osascript -e "do shell script \"mkdir -p /Volumes/$vol_name;/usr/local/bin/ntfs-3g /dev/$node_name /Volumes/$vol_name -olocal -oallow_other -o auto_xattr\" with administrator privileges"
使い方
- NTFSボリュームのアイコンを右クリック
- Make NTFS Vol Writableを押す("サービス"配下かも)
- パスワード入力 or タッチidを使う
- 書き込み可能になり、OSXFUSE Volume 0 (ntfs-3g)などという名前で表示される
(パスは、/Volumes/ボリューム名 となる。)
背景
NTFSのデバイス(disk1s2)を、書き込める状態で/Volumes/foobarにマウントするコマンドは、
$ sudo ntfs-3g /dev/disk1s2 /Volumes/foobar -olocal -oallow_other -o auto_xattr
ですが、長いので右クリックメニューにしました。