LinuxでNTFSのHDDをマウントする

LinuxNTFSフォーマットの外付けHDDをマウントしようとしたところ、ファイルの読み込みはできても、ファイルの書き込みができませんでした。どうやら標準のカーネルでは無理なようです。そこでntfs-3gというものを使って解決しました。

まずは入手。DebianとかUbuntuなら次のコマンドだけでインストールできます。

apt-get install ntfs-3g

そしてマウント。ここでのポイントは、ファイルのタイプとエンコードをしっかり指定してやることです。ntfs-3gでは、エンコードが合っていないファイルは文字化けするのではなく、そもそも表示されません。エンコードを指定するのを忘れないでください。

また、このファイルの管理者(uid,gid)とファイル権限(umask)を指定することも大切です。以下のコマンドからuid、gid、umaskの項目を外してマウントすれば分かりますが、ファイルの所有者や権限は固定です。これはchownやchmodといったコマンドでは修正できないようです。私の場合、ファイルの所有者はrootユーザー、ファイルの権限は777になっていました。しょうがないのでマウントするときにユーザー名(uid)とグループ名(gid)、さらにはファイル権限の制限(umask)も設定してしまいましょう。user1、group1の部分は自分で適当なユーザー名とグループ名に変更してください。

sudo mount -t ntfs-3g -o iocharset=UTF8,uid=user1,gid=group1,umask=022 /dev/sdb1 /mnt/share

上記のようにすればとりあえず利用できますが、あらかじめこれを登録しておいて、簡単にマウントできるようにしたい人は、/etc/fstabに次の一行を加えてください。

/dev/sdb1       /home/share/usb ntfs-3g defaults,iocharset=UTF-8,uid=user1,gid=group1,umask=022  0       2