電磁波に撃たれて眠りたい!

今日も電磁波浴びまくりのIT業界で働く@mamohacyがガジェット/クラウド/IT業界を語ってくブログ

BootCampドライブがMacから認識できなくなったときの対処法

うちのMacBookにMountain Lionをインストールしてからというもの、この画面がずっと出続けるうえ、起動がめちゃめちゃ遅くなってしまいました。

NTFS-3G_Error

で、なぜかこれが表示された後BootCampのパーティションは普通にファイルマネージャ上からもアクセスできるし、BootCampでWindowsが動かないわけでもないのです。。。。わけがわからなかったので、ちょっと調べてみたら、

↓lion - NTFS-3G unmounts NTFS partitions because it "did not receive signal in 15 seconds"—what signal? - Ask Different
http://apple.stackexchange.com/questions/20037/ntfs-3g-unmounts-ntfs-partitions-because-it-did-not-receive-signal-in-15-second

 

以下引用

The problem seems to stem from the binary "fuse_wait" from NTFS-3G that's run as a final part of the mounting procedure - for some reason it can't detect that ntfs-3g mounted the volume and stays on a hopeless loop trying to detect this condition until it gives up after 15 seconds. So my workaround involves replacing the fuse_wait binary with a script that does more or less the same thing, but actually detecting (sort of) the mount operation and not timing out.

要するにfuse_waitっていうバイナリ(実行形式ファイル)で実行される処理が、ntfs-egのボリュームを探しにこうとして何らかの理由で発見できず、15秒のタイムアウトが起きるまで待機していることが原因で発生しているようです。ここではこのバイナリを同等の動きをするシェルスクリプトに置換する事でマウントも失敗せずタイムアウトも発生しなくなるようです。 ということで、自分もこのページに従って対処してみます。 まずターミナルを起動して下記のコマンドを実行。

$ sudo mv /usr/local/bin/fuse_wait /usr/local/bin/fuse_wait.original
$ sudo touch /usr/local/bin/fuse_wait
$ sudo chmod 0755 /usr/local/bin/fuse_wait
$ sudo chown 0:0 /usr/local/bin/fuse_wait

旧ファイルをバックアップし、あたらしくテキストファイルを作ってその権限とオーナーを変更しています。 次にスクリプトファイルを作ります。上記ページではnanoを使っていましたが、自分は使い慣れているviで書きました。

$ sudo vi /usr/local/bin/fuse_wait

viが起動したら下記の内容をコピペして保存します。


    #!/bin/bash

    MNTPOINT=$1
    shift
    TIMEOUT=$1
    shift
    MNTCMD=$1
    shift

    $MNTCMD "$@" &> /var/log/ntfsmnt.log
    MNTCMD_RETVAL=$?

    if [ $MNTCMD_RETVAL -eq 0 ]; then
            until [ `/sbin/mount | /usr/bin/grep -c "$MNTPOINT"` -ge 1 ] || [ $TIMEOUT -eq 0 ]
            do
                           sleep 1
                    let TIMEOUT--
            done
    fi

    [ $TIMEOUT -eq 0 ] && RETVAL=1 || RETVAL=$MNTCMD_RETVAL

    exit $RETVAL;

次に下記のファイル(テキスト)をviで編集します。

$ sudo nano /System/Library/Filesystems/ntfs-3g.fs/ntfs-3g.util

この行を

    DEFAULT_NTFS_MOUNT_OPTIONS="auto_xattr"

これに書き換えて保存。

    DEFAULT_NTFS_MOUNT_OPTIONS="auto_xattr,noatime,noappledouble,auto_cache"

あとは再起動してみてください。 自分はこれで解決しました。 ちなみに同じ理由でWindows時代から使っている外付けドライブを接続するとまったく同じエラー画面が表示されていたのですがこちらも出なくなりました。 Macもまだまだ素人向けじゃないですねぇ。。。。