« HP DL360G5 + HP MSA1000 + CentOS 5 + LVM | メイン | MySQL5.0 バイナリログの保存先が変わった? »

CentOSでNTFSの外付けHDDをマウント

CentOS 5のサーバで、NTFSでフォーマットされたUSB外付けハードディスクをマウントしたときの手順です。
デフォルトのOSインストールでは、NTFSはマウントできないのですね。

・デバイスファイル名の確認
まず、サーバにUSBディスクを接続します。
デバイスファイル名は、/var/log/messages に記録されます。
以下の例では、/dev/sdb1 であることがわかります。

-- /var/log/messages
Oct 2 14:11:48 test-svr kernel: SCSI device sdb: 1250263728 512-byte hdwr sectors (640135 MB)
Oct 2 14:11:48 test-svr kernel: sdb: Write Protect is off
Oct 2 14:11:48 test-svr kernel: sdb: assuming drive cache: write through
Oct 2 14:11:48 test-svr kernel: SCSI device sdb: 1250263728 512-byte hdwr sectors (640135 MB)
Oct 2 14:11:48 test-svr kernel: sdb: Write Protect is off
Oct 2 14:11:48 test-svr kernel: sdb: assuming drive cache: write through
Oct 2 14:11:48 test-svr kernel: sdb: sdb1
Oct 2 14:11:48 test-svr kernel: sd 2:0:0:0: Attached scsi disk sdb
Oct 2 14:11:48 test-svr kernel: sd 2:0:0:0: Attached scsi generic sg3 type
--

念のため、fdiskコマンドでディスク情報を確認します。
ファイルシステムがNTFSであることがわかります。

 # /sbin/fdisk -l /dev/sdb

Disk /dev/sdb: 640.1 GB, 640135028736 bytes
255 heads, 63 sectors/track, 77825 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot Start End Blocks Id System
/dev/sdb1 1 77825 625129281 7 HPFS/NTFS

・マウント試行
このままの状態で、試しにNTFSとしてマウントしようとすると、「NTFSというファイルシステムは知らない」と怒られます。

 # mount -t ntfs /dev/sdb1 /mnt/usbdisk

mount: unknown filesystem type ‘ntfs’

・調査 - ググる
CentOS 5では、デフォルトインストールの状態では、NTFSを認識しないようです。
調べたところ、fuse, fuse-ntfs-3g, dkms, dkms-fuse といったパッケージをインストールすると、NTFSを認識することがわかりました。

(参考)
Domain Name Yahoo, Easy Help Troubleshoot Your Linux Box:
http://www.domainnameyahoo.info/failed-to-mount-ntfs-on-centos/

r271-635 An Archive Area, CentOSでfuseモジュールを使いNTFSにアクセス
http://netlog.jpn.org/r271-635/2008/06/centosfusentfs.html

参考サイトでは、centosplusリポジトリから、これらをインストールできる、という記述がありましたが、centosplusリポジトリをenableにしても、yumコマンドではパッケージが見つかりませんでした。
そのため、rpmパッケージファイルを取得してからインストールすることにしました。

・パッケージファイルの取得
DAG Packagesなどから、必要なRPMパッケージファイルを取得します。

DAG Packagesなどから、必要なfuse, fuse-ntfs-3g, dkms, dkms-fuseのパッケージファイルを取得します。
Redhat5向けのものがそのまま使用できます。
dag.wieers.com のdkms-fuse だけは、なぜかリンクが切れているので、rpmfind.net から取得します。

http://dag.wieers.com/rpm/packages/
http://rpmfind.net/linux/RPM/dag/redhat/8.0/i386/dkms-fuse-2.7.2-1.nodist.rf.noarch.html

・インストール
rpmコマンドでインストールします。

 # rpm -ivh fuse-2.7.3-1.el5.rf.i386.rpm \
fuse-ntfs-3g-1.913-1.el5.rf.i386.rpm \
dkms-2.0.17.6-1.el5.rf.noarch.rpm

 # rpm -ivh dkms-fuse-2.7.2-1.nodist.rf.noarch.rpm

・マウント
まず、カーネルにfuseモジュールを読み込ませます。

 # modprobe fuse

マウントします。

 # mount -t ntfs-3g /dev/sdb1 /mnt/usbdisk

「-o force で強制的にマウントするとよい」というアラートが表示されるので、そのとおりにします。

 # mount -t ntfs-3g /dev/sdb1 /mnt/usbdisk -o force

dfコマンドなどで、マウントされたことを確認します。

・アンマウント

 # umount /mnt/usbdisk

デバイスビジーでアンマウントに失敗する場合は、強制的に実行するオプションをつけます。

 # umount -l -f /mnt/usbdisk

・OS起動時の自動マウント
OS起動時に自動マウントしたいのであれば、/etc/fstab に追記するとよいでしょう。

-- /etc/fstab
/dev/sdb1 /mnt/usbdisk ntfs defaults 0 0
--

(2011.11.16追記)
上記のfuse-ntfs-3g, fuseに加えて、ntfsprogsパッケージをインストールすると、ディスクをNTFSでフォーマットできます。
パッケージはRPMforge改めRepoforgeなどからOSの種類、バージョンに適したファイルを取得します。

http://pkgs.repoforge.org/ntfsprogs/

# rpm -ivh ntfsprogs-1.13.1-1.el5.rf.i386.rpm

もしくは、Repoforgeのリポジトリを追加済みであれば、yumコマンドでインストールできます。

# yum install ntfsprogs

mkntfsコマンドを使って、NTFSでフォーマットします。

# mkntfs /dev/sdb1


これにより、例えばAmazon EC2で、NTFSでフォーマットしたEBSボリュームをLinuxサーバとWindowsサーバ間でそのまま引き継いで使用する、というような使い方ができます。

EBSボリュームをLinuxサーバにアタッチしてNTFSでフォーマット、マウント
→Linuxサーバ上で必要な処理を実行し、EBSボリュームにデータを保存し、アンマウント、デタッチ
→そのEBSボリュームをWindowsサーバにアタッチ、マウント
→Windowsサーバ上でEBSボリューム上のデータに対してWindowsプログラムによる必要な処理を実行する。

もちろん、WindowsサーバでフォーマットしてからLinuxサーバに引き継ぐこともできます。

トラックバック

このエントリーのトラックバックURL:
http://antas.jp/mtsys/mt-tb.cgi/515

この一覧は、次のエントリーを参照しています: CentOSでNTFSの外付けHDDをマウント:

» CentOSでNTFSの外付けHDDをマウント from Confluence: GxPインフラ
Cent OS 5 は標準で NTFS パーティションをマウントできない。このため以下の手順で実現する。 CentOSでNTFSの外付けHDDをマウント [詳しくはこちら]

» CentOS 5.5へのNTFS外付けHDDのマウント from IceMoon
Windows端末でデータの保存用に使っていたUSBの外付けHDDがあったのですが、データをCentOSで利用しているSambaサーバーに移動させたいと思... [詳しくはこちら]

コメント

rpmforgeを利用すればyumからインストール可能ですよ.
http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

ANTAS(アンタス)