以前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/pm/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
ゴミ箱ボタンの左にある、鉛筆ボタンを押してね!