いい加減ArchLinuxでのhibernate環境の構築についてメモっとく

Posted on 2016/09/06
Tags: Linux

 以前kernelバックエンドを使わないsuspend on disk(hibernate, s2disk)の環境を作った時も (面白いけど)苦労したのにメモってなかったのでまた(面白いけど)苦労した。
ので作業を思い出して、メモしておく。

構成

 構成はuswsusp + pm-utilsにする。
uswsuspはユーザースペースでのsuspendを可能にするツールで、pm-utilsはそのフロントエンドになる。

 スワップメモリにはパーティションではなくスワップファイルを使う。
(スワップファイルは/root/swapに置いた)

インストール

$ yaourt -S uswsusp pm-utils

設定

 uswsuspが動作するように、自分の環境をuswsuspに伝える。 + alpha

/etc/suspend.conf

snapshot device = /dev/snapshot
# いつもここ間違えるけど、/root/swap自体ではなく/root/swapがあるパーティションを指定する
resume device = /dev/sda3
# swap-offset /root/swapの結果
resume offset = 2326528
# ついでに設定
compress = y
threads = y

 pm-utilsがバックエンドにuswsuspを使うようにする。

/etc/pmm/config.d/module

SLEEP_MODULE=uswsusp

 次に重要な作業をする。
ここをミスったところ、僕の環境では起動不可になった。
ここ参照。

/etc/mkinitcpio.conf

.
.
.
HOOKS="base udev autodetect modconf block filesystems keyboard fsck uresume"
.
.
.

僕はカーネルにlinux-ltsを使っているので、 -pオプションにはlinux-ltsを指定する。

# mkinitcpio -p linux-lts

完成

 これでマシンの再起動後に以下のコマンドを打てば、マシンをhibernateすることができる。 はず。

$ sudo pm-hibernate


この記事はこちらから修正リクエストを送ることができます。
いい加減ArchLinuxでのhibernate環境の構築についてメモっとく - github
ゴミ箱ボタンの左にある、鉛筆ボタンを押してね!