以前LinuxからNTFSファイルシステムを操作するのにntfsprogsを紹介したが、NTFSファイルシステムを読み書きするドライバとしてはntfs-3gってやつもある。
何が違うのかよくわからなかったのでちょっと調べてみた.
とりあえず、調べてみてわかったのは、ntfs-3gはNTFSファイルシステムの読み書きに特化しているようだ。
それに対して、ntfsprogsはNTFSファイルシステムに対して何でも屋を目指している模様。
ntfsprogsは当然NTFSのファイルシステムの読み書きもサポートしているので、ntfs-3gはいらない子のようにおもえるが、ntfs-3gの方は読み書きに特化しているだけあって、その分野においてはntfsprogsよりも安定しているように見える。
以前はntfs-3gはCPUリソースをやたらと食ったり、アクセスが妙に遅かったりしてダメな子っぽい感が強かったのだが、2009.3.8でその辺がだいぶ改善された模様。
NTFSをブートパーティションにしたりとかもできる。
まあ、別にしたいとおもうかどうかは別にしておいてだけど。
で、違いは結局のところ要するにどうなのかというと、
- ntfs-3g — NTFSファイルシステムアクセスドライバ
- ntfsprogs — NTFSファイルシステム操作ユーティリティ群(アクセスドライバも含む)
みたいなかんじ。
んで、そもそもなんでntfs-3gに目をやったかというと、HALがどうもntfsprogsじゃNTFSファイルシステムをさっくりとは認識してくれないからだった。
haldの設定いじればなんとかなりそうな気もするが、面倒くさいので触りたくないので、試しにntfs-3gを入れてみたらさっくりいったっていう。
ちなみに、ntfsprogsだけの状態だと以下のような感じのメッセージがでた。
ボリュームをマウントできません
Cannot get volume.fstype.alternative
NTFSファイルシステムの読み書きだけが目的なら、ntfs-3gだけで事足りるだろう。
NTFSファイルシステムのリサイズとか、NTFSファイルシステムの作成とかもしたいならntfsprogsも入れる感じがよいかと思われる。
(余談だがntfsprogsの方々はいつになったらCHKDSKを実装してくれるのかなーと首を長くしている)
ちなみに、使い方はかなり簡単である。
マウントは以下のような感じ。
ntfs-3g /dev/sda1 /mnt/windows
または
mount -t ntfs-3g /dev/sda1 /mnt/windows
/etc/fstabに書く場合は以下のような感じ
/dev/sda1 /mnt/windows ntfs-3g defaults 0 0
アンマウントは当然umountたたけばいい。
オプションに関してはman ntfs-3gをやってみたほうが早い。