リモートPCのBoot & Suspend

最近ラップトップPCをサーバとして使うようにしてみました。使っていないときは電力の節約のためサスペンドしていますが、どうも毎回数m離れたところまで行っては操作するのが面倒になったので、メインPCからサスペンドしてみました。ちょっとしたことでも億劫になるナマケモノみたいになってますが、極力動かないで済むことに越したことないのでセットアップしてみました。ラップトップはwake-on LANが使えるようにBIOSをセットしておきます。

サスペンド:

sshでログインしてsudo pm-suspendを実行します。

ブートまたは電源ON:

wakeonlanをインストールします。

wakeonlan [HWアドレス]を実行します。

dm-cryptでrootパーティションを暗号化している場合、過去の記事を参考に設定します。

Ubuntu(18.04TLS)でssh経由でdm-cryptの解除する場合、debianと少し異なります。

パッケージ

apt install busybox-initramfs dropbear-initramfs
cp -a /usr/share/initramfs-tools/hooks/dropbear /etc/initramfs-tools/hooks

/etc/initramfs-tools/initramfs.conf

BUSYBOX=y
IP={IP ADDR}::{GW}:{NETMASK}::{IF}:off
例) IP=192.168.11.1::192.168.11.254:255.255.255.0::enp0s25:off

/etc/dropbear-initramfs

cd /etc/dropbear-initramfs
cat /etc/initramfs-tools/root/.ssh/id_rsa.pub.initramfs > authorized_keys

/etc/crypttabがないとdropbearはインストールされません。なければ空のファイルを作ります

touch /etc/crypttab

initramfsをアップデートします。

update-initramfs -v -u

おまけ:

LinuxのGrubをアップデートするとmacOSのブートローダより先に起動するようになります。毎回訂正するのは面倒なのでGrubからCloverを立ち上げる設定をします。EFIのUUIDを調べてgurbの設定ファイルに書き込みます。

例)

blkid /dev/sda1
/dev/sda1: LABEL="EFI" UUID="66AA-11BB" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="123456ab-123a-456e-78f6-e1234567880f"

例)/etc/grub.d/40_custom

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

menuentry 'macOS' {
insmod fat
insmod part_gpt
insmod chain
insmod search_fs_uuid
search --fs-uuid --no-floppy --set=root 66AA-11BB
chainloader /EFI/CLOVER/CLOVERX64.efi
}

Grubを更新します。
update-grub