Windows と Mac の両方を使っていると、外付け HDD のファイルシステムの扱いに悩まされることがあるかと思います。
これまで Windows メインで使ってきた私は、外付け HDD をすべて NTFS でフォーマットしていました。最近 Mac も扱うようになり、いつも使っている外付け HDD につないでみたところ、Mac からは NTFS の外付け HDD に書き込みができない様子。読み込みはできるんですけどね。
Mac から NTFS で書き込みできるようにするには、有料アプリをインストールしたり、パッチを当てたりして対応できるようですが、Linux で NTFS をマウントする時と同じ要領でやってみたら書き込み可能でマウントできたので紹介します。確認した OS は Mountain Lion です。
ほぼターミナルでの作業になるので、Linux を触ったことがある人向けの記事となっています。
動作確認環境
- Mac OS X Mountain Lion 10.8.4
目次
- USB を差す前にデバイスファイル(/dev/)の状態を記録
- USB を挿したら一度アンマウント
- USB を挿す前後のデバイスファイルの状態を比較
- マウントポイントを作成
- NTFS 書き込み可能でマウント
- Finder から見えるようにホームディレクトリにシンボリックリンクを貼る
- USB を抜くときは
- 毎回やるのは面倒なのでスクリプト化
USB を差す前にデバイスファイル(/dev/)の状態を記録
USB を挿す前に、以下のコマンドで /dev/ 以下の状態をファイルに書き出しておきます。このファイルは後で使います。
$ ls -l /dev/ > /tmp/before.txt
USB を挿したら一度アンマウント
USB を挿してしばらく待つと自動でマウントされるので、アンマウントします。Finder からアンマウントしてもいいですし、以下のコマンドを実行してもいいです。
$ sudo umount /Volumes/HDD名
USB を挿す前後のデバイスファイルの状態を比較
USB を挿す前の /dev/ と挿した後の /dev/ のファイル一覧を比較します。先ほど作成した before.txt と diff をとります。
$ ls -l /dev/ > /tmp/after.txt
$ diff /tmp/before.txt /tmp/after.txt
> brw-r----- 1 root operator 1, 6 8 12 13:07 disk3
> brw-r----- 1 root operator 1, 7 8 12 13:07 disk3s1
28,29c30,31
< crw-rw-rw- 1 root wheel 17, 9 8 12 12:56 io8log
< cr--r--r-- 1 root wheel 17, 6 8 11 13:19 io8logmt
---
> crw-rw-rw- 1 root wheel 17, 6 8 12 12:56 io8log
> cr--r--r-- 1 root wheel 17, 7 8 11 13:19 io8logmt
173a176,177
> crw-r----- 1 root operator 1, 6 8 12 13:07 rdisk3
> crw-r----- 1 root operator 1, 7 8 12 13:07 rdisk3s1
差分として現れた disk3s1 が USB 外付け HDD のデバイスファイルです。
マウントポイントを作成
マウントポイント名は何でもいいです。ここでは pqi とします。
$ sudo mkdir /Volumes/pqi
NTFS 書き込み可能でマウント
mount コマンドでマウントします。NTFS 形式、読み書き可能を指定します。
$ sudo mount -t ntfs -o nobrowse,rw /dev/disk3s1 /Volumes/pqi
Finder から見えるようにホームディレクトリにシンボリックリンクを貼る
このままだとターミナルからは見えますが Finder から見えないのでマウントポイントにシンボリックリンクを貼ります。
$ ln -s /Volumes/pqi /Users/karakaram/pqi
Finder から見るとこんな感じ。Finder から読み書きできます。
USB を抜くときは
unmount コマンドを実行し、シンボリックリンクを消しておきます。
$ sudo umount /Volumes/pqi
$ rm /Users/karakaram/pqi
毎回やるのは面倒なのでスクリプト化
こんな感じでシェル化してます。外付け HDD の数が少ないので、いまのところこれで問題ありません。
#!/bin/sh
if [ $1 == 'pqi' ]; then
if [ $2 == 'mount' ]; then
sudo umount /Volumes/HDD名
sudo mkdir /Volumes/pqi
sudo mount -t ntfs -o nobrowse,rw /dev/disk3s1 /Volumes/pqi
ln -s /Volumes/pqi /Users/karakaram/pqi
elif [ $2 == 'umount' ]; then
sudo umount /Volumes/pqi
rm /Users/karakaram/pqi
fi
fi
使い方。マウントする時
$ sh mount-usb.sh pqi mount
アンマウントする時
$ sh mount-usb.sh pqi umount