「Ubuntu マシンを WoL でリモート起動 | hiro345」について、Ubuntu 20.04 マシンを WoL でリモート起動する設定は少し変わっていたので紹介します。
ASRock の UEFI セットアップユーティリティ画面は起動時のログマーク表示時に F2 を入力することで表示できます。Advanced – ACPI Configuration – PCIE Devices Power On や I219 LAN Power On といったメニューがあるので、これらを Enabled にします。 他に Boot – Boot From Onboard LAN という項目もあって、これを Enabled にしただけでは駄目で、これについては関係ないかもしれません。今は3つ Enabled にしていますが、ACPI Configuration – PCIE Devices Power On だけでも良さそうな気がしています(他の人がこちらだけ設定して有効になったというブログ記事を見たのと、マザーボードのマニュアルの情報から)。
あとは、ethtool で設定。
sudo apt -y install ethtool
ネットワークカードの情報や MAC アドレスの情報は ip コマンドで確認
ip addr
ネットワークカードのデバイス名が enp0s31f6 だとしたら、次のようにして Wake-on の設定を確認。g となっていれば OK。
$ sudo /sbin/ethtool enp0s31f6 | grep Wake-on Supports Wake-on: pumbg Wake-on: g
この状態でマシンをシャットダウンして、他のマシンから後で説明する wakeonlan コマンドで起動できたら OK です。
Wake on LAN を自動で有効
なお、Wake on LAN を自動で有効にするためには、/etc/network/if-up.d/wol_fix ファイルを用意します。
$ cat /etc/network/if-up.d/wol_fix #!/bin/sh /sbin/ethtool -s enp0s31f6 wol g
この設定ファイルが効かない場合は、systemd のサービスを用意するなり rc.local で起動時に、このファイル内で実行しているコマンドが自動で実行されるようにするなどして対応が必要になります。
他のマシンから、この設定をしたマシンを起動
他のマシンから、この設定をしたマシンを起動するには wakeonlan コマンドを使います。インストールは下記。
sudo apt -y install wakeonlan
01:00:5e:90:10:01 は実際に起動したいマシンのネットワークカードの MAC アドレスを指定。
/usr/bin/wakeonlan 01:00:5e:90:10:01
wakeonlan を使うときはブロードキャストするネットワークの指定が必要なので次のようなスクリプト wakeup-ubuntu.sh を用意しています。192.168.0.255 は使っているネットワークのものへ変更してください。
#!/bin/sh sudo/usr/bin/wakeonlan -i 192.168.0.255 01:00:5e:90:10:01
実行は次のようにします。
sudo sh wakeup-ubuntu.sh