sg

ハイバネーション – Ubuntu 18.04.1 LTS

ハイバネーション

便利に使うならハイバネーション常識だよねってことで電源メニューを探すけど、メニュー出てこない。

デフォルトではできない仕様のようだ。

ならば導入です。

ハードウェア

  • CPU Intel Core i7 8700K BOX
  • MEM DDR4-2666 DIMM 16GB x 2
  • M/B GIGABYTE Z370 HD3
  • SSD Intel SSD 545s 512GB SSDSC2KW512G8X1
  • HDD SEAGATE ST4000DM004 4TB
  • G/B 玄人志向 GF-GTX1080Ti-E11GB/OC/DF

ソフトウェア

    • OS Ubuntu 18.04.1 LTS
    • NVIDIAドライバ  NVIDIA-SMI 390.87 Driver Version: 390.87
    • CUDA Toolkit 10.0
    • cuDNN v7.3.1 (Sept 28, 2018), for CUDA 10.0
    • OpenBLAS
      • libopenblas-base/bionic 0.2.20+ds-4 amd64
      • libopenblas-dev/bionic 0.2.20+ds-4 amd64
    • python-numpy (1:1.13.3-2ubuntu1)
    • python-scipy (0.19.1-2ubuntu1)
    • python-matplotlib (2.1.1-2ubuntu3)
    • python-yaml (3.12-1build2)
    • HDF5
      • python-h5py (2.7.1-2)
      • libhdf5-serial-dev (1.10.0-patch1+docs-4)
    • graphviz (2.40.1-2)
    • python-pip
    • python-dev
    • pydot-ng-2.0.0
    • Bazel
      • openjdk-8-jre:amd64 (8u181-b13-0ubuntu0.18.04.1)
      • bazel (0.18.0)
    • Python 2.7.15rc1
    • pip 9.0.1 from /usr/lib/python2.7/dist-packages (python 2.7)
    • virtualenv 15.1.0
    • GNOME 3.28.2

パワーマネージメントパッケージの導入

ハイバネーション を使うには

pm-hibernate
sudo apt pm-utils
sudo apt molly-guard

が必要らしい。ただし実際にインストールして

sudo pm-hibernate

とすると、普通に電源offになってしまう。

現在、メモリは32GBであるが、swapは50GBしか用意していなかった。

メモリの2倍程度wapが必要とのことでgpartedでスワップパーティションの拡張を!!

ただしHDDでブートした場合、マウントされたパーティションは操作できない。

そのためDVD-RからUbuntu 18を起動して、gpartedを実行し、swap領域を150GB確保した。

それで

sudo pm-hibernate

を実行すると、、、ただのリブートになってしまった。

ここを参考に作業継続

https://sicklylife.jp/ubuntu/1804/help/power-hibernate.html

sudo systemctl hibernate

ただの電源offである。

btrfs パーティションが存在するとだめってゆうから確認
~$ sudo apt search btrfs-tools
ソート中… 完了
全文検索… 完了
btrfs-tools/bionic 4.15.1-1build1 amd64
移行用ダミーパッケージ

インストールはされていないようだ。

次にここを参照し

Ubuntu 18.04 でハイバネーション

~$ cat /etc/initramfs-tools/conf.d/resume
RESUME=UUID=7e1030e6-e3e9-48f1-950d-930f70f57ef9
~$ ls -l /dev/disk/by-uuid
合計 0
lrwxrwxrwx 1 root root 10 10月 25 09:18 10adb621-c03f-478b-a281-158725af15ea -> ../../sdb2
lrwxrwxrwx 1 root root 10 10月 25 09:18 25ecd0af-6160-4ba2-ad6e-a436d0ccacb4 -> ../../sdb3
lrwxrwxrwx 1 root root 10 10月 25 09:18 7581ad14-1183-4290-bed3-708c218bc0c2 -> ../../sdb5
lrwxrwxrwx 1 root root 10 10月 25 09:18 7e1030e6-e3e9-48f1-950d-930f70f57ef9 -> ../../sdb1
lrwxrwxrwx 1 root root 10 10月 25 09:18 8cd1ab0b-f0f6-43d0-8200-f6bb89e6031d -> ../../sdb4
lrwxrwxrwx 1 root root 10 10月 25 09:18 9E1C-BBDE -> ../../sda3
lrwxrwxrwx 1 root root 10 10月 25 09:18 C476084376083926 -> ../../sda2
lrwxrwxrwx 1 root root 10 10月 25 09:18 D612F6AA12F68EAD -> ../../sda1
lrwxrwxrwx 1 root root 10 10月 25 09:18 cff13db3-9880-452b-83b7-f44cce9f7d91 -> ../../sda4

