Automatorを使って、Windows用ボリュームを解除する。

Macを起動時に、自動的にWindows用のボリュームを取り出したいのですが、なにか方法を教えてもらえないでしょうか。
自分で試しに、Automatorを使って、
1, 「指定されたFinder項目を取得」でWindows用のボリュームを指定。
2, 「ディスクを取り出す」
とやってみたのですが、うまくいきませんでした。指定先を他のボリューム(iPodやUSBフラッシュメモリーなど)にしたときは、上手く動くのですが、Windows用のボリュームを指定したときだけ、うまくいきません。
Windows用のパーティションには150G割り当てているので、ファイルシステムはNTFSになってます。
特にAutomatorにこだわっているわけではありません。他にも方法があれば、ご教授ください。

投稿日 2008/01/12 06:15

返信: 18

2008/01/12 06:55 Community User への返信

自分はAutomatorよりはターミナル(シェル)の方が使いやすいので。
diskutil unmount /dev/disk0sX
とすればいいのでは?Xはntfsパーティションの番号です。
ターミナルで、diskutil list /dev/disk0 とかすれば分かると思います。
これをScript editor で書いて実行形式でコンパイルしておき、それをログイン項目に登録して実行するようにしておけばいいと思います。
Leopard に script editor (アプリケーション>AppleScript にありませんか?)ありませんでしたっけ?

2008/01/12 08:00 Community User への返信

はにさん、ありがとうございます。
スクリプトエディタで
tell application "Terminal"
activate
do script with command "diskutil unmount /dev/disk0s3"
end tell
と書いてみました。
この後、開いたターミナルを終了させるに
quit application "Terminal"
と書いたのですが
こうすると、ターミナルで実行中の事(ボリュームを取り出す作業)が途中で中断されてしまいました。
なにか、確実に作業が終了するのを待ってから、アプリケーションを終了させるといったスクリプトはないでしょうか。

2008/01/12 08:21 Community User への返信

Apple Script でどうするのか知りませんが、ターミナルを終了させるまで一定の時間(10秒とか)待つようにさせてみるのはどうですか。
それとも、diskutil ... の最後に、";wait" を付け加えるとどうですか?
(追加の際は、引用符そのものは無しです)

2008/01/12 08:28 Community User への返信

返信ありがとうございます。
自分でも調べてみて、スクリプトを
tell application "Terminal" to do script "diskutil unmount /dev/disk0s3 & exit"
tell application "Terminal" to quit
と書き直したら、うまくいくようになりました。
私も前のとどう違うのかよくわかりませんが、とりあえずうまくいってます。

2008/01/12 09:13 Community User への返信

ターミナルに渡さなければもっとシンプルに実行可能です。
do shell script "diskutil unmount /dev/disk0s3"

2008/01/12 09:21 Community User への返信

HALさんありがとうございます。
アップルスクリプトで直接できたんですね。
早速使わせてもらいます。

2008/01/12 09:41 Community User への返信

AppleScriptでUNIXコマンドを実行するには、ターミナルにtellするより「do shell script "...."」を使う方が、簡単ですしターミナルウィンドウも出さずに済みます。

2008/01/12 21:06 Community User への返信

>Macを起動時に、自動的にWindows用のボリュームを取り出したい
Automatorの新機能、Watch Me Do(操作を記録)を試す絶好のチャンス!
速くてスマートなソリューションはHALさんはにさんが紹介ずみですので、気晴らしあるいはLeopardの調教のために、Watch Meモードでワークフロー/アプリケーションを作ってみられては?
1) システム環境設定>ユニバーサルアクセスで「補助装置にアクセスできるようにする」にチェックを入れる
  ↓
2) Automatorを起動して「カスタム」を選び、新規ワークフロー作成ウインドウのサイドバーからライブラリ>ユーティリティ>操作を記録、と選択
  ↓
3) ツールバーの赤い〈記録〉ボタンをクリック → ワークフロー作成ウインドウが一時消えて黒い 記録モードに変わり、Automatorがマウスとキーボードの動作を(入力ミスや迷い時間もろとも)逐一覚え込むべく待機している
  ↓
