2012年7月22日日曜日

ディスクユーティリティでマウント解除できない

前のエントリーで、ディスクユーティリティのマウント解除と再マウントでread onlyのディスクを読み書きできるようにする方法を紹介しました。
これで、再起動しないでTime Machineがバックアップできるようになります。
でも、たまにマウント解除自体ができない場合があります。
例えばこんな感じです。

そこで、再起動しないでマウント解除する方法を模索しました。
ここからは、ターミナルでコマンド操作を行いますので、参考程度に見てください。間違っていても責任はとれませんし。
(1) まず、ディスクがread onlyでマウントされているかの確認ですが、moutコマンドで見ることができます。今回の例です。ちなみに、Mac OS X 10.6.8 (Snow Leopard)です。Developer Toolsもインストールしています。


$ mount
/dev/disk0s2 on / (hfs, local, journaled)
devfs on /dev (devfs, local, nobrowse)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)
/dev/disk1s2 on /Volumes/Backup (hfs, local, nodev, nosuid, read-only)
/dev/disk2s2 on /Volumes/Disk1 (hfs, local, nodev, nosuid, journaled, noowners)

/dev/disk1s2 が、/Volumes/Backup としてread-onlyでマウントされています。


(2) 次に、lsofコマンドとgrepコマンドで、/Volumes/Backup を使っているプロセスを調べます。lsofとgrepは知っていることにします。

$ lsof | grep -F /Volumes/Backup

(3) 例えば、こんな行があったとします。
iTunes     3544  karuku   22r     DIR       14,8       952        2 /Volumes/Backup
この場合は、単純にiTunesを終了させます。

(4) 直接起動していないのに、なにか動いている場合もあります。
stunnel   12083  karuku  cwd      DIR       14,8    204340   203460 /Volumes/Backup/Mail/inbox
stunnel   12083  karuku  txt      REG       14,8    132832  7940984 /Volumes/Backup/opt/local/bin/stunnel

この場合、stunnelが他のアプリケーションから起動されていると知っていれば、その親のアプリケーションを終了させればいいです。

わからない場合は、あきらめてMacを再起動するほうがいいです。特に3つめが自分のログインIDでないものがある場合は、再起動ですね。


そして、(2)、(3), (4)を繰り返して、/Volumes/Backupを使っているプロセスがいなくなれば、ディスクユーティリティからマウント解除が使えると思います。
せっかくターミナルを使っているので、umount/mountコマンドを使ってもいいですけど。

Nerdtool/GeekToolでYahooのお天気アイコンを表示

Macの手書き説明書さんなどを参考に、NerdToolでYahooのお天気アイコンをデスクトップに表示させていたのですが、いつの間にか表示されなくなっていました。

weather.yahoo.comのHTMLコードが修正されているようです。
以下のように修正したらまた表示されるようになりました。


今日はくもりです。

GeekToolを使っている人も同じような修正で、アイコンが表示されるようになると思います。
NerdToolの方がほんのちょっとCPU負荷が低かったのでGeekToolから乗り換えました。と言っても、2%ぐらいですが。
私のMacは、Mac Mini Core 2 Duo 1.83GHzの非力マシンなので。。

Time Machineがバックアップを失敗していました

Macを起動した時、外付けハードディスクがread-onlyでマウントされて、書き込みできなかったためのようです。何故でしょうね。
原因がわかればいいんですが、今のところ不明です。

read-onlyになった時は、以前はMacを再起動していたのですが、他の起動済みアプリを終了したり再起動にちょっと時間がかかるのが問題でした。
でも、ディスクユーティリティでそのディスクだけマウントし直せばいいことに気付きました。
ディスクユーティリティを起動して、Time Machine用のディスクを選択します。

そして、マウント解除アイコンを押して

もう一度、マウントアイコンでマウントします。

その後、メニューバーから今すぐバックアップを作成を選んで、バックアップを取ります。

終わり。
でもでも、たまにディスクユティリティでマウント解除できないことがあります。
長くなったので、別エントリにしますね。