web-dev-qa-db-ja.com

PM:ハイバネーションイメージが存在しないか、ロードできませんでした

systemctl hibernateで休止状態になった後、システムはシャットダウンされたかのように正常に起動します。カーネル行にresumeパラメーターがあり、mkinitcpio.confにresumeフックがあります

関連するカーネルメッセージは次のとおりです。

$ dmesg | grep -i swap
[    0.000000] Command line: initrd=\initramfs-linux.img root=/dev/sda2 rw resume=/dev/sda4
[    0.000000] Kernel command line: initrd=\initramfs-linux.img root=/dev/sda2 rw resume=/dev/sda4
[    0.350295] PM: Checking hibernation image partition /dev/sda4
[    8.776686] Adding 8191996k swap on /dev/sda4.  Priority:-1 extents:1 across:8191996k FS
$ dmesg | grep -i hibern
[    0.350295] PM: Checking hibernation image partition /dev/sda4
[    0.350301] PM: Hibernation image not present or could not be loaded.

したがって、残っている唯一の可能性は、systemctlディスクに書き込まなかったということです。実際、コマンドを実行すると、最初に画面が数秒間空白になり、次に端末が再び表示され、最後に自動的にシャットダウンします。

Pm-utilsはsystemdではうまく機能しないので、それらに切り替えたくありません。助言がありますか?

ありがとう!

8
rubik

@AdrianRatnapalaのコメントを詳しく説明するには、次のことを行う必要があります。

  1. スワップパーティションのuuidを見つけます。パーティションがsdb3であるとすると、

    $ ls -l /dev/disk/by-uuid/ | grep sdb3
    lrwxrwxrwx 1 root root 10 окт.   9 08:59 1dd7e123-1f82-45f0-a202-0ff3ea6f081a -> ../../sdb3
    
  2. /etc/default/grubを開き、GRUB_CMDLINE_LINUX_DEFAULT="で始まる行を見つけます。引用符resume=/dev/disk/by-uuid/your-swap-uuidの間に追加します。例として:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=/dev/disk/by-uuid/1dd7e123-1f82-45f0-a202-0ff3ea6f081a"
    
  3. ルートとして実行update-grub
  4. 新しいカーネルコマンドラインを使用するには、再起動が必要です。
6
Hi-Angel

この問題で他の人を助けるかもしれないので、ここで私の成功を共有したいと思います。結論、詳細をスキップしたい場合:/ etc/default/grubファイルのGRUB_CMDLINE_LINUX_DEFAULT行を変更し、update-grubを実行した後、休止状態を試す前に、マシンの完全なシャットダウンと再起動を実行します。

詳細:上記のアドバイスに従って、Lenovo ThinkPad T480(デュアルブートDebian 9およびWindows)のLinuxインストールに休止状態を正常に実装し、/ etc/default/grubのGRUB_CMDLINE_LINUX_DEFAULT行にresume = UUID =パラメーターを追加しました。しかし、それは最初は機能しませんでした。パラメーターを追加し、update-grubを実行して、休止状態(systemctl-hibernate)を試みました。システムは休止状態にあるように見えましたが、電源をオンに戻すと、前の画面イメージが表示され、マシンが通常最初の起動時に表示されるログイン画面に入る前に数秒間表示されたままになります。休止状態がなくなる前に存在するすべての作業。変更されたGRUB_CMDLINE_LINUX_DEFAULT行がカーネルに渡されていないことにようやく気づきました(grep 'コマンドライン' syslog)。さらに努力した後、完全にシャットダウンして再起動すると、変更された行が渡されることがわかりました(grep 'コマンドライン' syslog)。その後、systemctl hibernateは以前と同様に休止状態を引き起こしましたが、電源投入時にマシンの以前の状態が正しく復元されました。

0
William Dodd