4) Windowsボリュームを選択してCommand+Eのショートカットでマウント解除し、Winボリュームのアイコンが消えるのを待ってすかさず記録停止ボタンをクリック → ワークフロー作成ウインドウが再び現れ「Finderの "Windowsボリューム名" を選択します」及び「⌘+Eを押す」という二つのイベントが記録されている
  ↓
5) このイベントの再生速度をスライダで10xに調節し、作成したワークフローにお好みの名前(仮にUnWin)をつけてアプリケーションとして保存する(ワークフローのままで保存してはログイン項目として実行できないので)
  ↓
6) システム環境設定>アカウント>ログイン項目、と進み、アプリケーションUnWinをログイン項目に追加する
  ↓
7) Automatorを終了し、Leopardを再起動して動作確認
これでどうでしょう? UnWinはちゃんと動くか? 私のは動いていますがよそではどうなのか知りたいです。
>特にAutomatorにこだわっているわけではありません。
そこをなんとか。

2008/01/13 00:06 Community User への返信

ログイン項目にアンマウントを入れるというのは、あまり好ましい解決とは言えないと思います。ログオフ後、再ログインした場合、マウント状況をチェックしてからアンマウントしないと、AppleScriptではエラーウィンドウが表示されるでしょう。また、いちおうマルチユーザOSですから、ネットワーク越しに他のユーザが使っている可能性もあります。やはり、システム起動時にアンマウントするか、最初からマウントさせないのがよろしいのではないでしょうか?
最初からマウントさせないためには、Tigerでは/etc/fstabに記述すれば可能でしたが、Leopardでも同じ方法が可能なのかはわかりません。

2008/01/13 00:07 Community User への返信

ログイン項目にアンマウントを入れるというのは、あまり好ましい解決とは言えないと思います。ログオフ後、再ログインした場合、マウント状況をチェックしてからアンマウントしないと、AppleScriptではエラーウィンドウが表示されるでしょう。また、いちおうマルチユーザOSですから、ネットワーク越しに他のユーザが使っている可能性もあります。やはり、システム起動時にアンマウントするか、最初からマウントさせないのがよろしいのではないでしょうか?
ただ、最初からマウントさせないためには、Tigerでは/etc/fstabに記述すれば可能でしたが、Leopardでも同じ方法が可能なのかはわかりません。

2008/01/13 00:19 Community User への返信

みなさんたくさんのご意見本当にありがとうございます。
Y.Kawabeさん
最初からマウントさせないこともできるのですか。
>Tigerでは/etc/fstabに記述すれば可能でしたが、Leopardでも同じ
方法が可能なのかはわかりません。
これは実際にどういった事をしなければならないのですか。できれば、詳しく教えてもらえないでしょうか。
Sariさん
とても詳しいご説明ありがとうございます。
AutomatorやAppleScriptは今まで全く使っていなかったのですが、今回のことをきっかけに、もう少し使ってみようかなと思っています。
Automatorの新機能、ぜひ試させてもらいます。

2008/01/13 00:49 Community User への返信

>UnWinはちゃんと動くか? 私のは動いていますがよそではどうなのか知りたいです。
私も試してみたところ、ちゃんと動きました。
Watch Me Doっておもしろいですね。
マウスの動きまで記録するなんて。ログイン時にマウスカーソルが勝手にひょろひょろっと動くのには、少し笑いました。

2008/01/13 01:13 Community User への返信

>これは実際にどういった事をしなければならないのですか
(1) パーティションのUUIDを調べる。マウントしている状態で、ターミナルから「diskuti info /dev/disk0s3」としたとき、UUIDとして表示される長ったらしい文字列です。
(2) /etc/fstabを編集(無ければ作成)し、次の1行を追加します。
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx none ntfs rw,noauto

2008/01/13 02:17 Community User への返信

Y.Kawabeさん
ご説明ありがとうございます。
ご説明通りやってみたところ、Leopardでもこのやり方で問題なくうごいています。
一応、元に戻すときには、どうすればよいのか教えていただけないでしょうか。

2008/01/13 18:19 Community User への返信

>元に戻すときには、どうすればよいのか
/etc/fstabの当該行をコメント化(行頭に「#」挿入)するだけです。
再起動せずに手動でマウントするには、diskutilをmountコマンドで使えばOK。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

Automatorを使って、Windows用ボリュームを解除する。

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。