Ubuntu 18.04 でハイバネーション

前回の記事で Ubutntu 16.04 から 18.04 へ環境を移行させたと書きましたが、なぜ 16.04 を使い続けたかというと、17.04 や 17.10 ではなぜかハイバネーションがうまく動かなかったからです。普段ノートPCを使っているのでサスペンドさせておけばよいのですが、思いのほかサスペンドがバッテリを消耗するので、大体ハイバネーションで電源を切っています。私が使っている Vaio Pro11 は SSD なのでハイバネーションによる保存/復帰も高速なので重宝しています。

Ubuntu 18.04 でのハイバネーションの設定方法をメモがてら残しておきます。

1. swapの設定

ハイバネーションするには swap の容量が物理メモリの2倍程度必要です。

容量が少ない場合は gparted などを使って拡張してください。

2. initramfs 内の設定を確認

クリーンインストールした環境であれば、initramfs 内の以下のファイルに swap パーテーションの UUID が設定されています。私の場合は以下のようにすでに設定されていました。

$ cat /etc/initramfs-tools/conf.d/resume
RESUME=UUID=a512140c-c031-4c8c-956d-169143008d70

ファイルがなかったり、UUIDが違っていた場合は変更しておきます。

ファイルを変更した場合は、忘れずに initramfs イメージを更新しておきます。

$ sudo update-initramfs -u -k all

3. grub の設定を変更

/etc/default/grub の GRUB_CMDLINE_LINUX_DEFAULT 変数の最後に swap パーテーションのUUIDを指定します。赤字が追加部分です。

$ sudo vi /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=a512140c-c031-4c8c-956d-169143008d70"

ここで注意なのは、initramfs の resume ファイルに設定したものと同じ文字列を設定する必要があります。同じパーテーションだからといって、resume=/dev/sdaX のように違う指定の方法をすると動作しません。initramfs の方で UUID で指定したら、grub の設定も UUID で指定してください。(私はここでハマりました)

変更したら、こちらもupdate-grubを実行して変更を反映させます。

$ sudo update-grub

ここまで設定できたら一旦再起動します。

4. ハイバネーションのテスト

再起動後に、以下のコマンドを実行してテストをします

$ sudo systemctl hibernate

しばらくすると電源が切れるので、再度電源を入れてUbuntuを起動させます。

うまく行けば上記コマンド実行時の状況に戻っているはずです。

Ubuntu 16.04 以前では、無線LANが使えなくなったり、フリーズしたり色々と問題が発生したのですが、Ubuntu 18.04 と私の Vaio Pro11 では特に追加設定なくハイバネーションができました。

5. メニューの追加

デフォルトではメニューにハイバネーションボタンが無いため、コマンドからしかハイバネーションができません。これでは不便なので、メニューを追加します。

$ sudo vi /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

続いて、gnome shell の extention 「Hibernate Status Button」をインストールします。

右上のスイッチを「ON」にすればインストール完了です。

右上端のメニューを開くと

いままでは↑こんな感じだったメニューに

↑こんな感じでハイバネーションボタンが追加されます。

これでいつでも簡単にハイバネーションさせることができるようになります。

お疲れ様でした。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です