2010年05月25日

Ubuntu10.04 ハイバネートがうまくいかない(2) 解決?編

5月10日の時点では、

・スワップ領域を物理メモリのサイズ以上に拡大
・/etc/fstab に正しいスワップパーティションのUUIDを設定
・BIOSのWake-On-LAN をDisableに変更
・sysv-rc-confでacpidを自動起動に設定

まで行いました。
その後、この件についてはどん詰まっていて放置状態だったんですが、先ほど解決方法が見つかりました!
原因は、/boot/grub/grub.cfg に、メモリ内のデータを待避させる領域(=スワップ領域)が指定されていないことにありました。

具体的には、/etc/default/grub の「GRUB_CMDLINE_LINUX=」 以下に、「"resume=スワップパーティション名"」を記述します。
今回はUUIDで記述してみました。
(注意:/boot/grub/grub.cfg を直接編集してはいけないそうです)

1. /etc/fstabでスワップ領域のUUIDを確認

$ cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid -o value -s UUID' to print the universally unique identifier
# for a device; this may be used with UUID= as a more robust way to name
# devices that works even if disks are added and removed. See fstab(5).
#
#
proc /proc proc nodev,noexec,nosuid 0 0
# / was on /dev/sda1 during installation
UUID=b5xxxx9c-cxx5-4xxe-9xx0-68xxxxxxxx96 / ext4 errors=remount-ro 0 1
# /home was on /dev/sda6 during installation
UUID=eexxxxf7-6xx6-4xx2-9xx9-2cxxxxxxxx8d /home ext4 defaults 0 2
# swap was on /dev/sda5 during installation
UUID=e5xxxxbd-bxx0-4xx1-bxx2-d2xxxxxxxx44 none swap sw 0 0

2. スワップ領域のUUIDを/etc/default/grubに記述

$ sudo gedit /etc/default/grub

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.

GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX="resume=UUID=e5xxxxbd-bxx0-4xx1-bxx2-d2xxxxxxxx44"
(略)

3. 変更内容を反映させる

$ sudo update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-22-generic-pae
Found initrd image: /boot/initrd.img-2.6.32-22-generic-pae
Found memtest86+ image: /boot/memtest86+.bin
done

4. /boot/grub/grub.cfgを確認

$ cat /boot/grub/grub.cfg
(略)
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Ubuntu, with Linux 2.6.32-22-generic-pae' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,1)'
search --no-floppy --fs-uuid --set b5xxxx9c-cxx5-4xxe-9xx0-68xxxxxxxx96
linux /boot/vmlinuz-2.6.32-22-generic-pae root=UUID=b5xxxx9c-cxx5-4xxe-9xx0-68xxxxxxxx96 ro resume=UUID=e5xxxxbd-bxx0-4xx1-bxx2-d2xxxxxxxx44 quiet splash
initrd /boot/initrd.img-2.6.32-22-generic-pae
}
(略)

再起動後、いくつかのアプリケーションを起動した状態でハイバネートを実行。
ファン類がすべて停止した後、電源ボタンを押下したところ、しばらくしてパスワード入力画面が表示され、パスワードを入力してログインしたところ、ハイバネート実行前の状態が表示されました。ようやくうまくいきました。

ハイバネート実行〜復帰時のログです。

$ cat /var/log/pm-suspend.log
Mon May 24 23:03:02 JST 2010: performing hibernate
Mon May 24 23:04:38 JST 2010: Awake.
Mon May 24 23:04:38 JST 2010: Running hooks for thaw
/etc/pm/sleep.d/action_wpa thaw hibernate:success.
/usr/lib/pm-utils/sleep.d/99video thaw hibernate:success.
/usr/lib/pm-utils/sleep.d/98video-quirk-db-handler thaw hibernate:success.
/usr/lib/pm-utils/sleep.d/95led thaw hibernate:not applicable.
/usr/lib/pm-utils/sleep.d/95anacron thaw hibernate:success.
/usr/lib/pm-utils/sleep.d/94cpufreq thaw hibernate:success.
/usr/lib/pm-utils/sleep.d/90clock thaw hibernate:not applicable.
/usr/lib/pm-utils/sleep.d/75modules thaw hibernate:success.
/usr/lib/pm-utils/sleep.d/55NetworkManager thaw hibernate:success.
/usr/lib/pm-utils/sleep.d/49bluetooth thaw hibernate:not applicable.
/etc/pm/sleep.d/10_unattended-upgrades-hibernate thaw hibernate:success.
/etc/pm/sleep.d/10_grub-common thaw hibernate:success.
/usr/lib/pm-utils/sleep.d/01PulseAudio thaw hibernate:success.
/usr/lib/pm-utils/sleep.d/00powersave thaw hibernate:success.
/usr/lib/pm-utils/sleep.d/00logging thaw hibernate:success.
/usr/lib/pm-utils/sleep.d/000kernel-change thaw hibernate:success.
Mon May 24 23:04:41 JST 2010: Finished.

参考サイト:
cc-env - grub2 の設定
Ubuntu 9.10 でのハイバネート設定 - MacBookインストールメモ



posted by nambei-x at 00:26| Comment(1) | TrackBack(0) | Linux学習帳 - Ubuntu | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
fedora23でswapを外部ドライブに切ったら全然レジュームができずにハマりましたが、この記事のおかげで無事に解決することができました。
かなり古い記事ですが、ありがとうございました。
Posted by とおりすがり at 2016年05月21日 17:20
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。