HYPERSPACE UNIVERSE NEWS

Linux、Ubuntu、ネタ、SF、海外のニュース、その他諸々を扱うBLOG

Ubuntuでハイバネートに失敗する場合の対処法

2010-10-12 14:41:55 | PC リナックス
Ubuntu 10.10で、ハイバネートがうまく動作しなかった時のメモと、その対処法。
(grub2での情報が少なかったので、雑だが纏めてみた。)

うちのPCは、いつもハイバネートに失敗する。
[ 5365.382516] PM: Creating hibernation image:
[ 5365.390010] PM: Need to copy 131308 pages
[ 5365.390010] PM: Normal pages needed: 131308 + 1024, available pages: 130686
[ 5365.390010] PM: Not enough free memory
[ 5365.390010] PM: Error -12 creating hibernation image

と、このようなエラーを吐くが、少し調整すればハイバネート可能になる。

PCの搭載メモリが1G程度だと、Ubuntu 10.10でも他のバージョンでもハイバネーション・イメージを作成する段階でメモリ不足のエラーが出てハイバネートに失敗するようだ。

管理者権限で以下のファイルを作成する。
新規作成ファイル:/etc/pm/sleep.d/01_imagesize
#!/bin/sh

case "${1}" in
	hibernate)
		echo 0 > /sys/power/image_size
		;;
esac

実行フラグを立てる。
$ sudo chmod +x /etc/pm/sleep.d/01_imagesize
これでハイバネーション・イメージが作成されるようになった。
※イメージはスワップ領域に作成されるので、実メモリ以上のスワップ領域のサイズが必要。

これだけだと起動時に復帰してくれないので、initrd.imgの更新。(必要ないかもしれない。)
一部変更ファイル:/etc/initramfs-tools/conf.d/resume
RESUME=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

※↑ハイバネートで使われるスワップのUUIDを入れる。
更新する。
$ sudo update-initramfs -u

grub2での設定。(これは必須。)
一部変更ファイル:/etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

※↑ハイバネートで使われるスワップのUUIDを入れる。
更新する。
$ sudo update-grub

hdparmで特別な設定をしている場合、ハイバネートからの復帰時にhdparmの再設定が必要かもしれない。
※hdparmの再設定はよく分からんので、設定例ではコマンドをそのまま書いた。
新規作成ファイル:/etc/pm/sleep.d/01_hdparm
#!/bin/sh

case "${1}" in
	thaw|resume)
		hdparm -S 50 /dev/sda
		hdparm -S 50 /dev/sdb
		;;
esac

実行フラグを立てる。
$ sudo chmod +x /etc/pm/sleep.d/01_hdparm

ログは /var/log/pm-suspend.log に残る。

ログを見ると、
ハイバネートに入るとき。
/etc/pm/sleep.d/01_hdparm hibernate hibernate
/etc/pm/sleep.d/01_imagesize hibernate hibernate

ハイバネートから復帰するとき。
/etc/pm/sleep.d/01_imagesize thaw hibernate
/etc/pm/sleep.d/01_hdparm thaw hibernate

サスペンドに入るとき。
/etc/pm/sleep.d/01_hdparm suspend suspend
/etc/pm/sleep.d/01_imagesize suspend suspend

サスペンドから復帰するとき。
/etc/pm/sleep.d/01_imagesize resume suspend
/etc/pm/sleep.d/01_hdparm resume suspend

という順序と引数で処理されていた。

参考にしたサイト:
英語
http://wiki.archlinux.org/index.php/Pm-utils#Creating_your_own_hooks
日本語
http://www.revulo.com/blog/20090512.html
http://www.gfd-dennou.org/member/uwabami/cc-env/ConfigGrub.html
http://club.h14m.org/kenji/MacBook/?Ubuntu%209.10%20%A4%C7%A4%CE%A5%CF%A5%A4%A5%D0%A5%CD%A1%BC%A5%C8%C0%DF%C4%EA

最新の画像もっと見る