過去にLinux(CentOS)のサーバに、NTFSのディスクをマウントする必要があったので、その時の解決策をメモする。
例えば、CentOSのサーバから、WindowsPCにデータを外付けHDDで移行するために、
NTFSの外付けHDDをCentOSのサーバでも認識させる必要があるシーンにおいて活用できる。
CentOSサーバ — 外付けHDD — WindowsPC が構成のイメージだ。
1. 前提
CentOSのバージョン
1 2 |
$cat /etc/redhat-release<br> CentOS release 5.6 (Final) |
カーネルのバージョン
1 2 |
$cat /proc/version<br> Linux version 2.6.18-238.9.1.el5 (mockbuild@builder10.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-50)) |
ディスクの状態
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$sudo fdisk -l Disk /dev/sda: 10.7 GB, 10737418240 bytes 255 heads, 63 sectors/track, 1305 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 13 104391 83 Linux /dev/sda2 14 1305 10377990 8e Linux LVM Disk /dev/sdb: 2116 MB, 2116550656 bytes 255 heads, 63 sectors/track, 257 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 * 1 258 2066880 7 HPFS/NTFS Partition 1 has different physical/logical endings: phys=(256, 254, 63) logical=(257, 82, 17) |
/dev/sdb1がusbdiskでNTFSファイルシステム。今回、このusbdiskをCentOSにマウントしてみる。
とりあえず、何もパッケージを入れない状態でマウントしてみると、失敗する。
1 2 |
$sudo mount -t ntfs /dev/sdb1 /mnt/usbdisk mount: unknown filesystem type \'ntfs\'; |
2. 解決方法
必要なパッケージをインストール
必要なパッケージは以下の5つである。
- dkms-2.1.1.2-1.el5.rf.noarch.rpm
- dkms-fuse-2.7.3-1.el5.rf.noarch.rpm
- fuse-2.7.4-8_12.el5.i386.rpm
- fuse-ntfs-3g-2013.1.13-2.el5.rf.i386.rpm
- kernel-devel.i686 0:2.6.18-406.el5
※5は、1に必要。5を先に入れないと、次のようなエラーが出る。5は、yumでインストールできる。
1 |
kernel-devel is needed by dkms-2.1.1.2-1.el5.rf.noarch |
※4をインストールする前に、3を先にインストールする必要がある。
1 2 3 4 |
$ sudo rpm -ivh fuse-ntfs-3g-2013.1.13-2.el5.rf.i386.rpm warning: fuse-ntfs-3g-2013.1.13-2.el5.rf.i386.rpm: Header V3 DSA signature: NOKEY, key ID 6b8d79e6 error: Failed dependencies: fuse >= 2.6.3 is needed by fuse-ntfs-3g-2013.1.13-2.el5.rf.i386 |
マウントする。
1 2 3 |
$ sudo mount -t ntfs /dev/sdb1 /mnt/usbdisk The disk contains an unclean file system (0, 0). The file system wasn\'t safely closed on Windows. Fixing. |
マウントできているか確認する。
1 2 3 4 5 6 7 8 9 |
$ mount /dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) /dev/sda1 on /boot type ext3 (rw) tmpfs on /dev/shm type tmpfs (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) /dev/sdb1 on /mnt/usbdisk type fuseblk (rw,allow_other,blksize=4096) |
1 2 3 4 5 6 7 |
$ df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 8.6G 1.4G 6.8G 18% / /dev/sda1 99M 19M 76M 20% /boot tmpfs 188M 0 188M 0% /dev/shm /dev/sdb1 2.0G 34M 2.0G 2% /mnt/usbdisk |
-> /mnt/usbdiskにマウントできた。
ファイルシステムタイプを確認する。
1 2 3 4 5 6 7 8 |
$ sudo fdisk /dev/sdb -l Disk /dev/sdb: 2116 MB, 2116550656 bytes 255 heads, 63 sectors/track, 257 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 258 2066880 7 * HPFS/NTFS Partition 1 has different physical/logical endings: phys=(256, 254, 63) logical=(257, 82, 17) |
-> ちゃんと、NTFSとして認識していることが確認できた。