大丈夫そう。

sudo gedit /etc/default/grub

もちろん、念の為にgrubの複製はしておく。

/etc/default$ sudo cp grub grub.20181025

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=3
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”
GRUB_CMDLINE_LINUX=””

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=3
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash RESUME=UUID=7e1030e6-e3e9-48f1-950d-930f70f57ef9″
GRUB_CMDLINE_LINUX=””

/etc/default$ sudo update-grub
Generating grub configuration file …
Linux イメージを見つけました: /boot/vmlinuz-4.15.0-36-generic
Found initrd image: /boot/initrd.img-4.15.0-36-generic
Linux イメージを見つけました: /boot/vmlinuz-4.15.0-29-generic
Found initrd image: /boot/initrd.img-4.15.0-29-generic
Adding boot menu entry for EFI firmware configuration
完了

そして再びトライ

sudo systemctl hibernate

よし、来い、、、来ません、ただのリブートになってしまいました。

ここを参考にして
https://askubuntu.com/questions/1031633/enable-hibernate-in-ubuntu-18-04-lts
スワップが効いているのか確認

swapon –show

~$ swapon –show
NAME TYPE SIZE USED PRIO
/dev/sdb1 partition 146.5G 0B -2

uswsusp
~$ sudo apt search uswsusp
ソート中… 完了
全文検索… 完了
uswsusp/bionic 1.0+20120915-6.1build1 amd64
Linux により供給されるユーザスペースソフトウェアサスペンドを使うためのツール

~$ sudo apt install uswsusp
パッケージリストを読み込んでいます… 完了
依存関係ツリーを作成しています
状態情報を読み取っています… 完了
以下のパッケージが新たにインストールされます:
uswsusp
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 25 個。
145 kB のアーカイブを取得する必要があります。
この操作後に追加で 711 kB のディスク容量が消費されます。
取得:1 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 uswsusp amd64 1.0+20120915-6.1build1 [145 kB]
145 kB を 0秒 で取得しました (992 kB/s)
パッケージを事前設定しています …
以前に未選択のパッケージ uswsusp を選択しています。
(データベースを読み込んでいます … 現在 182286 個のファイルとディレクトリがインストールされています。)
…/uswsusp_1.0+20120915-6.1build1_amd64.deb を展開する準備をしています …
uswsusp (1.0+20120915-6.1build1) を展開しています…
uswsusp (1.0+20120915-6.1build1) を設定しています …
update-initramfs: deferring update (trigger activated)
man-db (2.8.3-2) のトリガを処理しています …
initramfs-tools (0.130ubuntu3.5) のトリガを処理しています …
update-initramfs: Generating /boot/initrd.img-4.15.0-36-generic

これで、sudo systemctl hibernateを試せば良いのかな。
sudo systemctl hibernate
よし、来い、、、また来ない。ただの電源offだ。

次にここを参考にする。

How to Enable Hibernate in Ubuntu 17.10

/var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla を編集するんだと
おもむろに
sudo gedit
として、スクロールダウンする。

