「喰う・書く・逃げる」に棲む処

 動物に関するデータ分析者のブログです

Ubuntu 18.04 LTSのハイバネート(休止)設定

こんにちは

ノートパソコンでUbuntuを使うならハイバネート(休止状態)を使いたいですよね。ただ、デフォルト状態ではこれが有効になっていません。また、いろんなサイトで有効化する方法が解説されていますがUbuntu 18.04 LTSではすんなりとは行きませんでした。休日6時間の激闘の末、なんとかハイバネートできるようになったので、その方法を記しておきます。ちなみにGUIで操作できるようにするのは更にめんどくさそうだったので、ここで解説している方法はCUIでハイバネートできるようにする方法です。

pm-hibernateのインストール

はじめに以下のコマンドでpm-hibernateが動くか確認します。

$ sudo pm-hibernate

おそらくエラーになると思うので次にpm-hibernateを使えるようにするために以下の3つをインストールします。

$ sudo apt install pm-utils
$ sudo apt install molly-guard
$ sudo apt install uswsusp

swap の拡張

ハイバネートするときにスワップ領域にRAMの内容が書き込まれます。そのためRAMの大きさ以上のスワップ領域が確保されている必要があります。私のパソコンではRAMが16GBなのに対してスワップ領域が2GBでした。そこでスワップ領域を拡張します。スワップ領域の大きさはシステムモニターから確認できます。ここでは以下のサイトを参考にしているので詳しいコマンドの意味はこちらを参照してください

l-w-i.net

まずは既存のスワップ領域を無効化して消去します(無効化するだけで十分かもしれません)。

$ sudo swapoff /swapfile #無効化
$ sudo mv /etc/fstab{.bak,} #起動時に読み込まなくする
$ sudo rm /swapfile #消去

次に十分な大きさのスワップファイルを作成します。私の場合はRAMの2倍の大きさにしました。

$ sudo fallocate -l 32G /swapfile
$ ls -lh /swapfile
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile

スワップ領域を割り当てます。

$ sudo swapon /swapfile

再起動しても読み込むようにします。

$ sudo cp -p /etc/fstab{,.bak} 
$ echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

ハイバネート設定の仕上げ

いよいよ仕上げです。まず、 BIOSSecure Boot OptionEnabledからDiabledに変更します。

次にcom.ubuntu.enable-hibernate.pklaを編集します。まずは以下のコマンドを実行してcom.ubuntu.enable-hibernate.pklaを開きます。

$ sudo sh -c 'cat << EOF > /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla

次に以下の内容に書き換えます

[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes
EOF'

次に以下のコマンドでacpi-supportを開きます。

$ sudo gedit /etc/default/acpi-support

すると中程あたりに以下のようなに書かれているところがあります。

# # Set the following to "platform" if you want to use ACPI to shut down
# # your machine on hibernation
HIBERNATE_MODE=shutdown

これをHIBERNATE_MODE=platformと書き換えます。

最後に再起動します。

$ sudo reboot

以下のコマンドで休止状態になります。

$ sudo pm-hibernate

以下のページを参考にしました。

l-w-i.net

mdat.biz

myfuturesightforpast.blogspot.com

mdat.biz

soulkiln.blog

https://ubuntuforums.org/showthread.php?t=912461ubuntuforums.org