Winホスト機起動でVM自動起動&Linux鯖からのWol設定

必要に迫られたので、やったことのメモ書きの意味を込めて記載します。

私が普段、利用している環境は、win機にvmwareを入れ、ゲストOSにubuntuという環境で、主にゲストOSを使って作業しています。
今回、年末年始に帰省をするため、遠隔で作業をしたいのですが、Windowsは何かと再起動したり、また不慮の事故でホスト機の電源が切れてしまったら、ゲストOSで行うつもりの作業が詰みかねないので、電源ボタンを押すだけで最低限復旧ができるように、また起動についてもwolで遠隔でできるように設定しました。

VMの自動起動

まず、VMを走らせているホスト機はwindows7 pro(64bit)で、仮想化ソフトウェアはVmware playerです。普段は、ログイン時にパスワード設定をしているのですが、Win機はログインなしでアプリケーションを走らすのは、基本無理そうなので、今回は自動ログインした後にVM起動、スクリーンロックを行うようにしました。

はじめに、ログイン時にVMを自動起動するには、以下のコマンドをスタートアップ等で実行すれば可能です。

"vmplayer.exeのフルパス" "起動したい仮想OSのvmxファイルのフルパス"

ログイン後のスクリーンロック

次にスクリーンロックは以下のコマンドで実行可能です。

control userpasswords2

従って、この2つのコマンドを実行するbatファイルなどを作成して、スタートアップに登録すれば、ログイン->VM起動->スクリーンロックとなり、自動起動後パスワードロックがかかります。

後は、この設定を行ったユーザに起動時自動ログインするように設定すれば、電源ONから一連の流れが可能になります。

起動時の自動ログイン

Windows7での自動ログインは、
”control userpasswords2”コマンドにて、ユーザーアカウントウインドウを開き、自動ログインしたいユーザーを選択、
”ユーザーがこのコンピューターを使うには、ユーザー名とパスワードの入力が必要”のチェックマークをは外すことで、設定可能です。

ただ、この設定を行うとadmin権限が消える的記述をされているサイトさんがいくつかありました。私は未検証ですが、admin権限ユーザにこれを行う場合には、念のため設定前にパスワードありの別adminアカウントを作成した方がよいかと思います。

Linuxサーバからのwake on lan設定

また、起動自体もリモートで行えるように同一ネットワークにあるLinuxホストからコマンドにより、wake on lanにてホストPCを起動できるように設定しました。

こちらのサイトさんを参考にwol用のツールを設定しました。

利用しているのは、こちらのサイトさんで公開されているwake-on-lanです。

wget http://www.gcd.org/sengoku/docs/wol.c
gcc wol.c -o wol
./wol [起動したいマシンの属するブロードキャストアドレス] [起動したいマシンのNICのMACアドレス]

これで、外部からサーバにアクセスし、wolを実行することでマシンを起動させることができます。
そして、前述のvw自動起動でwol起動->自動ログイン->vm起動->スクリーンロックまでを一連の操作として実行してくれます。

ネックとしては、起動時の処理がログイン後すぐスクリーンロックなので、強引な手段な上、結構セキュリティ的に怪しそうという点でしょうか。
自動ログインからスクリーンロックの間になんらかの割り込みが入れば、そのままになってしまいそうですし…

ですが、そこまでセキュリティ的に厳格にしなければならない場合ではなかったので、ひとまずこのままで…
これで外部から、ホスト,ゲストOSの起動はできるようになりました。
なので、windows updateでの再起動や不慮の停止などになっても、一応遠隔地から何とかなりそうです。

 

まさか、今年最後の記事がこういった記事になるとは思ってませんでしたが、皆様今年はありがとうございました、来年もよろしくお願いいたします。

参考リンク

まほろば::自動ログオンしてから直ぐにロックする
VMWare Playerを自動起動させる(Windows7編) | Webシステム
windows 7 起動時にパスワードの入力を省略する「自動 ログイン,ログオン」|パソブル
Linux: コマンド操作で Wake On LAN を活用

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>