10.4.*でのみ有効です。10.3.*でも動作するかも知れませんが、検証はしていません。注意:このページの内容については、何ら動作を保証するものではありません。使用するときは個人の責任でお願いします。Campを使って、Windowsを動作させることができますので、NTFSでフォーマットされたHD(パーティション)を使うことも多くなっています。XではNTFSフォーマットされたパーティション上のファイル(以下、NTFSファイルということにします)を読み込むことは出来ても、書き込むことが出来ません。X上のファイルをNTFSパーティションにコピーしようとすると、ParallelsやVmware経由で移動したり、ネットワークドライブに一旦コピーしたあと、Windowsを立ち上げてコピーするなど、いろいろと面倒です。いうことで、ここではNTFSパーティションをマウントして、Finder上から普通に読み書きできる方法を紹介します。MacFUSEとntfs-3gFUSEというのは、ユーザ空間で動作するプログラム(要するにドライバなどの制約の多い特権プログラムではない普通のプログラム)のために、ファイルシステム構築のための機能(API)を提供するものです。その使いやすさのため、現在、非常に多くのファイルシステムがFUSEを使って作られています。ntfs-3gはそのファイルシステムの一つで、その名の通り、NTFSファイルの読み書きができるファイルシステム(ドライバ)です。MacFUSEというのは、元々Linux用に作られたFUSEのMacへの移植版です。MacFUSEとntfs-3gのインストールMacFUSEはバイナリパッケージが提供されていますので、それをダウンロードして、普通のアプリケーションをインストールするのと同様に、インストーラを動かしてインストールすれば終わりです。ソースコードも提供されていますので、自分でビルドして動かすこともできますが、MacFUSEだけでなく、glibやgettextなどいくつもインストールしないといけませんので、素直にバイナリをインストールしたほうが無難だと思います。一つだけ、MacFUSEのバージョンが0.1.7以前の場合、BootCampを使用しているとき、システム設定の起動ディスクにWindowsの起動パーティションが現れなくなってしまうことがあるそうですので、MacFUSEの0_READ_THIS_FIRSTのページを参考に修正してください。簡単に言うと、/System/Library/Filesystems/fusefs.fs/Contents/Info.plistのNTFSとなっているところをNTFS-3gと直せばよいようです。次に、ntfs-3gですが、これは元々Linux用に作られており、Mac用のバイナリパッケージは正式にはありません。探せばある(こことか)ようですが、うまく動かないという話もありますし、(こっちはわりと簡単なので)自分でbuildしたほうがよいと思います。いうことで、ntfs-3gのビルド方法です。Forumsのこの投稿のようにすればよいのですが、最近のバージョンではうまくいかないところもありますので、多少修正しながら、順を追って説明します。ntfs-3gの最新版ソースをntfs-3gのページからダウンロードし、適当な場所に展開します。現在の最新版はntfs-3g-0.20070118-BETA.tgzですので、以下はこれを例に話を進めます。Shellはtcshを使っていますので、それ以外を使っている人は適当に読み替えてください。wgetやXCodeなどはインストールされていることを前提にしています。inの先の行のlinux*)となっているところを、*)に変更します。Xでは持っていない関数getresuid()を使っていますので、これをgetuid()とgeteuid()で置き換えます。euid;で、置き換えます。これだけで、問題なくコンパイルでき、動作はしますが、毎回エラー(ワーニング)メッセージが表示され、煩わしいですので、以下の変更を加えることにします。FSTYPE_FUSEBLK;で、置き換えます。これで材料がそろいましたので、以下のように、ビルド、インストールします。:%使い方(マウント方法)以下の手順でマウントします。デバイス名を知るマウント時にデバイス名が必要になりますから、まずそれを調べます。デバイス名を知るには、ディスクユーティリティの"情報をみる"を使う方法もありますが、dfコマンドなどでも簡単に知ることができます。:%上記の場合、/dev/disk0s2がデバイス名です。XではNTFSパーティションを読むことはできますので、通常、立ち上がっているときはマウントされた状態になっていますので、ntfs-3gでマウントする前に、まずマウントを解除する必要があります。マウントの解除はディスクユーティリティのマウント解除機能を使ってもできますが、diskutilコマンドを使うほうが後々便利です。具体的には以下のようになります。/Volumes/Untitled%/Volumes/Untitledは、実際の環境のマウントポイントに合わせて変更してください。BootCampを使って、素直にWindowsをインストールした場合、ボリューム名はUntitledになっていると思います。diskutilではなくumountコマンドを使っても、一見、アンマウントされたようになりますが、Finder上からそのボリュームアイコンは消えませんし、/Volumesディレクトリにはディレクトリが残ったままで、中途半端な状態になってしまいますので、使わないようにしてください。マウントマウント先のディレクトリを作成し、そこにNTFSパーティションをマウントします。以下のようになります。ping_diskarb,volname="WinSys"%これで、デスクトップにWinsysボリュームが現れるはずです。X標準のマウントポイントにあわせたいということと、起動時のマウントともあわせたいということもあって、sudoを使って/Volumesディレクトリ下にマウントしています。X起動時のマウント起動時には通常DiskArbitration(diskarbitrationd)が見つけた(マウントできる)パーティションはすべてマウントされてしまいます。/etc/fstabは見ているようで、そこに特定のパーティションを自動マウントしないように指定しておけば、起動時にマウントされないようにすることができます。Xのmountコマンドは/etc/fstabを見に行かないようです。mountで見る限りは見に行くことになっていますが...)それなら、/etc/fstabにうまく指定すれば、逆に、ntfs-3gを使ってマウントさせることができるのではないかと、ちょっと試してみましたが、これは無理なようです。いうことで、/etc/fstabの設定で、DiskArbitrationがNTFSディレクトリを読み取り専用として自動マウントしないようにし、launchdを使って、ntfs-3gでマウントするようにしてみました。具体的にはまず、/etc/fstabファイルを(なければ)作成し、次のような行を書いてセーブします。Xから見えない?)ようで、書けませんでした。デバイス名ではうまく動かないようです。(diskarbitrationdのmanページ参照)次に、マウントを実行するためのコマンドファイルを作成します。(これをmountwinとしておきます。コマンドファイルの中身は以下のようなものです。ping_diskarb,volname="WinSys"上記のif文の中は、万一マウントが既にされていたり、マウントポイントのディレクトリがすでに存在していた場合に、それらを念のため解除するために存在します。このファイルを、/usr/local/sbin/mountwinとして保存します。実行権は設定しておいてください。最後に/Library/LaunchDaemonsにmountwin.plistという名前で、以下の内容のファイルを作成します。X起動時にNTFSパーティションを書き込み可能なボリュームとしてマウントできるようになります。外付けのHDのNTFSパーティションを起動時にマウントしようとすると、どうもうまくできないようです。launchdではなく、SystemStarterを使って、もっと起動の後ろの方でマウントするようにすればうまくいくかも知れませんが、当面私には必要性は薄く、やってみていないので、どうなるかは分かりません。