Ubuntu 18.04のHibernationはそのままでは機能しませんでした(つまり、Sudo systemctl hibernate
)。それで、私はそれを修正するためにいくつかの試みをしばらく前に行いましたが、残念ながら私がしたことを正確に思い出せません。
でも今:
Sudo hibernate
システムが正常に休止状態になり、次回の起動時にシステム状態が正常に復元されます。ただし、ログイン画面は表示されませんが、これは良くありません。そして、そのような再開後よりも多くのアプリケーションを実行している場合、システムは最大20分間フリーズする可能性があります(アプリケーションのウィンドウが表示され、マウスポインターを移動できますが、クリックに応答しません)が、その後は正常に動作します。
Sudo systemctl hibernate
何かをしてシステムをシャットダウンしますが、次のブート時にいくつかのメッセージが表示されます孤立したノードを削除し、最終的には休止状態がないかのようにクリーンブートします。
それをクリアして、GUIインターフェースで休止状態を有効にしてください。
同時に、メモリへのサスペンドとメモリからの再開は問題なく正常に動作します、再開時のログイン画面。
私が持っている主な質問は、2つのメカニズムhibernate
とsystemctl hibernate
のどちらを18.04で使用するかです。
詳細
システムにスワップパーティションがあります
$ lsblk | grep SWAP
└─sda5 8:5 0 16,8G 0 part [SWAP]
$ free -m
total used free shared buff/cache available
Mem: 15894 3386 9945 1311 2561 11848
Swap: 17163 2150 15013
/etc/default/grub
には
GRUB_CMDLINE_LINUX_DEFAULT = "quiet splash resume =/dev/sda5" GRUB_CMDLINE_LINUX = ""
そして
$ cat /sys/power/state
freeze mem disk
$ cat /sys/power/disk
[platform] shutdown reboot suspend test_resume
最後に、冬眠を機能させることができました。私が主題について深く理解していない限り、私はむしろ自分がしたことを説明したいと思います。そう
Sudo update-initramfs -c -k all
およびreboot
この休止状態の試行は、再開ではなくクリーンブートになりました。それで
/etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT = "quiet splash resume = UUID = 2c8ec945-6967-4538-93ef-49eb4df6f2a1"
/etc/initramfs-tools/conf.d/resume
RESUME = UUID = 2c8ec945-6967-4538-93ef-49eb4df6f2a1
それから
$ Sudo initramfs -c -k all
$ Sudo update-grub
$ reboot
この後Sudo systemctl hibernate
と再開は成功しましたが、ログイン画面はありません。
電源ボタンを押すと、システムは休止状態になり、ログイン画面から復元します。
関係者全員に感謝します
UPD:今、私はさらに良い解決策を見つけました-スワップファイルを使用してください
Ubuntu 18.10の新しいデスクトップインストールでこれを検証し、両方ともデフォルトでswapfileを使用するため、新しい18.04デスクトップインストールでも動作すると仮定します。つまり、スワップを割り当てませんpartitionデフォルトでは。ただし、デフォルトのスワップファイルはシステムメモリサイズに関係なく2Gbなので、増やす必要があります。
完全な説明は、たとえば here です。
休止状態の質問に対する2つの優れた回答があります。ここでもう少し詳しく説明します。
古代古代の森カミの答え: buntu 18.04は冬眠後に再開できません
Zannaに対する回答: buntu 16.04で休止状態にするには?
私は通常Hibernateを使用しませんが、最近バグを追跡しながら使用しようとしましたが、18.04で作業するには、/ etc/default/grubに行を追加して、どこから再開するかを伝える必要があることに気付きました。
16.04では、「resume =」パラメータをgrubに追加する必要はなかったので、変更は比較的最近になったと思います。
おそらくUUID(Universally Unique Identifier)を使用するのが最善であり、「ディスク」プログラムを使用してスワップパーティションのUUIDを見つけ、そこからコピーして貼り付けることができます。
Sudo nano /etc/default/grub
を使用して行に追加します
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
引用符の間に追加のカーネルパラメーターresume=UUID=theUUIDofyourswappartition
が含まれるようにします。
あなたのものは異なりますが、私の場合、行は次のとおりです。
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=549816d3-0ed8-44fa-a7e4-968db519a141"
(exit nano using Ctrl+x、 押す y 変更を加えるため enter ファイル名を受け入れる)
変更を有効にするにはSudo update-grub
を実行する必要がありますが、次回の再起動時に問題なく休止状態にできるはずです。
私が知っている限り、休止状態の機能は中断したところから再開することであるため、ログイン画面に移動してパスワードを要求するようには設計されていません。
パスワードを要求するように変更できるかどうかはわかりませんが、他の誰かが何をすべきか知っているかどうかを確認するために別の質問をする価値があるかもしれません。
別のスワップパーティションではなくスワップファイルがある場合は、追加のresume_offset=
パラメーターも追加する必要があります。
Arch Linux Wikiには これに関するすばらしいセクション がありますが、基本的には、スワップファイルはUbuntuがインストールされているメインパーティション上にある必要があります。
resume_offset=
に入れるオフセットを見つけるには、ターミナルを開いて入力します
Sudo filefrag -v /swapfile
次のようなものが得られます。
ext: logical_offset: physical_offset: length: expected: flags:
0: 0.. 32767: 34816.. 67583: 32768:
1: 32768.. 63487: 67584.. 98303: 30720:
2: 63488.. 96255: 100352.. 133119: 32768: 98304:
3: 96256.. 126975: 133120.. 163839: 30720:
etc...
physical_offset
(この場合は34816
)の下にある最初の行の最初の番号が必要です
ちょうど例として、UUIDとSwapfileを使用したマシンの物理オフセットを使用して、GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
行を次のように変更しました。
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=09e601cd-5bac-491a-9115-fda1b2eb4664 resume_offset=34816"
Sudo update-grub
を実行してリブートすることを忘れないでください。ただし、その後、休止状態は正しく動作するはずです。