Ubuntu 19.04 Server をLAN経由で起動できるようにする (Wake-on-LAN)
引数として先程のMACアドレスを使って## 経緯
節電のためにファイルサーバを平日の昼間サスペンドさせることにしたのだが、そうすると祝日の平日に手動でサスペンドを解除する必要がある。
コレ自体は仕方ないとして、せめて電源ボタンではなくメインマシンからLAN経由で遠隔で電源を入れられるようにしたい。
調べたところWake-on-LANというそれらしい機能があったので利用する
手順(サーバー側)
UEFIの設定
再起動してUEFI画面に入り、LAN経由での起動を設定する。
マザーボードにもよるとおもうが、自分の場合
Power On By PCI-E/PCI
というのをEnabled
にした。
余談だが、Power On By RTC
(うろ覚え) という項目もあった 。おそらくrtcwake
でサスペンドではなくシャットダウンと起動をする場合にこれを有効にする必要があるのではないかとおもう。
ethtoolのインストール
sudo apt install ethtool
Wake-on-LANで使うLANの確認
$ ls /sys/class/net/
enp3s0 lo wlp4s0
今回の場合enp3s0が有線LANと思われるので、これを使う。ちなみにwlp4s0が無線LANと思われる
Wake-on-LANの設定
以下のコマンドで有効にする。
$ sudo ethtool -s enp3s0 wol g
設定を確認する。
$ sudo ethtool enp3s0
Settings for enp3s0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
MDI-X: off (auto)
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
MACアドレスの確認
Wake-on-LANにはMACアドレスというLANに接続する機器固有のIDを知る必要があるので、確認する
$ ip addr
<中略>
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 04:92:26:00:00:00 brd ff:ff:ff:ff:ff:ff
<中略>
この場合04:92:26:00:00:00がMACアドレスになる
(参照元がMACアドレスをぼかしていたため、ここも一応実際のMACアドレスとは変えてある。)
サーバ側の作業はここまでなので、ここでシャットダウンしておく。
手順(クライアント側)
ここからはWake-on-LANを実行するメインPC側の設定。
Wake-on-LANのインストール
公式のリポジトリにあるので普通に apt install
でインストールできる
$ sudo apt install wakeonlan
Wake-on-LANを実行する
先程調べたMACアドレスを引数にしてwakeonlan
を実行する。
$ wakeonlan 04:92:26:00:00:00
Sending magic packet to 255.255.255.255:9 with 04:92:26:da:61:3c
無事起動が確認できた。
参照元
UbuntuでWakeOnLanを使って離れた場所にあるPCを起動する方法【裏技あり】
Linux から認識されている、すべてのネットワークインターフェイス名だけを取得する
Ubuntuのinterfacesについて。