Linux Mintでハイバネーション機能を有効化する

Linux

ハイバネーション(hibernation)、あるいは休止状態とは、作業途中の内容や今までの状態をHDDなどのストレージに保存して、電源を落とす機能です。再度電源を入れるとストレージから内容を読み込んで復元するので作業を途中から再開することができます。

ここでは、Linux Mint でハイバネーション機能を有効にする方法を備忘録として書き残しておきます。環境は Linux Mint 22 “Wilma” MATE Edition です。

ハイバネーション機能が有効かどうか確認する

まず最初に、ハイバネーション機能が動作するかどうかを確認します。

$ sudo systemctl hibernate

もしエラーが出たり正常に動作しなかった場合は、以下の手順を踏んで有効化させます。

swapファイル容量を増やす

ハイバネーション機能を使うには実装メモリの2倍以上のswap容量が必要になりますが、インストール直後のswapファイル容量は2GBしかありません。そこで以下の手順でswapファイルの容量を増やします。

swapファイルの無効化・削除

まず既存のswapファイルを無効化し削除します。

$ sudo swapoff /swapfile && sudo rm /swapfile

新しくswapファイルを作成

次に、新たなswapファイルを作成します。この時「count=」の部分にswapファイルの容量を指定します。1GBであれば10242GBであれば20484GBであれば40968GBであれば819216GBであれば16384 といった具合です。自分の環境だと実装メモリが32GBなので4倍の128GB(131072)を設定しています。

$ sudo dd if=/dev/zero of=/swapfile bs=1M count=131072 status=progress

rootにのみ読み取り書き取り権限を付与

$ sudo chmod 600 /swapfile

ファイルをスワップとしてフォーマットし有効化

$ sudo mkswap /swapfile && sudo swapon /swapfile

swapファイルが自動起動するように設定

/etc/fstab/swapfile が記述されているか確認します。

$ cat /etc/fstab | grep "/swapfile"

以下のようになっていれば大丈夫です。

/swapfile                                 none            swap    sw              0       0

もし、/swapfile/etc/fstab に記述されていなかったら、次のコマンドを実行して /etc/fstab に追記します。

$ echo "/swapfile none swap sw 0 0" | sudo tee -a /etc/fstab

指定したswapファイル容量になっているか確認

$ sudo swapon --show

ルートパーティションのUUIDを確認

$ findmnt / -o UUID

自分の場合だとUUIDは「999576fb-7b16-4856-b546-de444387be73」でした。

swapファイルのオフセットを確認

次にswapファイルのオフセットを確認します。

$ sudo filefrag -v /swapfile | grep " 0:" | awk '{print $4}'

自分の場合、swapファイルのオフセットは「111626240」でした。

grubファイルを編集

/etc/default/grub を適当なテキストエディタで開きます。ここでは自分が使い慣れている nano を使います。

$ sudo nano /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash” を以下のように書き換えて保存します。<UUID><OFFSET>は先程確認したものに置き換えてください。

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=<UUID> resume_offset=<OFFSET>"

例として、自分の環境では以下のようになります。

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=999576fb-7b16-4856-b546-de444387be73 resume_offset=111626240"

grubの設定を反映させます。

$ sudo update-grub

ハイバネーションをシャットダウンメニューに追加

まず polkitd-pkla をインストールします。

$ sudo apt -y install polkitd-pkla

テキストエディタで /etc/polkit-1/localauthority/50-local.d/com.linuxmint.enable-hibernate.pkla を開きます。ファイルやディレクトリが存在しない場合は、以下のように作成します。

$ sudo mkdir -p /etc/polkit-1/localauthority/50-local.d
$ sudo nano /etc/polkit-1/localauthority/50-local.d/com.linuxmint.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

最後にシステムを再起動させます。

$ sudo reboot

ハイバネーションの動作確認

システムが再起動したら [Ctrl] + [Alt] + [Del] を押してシャットダウンメニューを開き「ハイバネート(H)」が追加されていることを確認します。

最後に以下のコマンドを実行してシステムがハイバネートするか確かめます。

$ sudo systemctl hibernate

無事にハイバネートされれば、作業は完了となります。

参考にさせていただいたサイト様

How to Enable Hibernate Function in Ubuntu 24.04 & 22.04 LTS | UbuntuHandbook
How to Enable Hibernate Option in Linux Mint 20.x & 21 - FOSTips
Contents: Verify if hibernate works: Enable Hibernate in Linux Mint 20/21 Add Hibernate Option in Shutdown menu Want to ...
ubuntuでサスペンド、ハイバネートが勝手に復帰する現象の対策(linux mint、xubuntu、lubuntu)
ubuntuでサスペンド、ハイバネートが勝手に復帰される現象の対策(linux mint、xubuntu、lubuntu)

コメント