NTFS のマウント

Windows XP のドライブが NTFS なので,Linux から NTFS をマウントしてみる.
C ドライブである /dev/hda1 を /mnt/c に,D ドライブである /dev/hda2 を /mnt/d にマウントすることにする.

まず root から

# mount -t ntfs /dev/hda1 /mnt/c

としたが,日本語のフォルダ名を(まるで存在しないかのように)表示できなかった.
charset を指定すればいいことが分かったので,

# mount -t ntfs -o iocharset=euc-jp /dev/hda1 /mnt/c

としたが,wrong option と怒られた.
どうも,カーネルのオプションで charset の指定を有効にする必要があるらしい.

FileSystem->Native Language Support->Japanese Charset

というオプションを有効にしてカーネルを再構築すると,日本語のフォルダ名を表示しようとはするが ??? のような表示になった.
root では表示できなかったが user では正しく表示できた.
どうも環境変数 LANG が指定されていないのが原因らしい.
user では LANG=ja_JP.eucJP と指定されていた.
なお,環境変数 LANG が指定されていない状況では canna による日本語変換中でも表示が乱れるようだ.

また,user からは /mnt/c 以下が開けなかったので,umask=0222 というオプションを付けてマウントしたら正常に開けるようになった.

Linux の起動時に自動的にマウントできるように /etc/fstab を編集した.
NTFSパーティションに書き込むつもりはなかった(ファイルシステムを破壊しそうで恐い)ので,ro (read only) のオプションを付けて,結局は以下の行を追加した.

/dev/hda1 /mnt/c ntfs ro,iocharset=euc-jp,umask=0222 0 0
/dev/hda2 /mnt/d ntfs ro,iocharset=euc-jp,umask=0222 0 0
  • 参考ページ

NTFS パーティションを起動時に mount する