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でした。そこでスワップ領域を拡張します。スワップ領域の大きさはシステムモニターから確認できます。ここでは以下のサイトを参考にしているので詳しいコマンドの意味はこちらを参照してください
まずは既存のスワップ領域を無効化して消去します(無効化するだけで十分かもしれません)。
$ 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
ハイバネート設定の仕上げ
いよいよ仕上げです。まず、 BIOSでSecure Boot OptionをEnabledから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
以下のページを参考にしました。
myfuturesightforpast.blogspot.com
https://ubuntuforums.org/showthread.php?t=912461ubuntuforums.org