Wake-on-LAN を使って mac から ubuntu を起動してみる。

Network

Ubuntu Linux を使いたいときに手軽に電源を入れられるように Wake-on-LAN を使って mac から電源を入れられるようにしてみました。


PC にインストールしている Ubuntu Linux を、使いたいときに簡単に電源を入れられるように、普段使いの mac から Wake-on-LAN を使って LAN ネットワーク経由で電源を ON にできるようにしてみました。

想定環境

今回は、同じ LAN に所属している Ubuntu Linux がインストールされた PC に、mac から Wake-on-LAN のマジックパケットを送信して、電源を入れられるようにしてみます。

PC 側の設定(起動させられる側)

電源を入れる PC 側が Wake-On-LAN に対応している必要があります。

Wake-On-LAN といえばずいぶん前に登場した技術なので、この頃の PC であれば、きっとほとんどのものが対応しているんじゃないかと思いますけど、既定では無効化されている場合があります。

自分が使っている PC のマザーボード X99-E では、既定では無効になっていたので、PC 起動直後の BIOS 設定で有効化しておきました。

このマザーボードの場合は BIOS 設定画面を Advanced Mode にして、Advanced から Advanced/APM Configuration Power On By PCI-E/PCI Enabled にすることで有効にできました。

mac 側の設定(起動を命令する側)

Wake-on-LAN で PC の電源を ON にするには、マジックパケットを送信できる必要があります。mac の場合、Homebrew を使っていれば、マジックパケットを送信できるアプリケーション wakeonlan を簡単にインストールできます。

brew install wakeonlan

これで mac で wakeonlan コマンドを使えるようになりました。

Homebrew を mac にインストールする方法については、以前に こちら で紹介してあります。

MAC アドレスの確認

Wake-on-LAN で起動したい PC を指定するときに MAC アドレスを指定する必要があります。MAC アドレスというのは、すべてのイーサーネットアダプタ(LAN ポート)に一意に割り当てられている物理アドレスです。

Ubuntu Linux では、次のようにして MAC アドレスを確認できます。

ip address

このようにしたときに MAC アドレスが、link/ether という項目に 2c:4d:54:66:4f:91 のように表示されます。これを使って mac から PC を起動します。

PC を遠隔起動する

ここまで準備ができたら、あとは次のようにして、LAN 経由で PC の電源を入れられます。

wakeonlan 2c:4d:54:66:4f:91

注意事項

注意点としては、同じネットワークに所属している必要があるところです。最近の Wi-Fi ルーターは、無線のネットワークと有線のネットワークとが別々に分離されたネットワークを形成している場合があるので、そのような場合は起動してくれなかったりします。

Wi-Fi ネットワークからであっても、ブリッジモードなどで同一ネットワークを形成すれば、Wi-Fi 接続の MacBook から、有線 LAN の Ubuntu PC を起動させることも、少なくとも自分の環境では可能な様子でした。

MAC アドレスをファイルに記載する

今回使用した wakeonlan コマンドラインツールは、あらかじめ MAC アドレスを記載しておいたテキストファイルを使ってマジックパケットを送信できるようになっています。

例えば wol/ubuntu みたいな名前のテキストファイルに MAC アドレスを1行で記載しておいて、次のようにすることで、そのアドレス宛にマジックパケットを送信できます。

wakeonlan -f wol/ubuntu

MAC アドレスはとても覚えにくいので、こうやってテキストファイルにしておくとわかりやすくて良さそうです。

PC をシャットダウンする

PC をシャットダウンしたいときには、他にもスマートな方法があるのかわかりませんけど、とりあえず ssh で Ubuntu にリモートログインして、次のコマンドでシャットダウンをしてみています。

sudo poweroff

このコマンドは shutdown -h now をしたのと同等の意味になるようです。ちなみに PC を終了させるのに halt コマンドもありますけど、こちらはシステムは終了するものの電源が落ちないため、その後で Wake-on-LAN で復帰したり ssh で再接続したりができなくなるため、注意が必要です。