Boot Campには「Windows側からMac OS Xで再起動する」機能がありますが、MacからWindowsに切り替えるには起動ディスクの設定が必要です。そこで今回は、AppleScriptを使って擬似的に「Mac OS X側からWindowsで再起動する」機能を追加する方法をご紹介します。
【07/10/29訂正】Mac OS X 10.5 (Leopard)に合わせて一部記述を変更いたしました。画面はMac OS X 10.4 (Tiger)のままですが、同様の手順でお使いいただけます。
以上で設定は完了です。これでメニューバーのスクリプトメニューからWindowsで再起動できるようになりました。実際の使い方は以下の通りです。
これで、Windows側とMac OS X側の切り替え手段がほぼ揃いました。
それでは、また。
【07/10/29訂正】Mac OS X 10.5 (Leopard)に合わせて一部記述を変更いたしました。画面はMac OS X 10.4 (Tiger)のままですが、同様の手順でお使いいただけます。
1 アプリケーションフォルダを開き、「AppleScript」-「スクリプトエディタ」をダブルクリックして起動する
2 起動したスクリプトエディタに下記のコードを入力し、「管理者パスワード」の箇所を自分の管理者パスワードに置き換える
※本ブログの「Mac OS XからWindowsのNTFSパーティションに書き込めるようにするには(1)~(3)」によってntfs-3gを利用されている場合は、コードが異なります。
※Boot Campアシスタント以外で複数のパーティションに分割している場合や、システムディスクとは別のディスクにインストールしている場合は、記述が異なります。コード内「disk0s3」の部分を、ディスクユーティリティでWindowsのシステムパーティションを選択して「情報」ボタンをクリックし、「ディスク識別子」に表示されている値に書き換えてください。
【07/08/18追記】Windowsのパーティションが標準と異なる場合の対処方法について追加しました。ご指摘をいただきました、隊長@やから建設様にはこの場を借りて御礼申し上げます。
※下記コードはコピーしてお使いいただけます。
ntfs-3gを利用していない場合(通常はこちら)
ntfs-3gでWindowsパーティションをマウントしている場合
3 「コンパイル」をクリックして、構文に誤りがないことを確認する
※もしも画面のように色が変わらなかったり、エラーメッセージが表示された場合は、手順2のコードと見比べて誤りを修正してください。
4 「ファイル」メニューの「別名で保存」をクリック
5 保存の画面で以下のように設定して、「保存」ボタンをクリック
・「名前」に「Windows で再起動」と入力
・「名前」右横の「▼」ボタンをクリックしてフォルダ選択できる状態にしてから「Macintosh HD」の「ユーザ」-「(ユーザ名)」-「ライブラリ」-「Scripts」の順に選択
・「フォーマット」から「スクリプト」を選択
・「実行専用」にチェックを付ける
6 アプリケーションフォルダを開き、「AppleScript」-「AppleScriptユーティリティ」をダブルクリックして起動する
7 「メニューバーにスクリプトメニューを表示」にチェックを付け、「ライブラリスクリプトを表示」のチェックを外して、AppleScriptユーティリティを閉じる
2 起動したスクリプトエディタに下記のコードを入力し、「管理者パスワード」の箇所を自分の管理者パスワードに置き換える
※本ブログの「Mac OS XからWindowsのNTFSパーティションに書き込めるようにするには(1)~(3)」によってntfs-3gを利用されている場合は、コードが異なります。
※Boot Campアシスタント以外で複数のパーティションに分割している場合や、システムディスクとは別のディスクにインストールしている場合は、記述が異なります。コード内「disk0s3」の部分を、ディスクユーティリティでWindowsのシステムパーティションを選択して「情報」ボタンをクリックし、「ディスク識別子」に表示されている値に書き換えてください。
【07/08/18追記】Windowsのパーティションが標準と異なる場合の対処方法について追加しました。ご指摘をいただきました、隊長@やから建設様にはこの場を借りて御礼申し上げます。
※下記コードはコピーしてお使いいただけます。
ntfs-3gを利用していない場合(通常はこちら)
tell application "Finder"
display dialog "コンピュータを再起動してもよろしいですか?" & return & return & "お使いのコンピュータは Windows を使用して起動します。" default button 2 with icon note
end tell
do shell script "sudo bless --device /dev/disk0s3 --legacy --setBoot" password "管理者パスワード" with administrator privileges
do shell script "sudo shutdown -r now" with administrator privileges
display dialog "コンピュータを再起動してもよろしいですか?" & return & return & "お使いのコンピュータは Windows を使用して起動します。" default button 2 with icon note
end tell
do shell script "sudo bless --device /dev/disk0s3 --legacy --setBoot" password "管理者パスワード" with administrator privileges
do shell script "sudo shutdown -r now" with administrator privileges
ntfs-3gでWindowsパーティションをマウントしている場合
tell application "Finder"
display dialog "コンピュータを再起動してもよろしいですか?" & return & return & "お使いのコンピュータは Windows を使用して起動します。" default button 2 with icon note
end tell
do shell script "diskutil unmount /dev/disk0s3"
do shell script "diskutil mount /dev/disk0s3"
do shell script "sudo bless --device /dev/disk0s3 --legacy --setBoot" password "管理者パスワード" with administrator privileges
do shell script "sudo shutdown -r now" with administrator privileges
display dialog "コンピュータを再起動してもよろしいですか?" & return & return & "お使いのコンピュータは Windows を使用して起動します。" default button 2 with icon note
end tell
do shell script "diskutil unmount /dev/disk0s3"
do shell script "diskutil mount /dev/disk0s3"
do shell script "sudo bless --device /dev/disk0s3 --legacy --setBoot" password "管理者パスワード" with administrator privileges
do shell script "sudo shutdown -r now" with administrator privileges
3 「コンパイル」をクリックして、構文に誤りがないことを確認する
※もしも画面のように色が変わらなかったり、エラーメッセージが表示された場合は、手順2のコードと見比べて誤りを修正してください。
4 「ファイル」メニューの「別名で保存」をクリック
5 保存の画面で以下のように設定して、「保存」ボタンをクリック
・「名前」に「Windows で再起動」と入力
・「名前」右横の「▼」ボタンをクリックしてフォルダ選択できる状態にしてから「Macintosh HD」の「ユーザ」-「(ユーザ名)」-「ライブラリ」-「Scripts」の順に選択
・「フォーマット」から「スクリプト」を選択
・「実行専用」にチェックを付ける
6 アプリケーションフォルダを開き、「AppleScript」-「AppleScriptユーティリティ」をダブルクリックして起動する
7 「メニューバーにスクリプトメニューを表示」にチェックを付け、「ライブラリスクリプトを表示」のチェックを外して、AppleScriptユーティリティを閉じる
以上で設定は完了です。これでメニューバーのスクリプトメニューからWindowsで再起動できるようになりました。実際の使い方は以下の通りです。
1 メニューバーのスクリプトメニューアイコン()をクリックし、「Windows で再起動」をクリック
2 「コンピュータを再起動してもよろしいですか?」という画面が表示されたら、「OK」ボタンをクリック
※ntfs-3gを利用している場合は、ディスクのアンマウントと再マウントが行われるため、若干再起動まで時間がかかります。
2 「コンピュータを再起動してもよろしいですか?」という画面が表示されたら、「OK」ボタンをクリック
※ntfs-3gを利用している場合は、ディスクのアンマウントと再マウントが行われるため、若干再起動まで時間がかかります。
これで、Windows側とMac OS X側の切り替え手段がほぼ揃いました。
それでは、また。
いろいろ調べましたが出来ませんでした。
あと、ダイアログウインドウのサイズは変更可能ですか?
よろしくお願いします。
さっそくですが、質問が2点ございます。
まず、これまでcore2duo2.0Ghz搭載13インチのmac bookにbootcampでXP home editionをインストールして使用していました。その際こちらで拝見した方法で、問題なくmac→XPの再起動が行えていました。
最近macをOSX10.6にアップグレードしたところ(XPはそのまま)、mac→XPの再起動ができなくなりました。10.6での記述方法はまた違ってくるのでしょうか?ご教授頂ければ幸いです。
それともう一つ、XP→XPの再起動は10.5のときからできませんでした。現在(10.6)も当然できません。これに関しても解決方法を教えて頂けますでしょうか?
以上、2点についてアドバイスをお願いします。
回答が大変遅くなり、誠に申し訳ございませんでした。
管理者パスワードについては、ちびてん様の認識で間違っておりません。考えられる原因としては、管理者パスワードが""(ダブルクオート)でくくられていないということはございませんでしょうか?
今一度、ご確認いただければ幸いです。
よろしくお願いいたします。
すでに解決済みかとは存じますが、おそらくスクリプトメニューが新規作成されたScriptsフォルダを認識していないことが原因と思われますので、Mac OS Xを再起動することで表示されるかと思われます。
もし、それでもまだ表示されないようでしたら、いったん作成したフォルダを削除した上で再起動し、スクリプトメニューから「スクリプトフォルダを開く」-「ユーザ・スクリプト・フォルダを開く」を選択することで、新しくScriptsフォルダが作成されます。
よろしくお願いいたします。
手順通り進めていたのですが、手順5の「Scripts」フォルダが私のMacにありません。
新規作成して保存してみたのですが、スクリプトメニューに切り替えの項目も出てきません。
どうしたら出来るでしょうか?
なんにも分かってなくて本当に申し訳ありません!どうぞ教えてください。
数日前まではoptionキーの切り替えも出来ていたのですが、他の要因のようです。
お手数おかけしてすみません。
マウスドライバ等を導入したりした際に何度か不具合が出ていましたのでそのせいかもしれません。
rEFItのご紹介ありがとうございます。
こちらも入れてみたいと思います。
この他にもいくつか疑問点に触れている記事があり、とても助かりました。
今後も楽しみにしています。
・optionキーによる起動OSの選択の件
本スクリプトは起動OSの切り替えと再起動を行うだけの役割ですので、起動時のoptionキーによる起動OSの選択には影響を及ぼさないかと存じます。起動音が鳴る前から、選択画面が出るまでの間、optionキーを押したままにしても表示されませんでしょうか。
・起動ディスク設定が変更される件
ご推察の通り、起動ディスクはWindows側パーティションに切り替えられてしまいます。blessコマンドには次回起動時のみ切り替えるというオプションもございますが、残念ながらWindowsには利用できません。
もしも基本はMac OS Xで、起動時にWindowsを選択できさえすればよいと言うことでしたら、本ブログの「起動時のWindowsとMac OSの選択画面をカスタマイズするには」(http://blog.goo.ne.jp/pcqanda/e/282e0a14c72eee8a2f0386a54ddbf02e)でご紹介しているrEFItを導入されることをおすすめいたします。
根本的な解決になっておらず、申し訳ございません。
よろしくお願いいたします。
再起動が大変だと思っていたので、こちらの記事とても参考になりました。
ところで、こちらのスクリプトを導入してから、起動時optionキー長押しによる起動OSの選択が出来なくなってしまったような気がします。
もしかしたら別の要因かもしれないので恐縮なのですが、何かお心当たりがありましたら教えてくださると助かります。
また、こちらで再起動しますと、コントロールパネルでの起動ディスク設定は変更されてしまいますでしょうか?
起動をMacに設定していてもWINで終了した翌日起動するとWINが起動してしまいます。
起動はいつもMacで、WINの起動はoption選択かこちらのスクリプトによる起動になればよいのですが...。
長々と申し訳ありません。
お時間ある時にご考慮いただけると幸いです。
なるほど、ntfs-3gだったんですか(納得)。
てっきりスクリプトかと思いましたが、まるっきり勘違いしておりました。
書いてないのにドンピシャリと言い当てるなんてすごいですね。お陰ですご~くスッキリできました!
これからも応援します。
じゅま様のご質問の原因は、ntfs-3gを導入されたことによると思われます。ntfs-3gはMac OS X標準のntfs用ドライバではないため、システム環境設定の起動ディスクからは起動可能ボリュームとして認識されないため、アイコンが表示されなくなります。
ちなみに、Windows側のコントロールパネルの起動ディスクではntfs-3gは無関係であるため、両方のボリュームが表示されております。
よろしくお願いいたします。
こちらのサイトが丁寧で判りやすいので度々参考にさせてもらってます。
ちょっと気になる事があるので質問させてください。
おそらくAppleスクリプトでのWindows再起動を導入してから(確証は無いんですけど)だと思うんですが、「システム環境設定>起動ディスク」の画面からWindowsのアイコンが消えました。
アイコンが出てないから、この画面からWindowsでの再起動を選ぶことは当然出来ません。
試しにVistaを再インストールしましたが相変わらずアイコンは表示されませんでした。
これってAppleスクリプトの方が優先されるから、とかそういう事なんでしょうか?
もっとも、メニューバーに設けたAppleスクリプトでのWindows再起動は出来るので別に不便でも何でもないんですが、なんとなくスッキリしないので、回答を頂ければ助かります。
回答が大変遅くなりましたことを深くお詫び申し上げます。
Mac OSの起動ディスクを切り替える場合は、blessコマンドのオプション「--legacy」が不要です。仮に、2台目の内蔵HDDのMac OSを起動する場合は、以下のようなコマンドになります。
do shell script "sudo bless --device /dev/disk1s2 --setBoot" password "管理者パスワード" with administrator privileges
ちなみに、この方法は外部HDDでも有効です。
今後ともよろしくお願いいたします。
こんなのも作れますか?
後はブラウザなどの設定がうまくいっていないのかもしれません。
休日以外、なかなか時間が取れないので前に進むのが遅いのですが、上記の内容も確認させていただきながら、また質問させていただきます。
AirMacでワイヤレスネットワークが構築できないとのことですが、現在はどのような状況でしょうか。
(1)Windowsのバージョン(XP/Vista)は何でしょうか
(2)アクセスポイントの機種名をお教えください
(3)暗号化の種類(WEP/WPA/暗号化無し等)をお教えください
(4)SSIDのステルス機能をお使いでしょうか
(5)Windowsの無線アクセスポイント一覧は表示されておりますでしょうか
以上、お手数ですがご確認の程よろしくお願いいたします。
「Windows側にも付け加えたく」なられたのは、今回の再起動機能についてでしょうか? まだお試しでないかもしれませんが、Boot Camp 1.4 Betaには同等の機能がWindows側に付け加えられております。詳しくは本ブログ「Boot Camp 1.4でWindows Vista製品版をセットアップするには」(http://blog.goo.ne.jp/pcqanda/e/5e0bcb6e94c78b989d6717a4185402ef)をご参照いただければ幸いです。
今後ともよろしくお願いいたします。
どうすれば良いのでしょう、、
Apple Scriptって使いこなせばとても便利なんですね。
こういうのって、痒いところに効いてホントに助かります。
BootCamp Windows側にも付け加えたくなります。
ご高察の通り、Boot Campアシスタント以外で作成した複数パーティションの場合、「disk0s3」の部分を書き換える必要がございます。
ディスクユーティリティでWindowsのシステムパーティションを選択して、「情報」ボタンをクリックし、「ディスク識別子」に表示されている値に書き換えていただければ大丈夫です。
ご質問の件は後ほど記事にも反映させていただきます。ご指摘ありがとうございました。
今後ともよろしくお願いいたします。
正式バージョンでは、dotmb様もサイトでご紹介されていた、「真実は?BootCamp完成版のスリープ機能」(http://dotmb.netwalk.in/?eid=455587)の実装を期待したいところですね。
今後ともよろしくお願いいたします。
今回の記事は私に取って非常にタイムリーでした!
(いつもですが)
スクリプトの内容についてお聞かせください。
以前こちらでお世話になり、BootCamp環境で複数
パーティションを作成したのですが、
その場合はスクリプトの『/dev/disk0s3』
この部分は変わるのでしょうか?
例えば、先頭パーティションがOSXで2つ目が共用
ドライブ(FAT32)で3つ目がWindowsの場合です。
いつもイレギュラーな質問ばかりですみません。
今回はまたとても便利なテクニックですね!
私のブログでもご紹介させていただいてしまいました。