MacでNTFS形式のUSB外付けHDDに書き込む方法

2013年8月12日

mac-usb

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

目次

  1. USB を差す前にデバイスファイル(/dev/)の状態を記録
  2. USB を挿したら一度アンマウント
  3. USB を挿す前後のデバイスファイルの状態を比較
  4. マウントポイントを作成
  5. NTFS 書き込み可能でマウント
  6. Finder から見えるようにホームディレクトリにシンボリックリンクを貼る
  7. USB を抜くときは
  8. 毎回やるのは面倒なのでスクリプト化

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 から見えないのでマウントポイントにシンボリックリンクを貼ります。

$ ln -s /Volumes/pqi /Users/karakaram/pqi

Finder から見るとこんな感じ。Finder から読み書きできます。

pqi-sym-link

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

-技術ブログ
-