[Disable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=no

[Disable 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=no

[Disable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Disable 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
じゃあ、yesに書き直したるわ。
保存して、すかさず。

sudo pm-hibernate
よし、来い、、、
今後は、snapshotting systemみたいな表示がなされた!
そして一旦電源off。
電源off後に、電源on、、、電源onとなるが、ブートが途中で止まってハングアウト、、、

ここによると、トラブルシュートのために次の操作が勧められている。

https://forums.ubuntulinux.jp/viewtopic.php?pid=56906

sudo gedit /etc/default/acpi-support

# Uncomment the next line to switch away from X and back again after resume.
# This is needed for some hardware, but should be unnecessary on most.
# DOUBLE_CONSOLE_SWITCH=true

ここのコメントアウトが良いらしい。エラーが出ているところが見えるようになるのだろうか。

そして、おもむろに
sudo pm-hibernate
よし、来い、、、キターーーッ
なんで戻ってこれた?
よくわからないけど、成功ということで。

ちなみに
ここによると

https://wiki.archlinux.jp/index.php/%E3%82%B5%E3%82%B9%E3%83%9A%E3%83%B3%E3%83%89%E3%81%A8%E3%83%8F%E3%82%A4%E3%83%90%E3%83%8D%E3%83%BC%E3%83%88

 

/sys/power/image_size は suspend-to-disk によって作成されるイメージのサイズを制御します。イメージサイズの上限として使われる負ではない整数 (バイト) を示す文字列で書くことが出来ます。suspend-to-disk はイメージサイズがその数字を超えないように出来る限りのことをします。ただし、それが無理だということがわかったら、とにかく出来る限り小さいイメージを使ってサスペンドを試みます。特に、このファイルに “0” と書かれていた場合、サスペンドのイメージは目一杯小さくなります。このファイルを読むと現在のイメージのサイズ制限が表示され、デフォルトでは利用可能な RAM の2/5に設定されています。

(スワップパーティションを小さくして) /sys/power/image_size の値を減らしてサスペンドのイメージを出来る限り小さくすることも、値を増やしてハイバネーションを高速化することも可能です。

以上原文ママ。

自分のを確認すると

~$ cat /sys/power/image_size
2147483647

0にすると良い!とかいう感じだけど、余のスワップは150GBもとってあるので、もう少し潤沢に割り当ててもいいんじゃないということで65GB(=69793218560 byte)に変更ですよ。

sudo gedit image_size

仕上げは電源メニューにハイバネーションを表示させることではないか。

ここによると

このファイルに書き込みなされとか記載があるけど、該当するファイルはないのである

/sys/power$ sudo ls /etc/polkit-1/localauthority/
10-vendor.d 20-org.d 30-site.d 50-local.d 90-mandatory.d
/sys/power$ sudo ls /etc/polkit-1/localauthority/10-vendor.d
/sys/power$ sudo ls /etc/polkit-1/localauthority/20-org.d
/sys/power$ sudo ls /etc/polkit-1/localauthority/30-site.d
/sys/power$ sudo ls /etc/polkit-1/localauthority/90-mandatory.d

/sys/power$ sudo ls /var/lib/polkit-1/localauthority/10-vendor.d 20-org.d 30-site.d 50-local.d 90-mandatory.d
/sys/power$ sudo ls /var/lib/polkit-1/localauthority/10-vendor.d
com.ubuntu.desktop.pkla org.freedesktop.NetworkManager.pkla
fwupd.pkla org.freedesktop.packagekit.pkla
geoclue-2.0.pkla systemd-networkd.pkla
gnome-initial-setup.pkla
/sys/power$ sudo ls /var/lib/polkit-1/localauthority/20-org.d
/sys/power$ sudo ls /var/lib/polkit-1/localauthority/30-site.d
/sys/power$ sudo ls /var/lib/polkit-1/localauthority/50-local.d
/sys/power$ sudo ls /var/lib/polkit-1/localauthority/90-mandatory.d

というわけで、

/etc/polkit-1/localauthority/50-local.d 配下に com.ubuntu.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

そしてここからハイバネーション用のボタンを追加しなさいとある

https://extensions.gnome.org/extension/755/hibernate-status-button/

このページから直接インストールするのではなく、Ubuntuソフトウェア経由のインストールだ。

Ubuntuソフトウェアメニューを開く

検索ボタンで、Hibernate Status Buttonを検索し、インストールする。
すぐに電源ボタンの隣にハイバネートボタンが出現する。
これで成功、、、と思いきや、、、ハイバネーション用のボタンは出現するものの電源が落ちるだけのボタンになってしまっている。
失敗!!
sudo pm-hybernate は相変わらず機能するんだけどね。
原因はわからないが、2018/10/25時点でHibernate Status Buttonがサポートしているシェルは「3.26」までなんだよなー
そして、余のGNOMEは3.28.2、、、

—–

その後、普通のハイバネーションも失敗するようになってしまった。
Annotation
This occurred during a previous hibernation, and prevented the system from resuming properly

一旦削除
sudo ls /etc/polkit-1/localauthority/

Hibernate Status ButtonをUbuntuソフトウェアから削除

sudo gedit /sys/power/image_size
0にした。

なぜか改善した。
これ以上いじらないようにしよう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です