FreeBSD 8.0でNTFSを読み書きする

システムに標準で入ってるmount_ntfsでは書き込みに色々と制約があるので他の方法をとる。
portsにあるsysutils/fusefs‐ntfsを使えばかなり自由に読み書きできる。ja_JP.UTF-8な環境において日本語のパスも問題なく扱える。

インストール手順

  1. sysutils/fusefs‐ntfsのインストール

    # portinstall sysutils/fusefs‐ntfs
    


  2. fuseカーネルモジュールをロード。
    /etc/rc.confに以下を追加

    fusefs_enable="YES"
    

    モジュールのロード

    # /usr/local/etc/rc.d/fusefs start
    

    /etc/rc.confにロードの設定を書いたので、次からはOSの起動時に自動的にロードしてくれる。


  3. NTFSのマウント
    マウントするデバイスを/dev/ntfs/win*1、マウントポイントを/mntとすると

    # ntfs-3g /dev/ntfs/win /mnt
    

    ntfs-3gの代わりにmount_ntfs-3gでもOK。


  4. とりあえずこれでマウントはできるようになった。

/etc/fstabを使ってマウントさせたい

/etc/fstabにマウントの設定を書いておけば、OS起動時に自動でマウントしてくれる。また、mountコマンドで手軽にマウントできる。
/etc/fstabに以下を追加*2

/dev/ntfs/win		/mnt		ntfs	rw,late		0	0

それからmount_ntfsをmount_ntfs-3gへのシンボリックリンクにする。

# mv /sbin/mount_ntfs /sbin/mount_ntfs-kern
# ln -s /usr/sbin/mount_ntfs-3g /usr/sbin/mount_ntfs

これでOK。

*1:GEOMがNTFSのボリュームラベルから自動的に作ってくれる

*2:/usr/ports/sysutils/fusefs-ntfs/files/README.FreeBSD