Ubuntu 16.04がサスペンドまたは休止状態になった後シャットダウンしない


14

実際、私の質問は、このフォーラム(および他の場所)のこの質問と同じように見えます。確かに質問は同じですが、より多くの情報を与えることができ、ウェブ上で見つかった解決策を試みたので、とにかくそれを尋ねています(おそらく事態が悪化している)。

Ubuntu 15.10を休止状態にしました(蓋を閉めます)。これを16.04に更新したので(このバージョンは15.10とは異なりLTSなので、良いことだと思いました)、休止状態(またはサスペンションも!)を使用できなくなりました:使用しようとすると、Ubuntuは 'シャットダウンすると、画面が真っ暗になり、電源LEDがオンになり、手動でシャットダウンする以外に何もできません(電源ボタンを長押しします)。再び電源を入れると、次の行が表示されます

ここに画像の説明を入力してください

その後、Ubuntuが起動します。

ここから私が試した

sudo -s
echo shutdown > /sys/power/disk
echo disk > /sys/power/state

そして

sudo -s
echo platform > /sys/power/disk
echo disk > /sys/power/state

最初は部分的にしか機能せず、一度だけ:部分的には、残忍なシャットダウン後にセッションが回復したことを意味します。

それから私はこの提案に従おうとしました。コマンドの後に書かれたコメントを理解していなかったので、文字通りコマンドをそのまま入力しました(コマンドに何か置き換えると「このコマンド/フォルダが存在しない」などのエラーが発生したと思います) ):

編集

cat /proc/meminfo
sudo swapoff -a
sudo dd if=/dev/zero of=/swapfile bs=1024 count=8M
sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile
sudo -b gedit /etc/fstab
free -m
swapon

mount | grep " / "
sudo blkid -g
sudo blkid
sudo filefrag -v /swapfile | grep "First block:"
sudo filefrag -v /swapfile
echo "resume=UUID=cdXX--X18 resume_offset=66050" | sudo tee /etc/initramfs-tools/conf.d/resume
sudo -b gedit /boot/grub/menu.lst
sudo -b gedit /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="... resume=UUID=cdXX--X18 resume_offset=66050"
sudo update-grub -y
sudo update-initramfs -u

たぶんこれはひどいアイデアだったのかもしれません。

IMG:

最後に、上記のリンクされた質問を見つけて、ここに行きましたが、どうすればいいのかわかりません。

EDIT 2入ったら今のところ

...$ sudo swapon -s

何も得られない

...$

BIOSのせいかもしれません。BIOSで、電源管理に移動します。サスペンド時に何をするかのオプションがあります。通常、私のものはS1ですが、S3が物です。
dat tutbrus

ここで暗闇の中で刺しますが、BIOS設定を調べて、それらを確認する必要があります。マニュアルを入手して確認してください。過去に、ソリューションとしてBIOSスイッチを使用していた無数の問題がありました。
ジョナサン

1
非常に悪い考えを元に戻します。これは、Ubuntuにハイバネーション用のスワップスペースを使用させる方法の概念実証でした。sudoを使用してrootとして、追加された最後の行を削除し、追加さ/etc/initramfs-tools/conf.d/resumeれた2つの再開スタンザを削除しetc/default/grub、最後の2行を実行してgrubとinitrdを更新します。/ swapfileを削除します。を実行しますsudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target。これらのターゲットをで試してくださいsudo systemctl suspend。何が起こるのですか?
emk2203

最後に、ubuntu 15.10を再インストールすることにしました。これで、休止状態が再び機能します。別のパーティションに16.04をインストールするかもしれません。そうするときは、この質問と回答を参照します。
エンリコマリアデアンジェリス

回答:


6

休止状態に強制してマシンの電源をオフにします。

(関連するものではなく)実際に問題に対処したこれに対する答えを長い間探した後、私はここで仕事をしてくれたヒントを見つけました:

pmconfigディレクトリにファイルを作成します。

sudo vim /etc/pm/config.d/hibernate_mode

次のHIBERNATE_MODEように変数を設定します:

HIBERNATE_MODE="shutdown"

これを行った後、休止状態は予想どおりに完了時にマシンの電源を切りました。設定のHIBERNATE_MODE機能に関する説明は、pm-hibernateのマニュアルにあります。

休止状態のときにシステムの電源を切るデフォルトの方法。設定されていない場合、システムはカーネルのデフォルトをデフォルト値として使用します。有効な値については、/ sys / power / diskを確認してください。デフォルト値は[角括弧]で囲まれます。

そのファイルの私のデフォルトはでしたplatform。上記の変数を設定してshutdownこれをオーバーライドし、必要な処理を取得します。

休止状態を正しく機能させるための関連情報とヒント:

これらの「関連する問題」に関しては、誰もが冬眠する、迅速なデバッグのヒントを持っているようです

  1. コマンドがsudo pm-hibernate実際に何かを実行していることを確認してください。そうでない場合、これらの他のヒントはどれも違いをもたらしません。動作しない場合は、1)スワップパーティションのサイズがRAMのサイズよりも大きいこと、および2)BIOSでセキュアブートが無効になっていることを確認してください。

  2. そのコマンドが機能するようになったら、Hibernateをシステムに統合することをお好きなように見てください。一般的なもの:

    • Ubuntuメニューに休止状態を追加します。 これは私にとって最良の答えのようです。公式ドキュメントのバージョンも若干異なります。
      注:休止状態がUbuntuメニューに追加されたら、の代替呼び出しを修正する必要がありますsudo systemctl hibernate。どうやら、(少なくともUbuntu 16.04の場合)Ubuntuメニューオプションはのsudo systemctl hibernate代わりに呼び出しますsudo pm-hibernatesystemctl hibernate次のコンテンツをfileに追加することで修正されました/etc/systemd/sleep.conf

      [スリープ]
      HibernateMode = shutdown

      ファイルがまだ存在しない場合は、作成できます。詳細はこちら

    • 電源ボタンの動作を変更する(デフォルトではインタラクティブメニューに表示されます):電源ボタンを直接休止状態にしたり、シャットダウンしたりするには、関連するgsettingsエントリを変更する必要があります。他の多くの答えは、それがあなたのボートを浮かせている場合、GUIの方法を通ります。利用可能なオプションを見るにはgsettings range org.gnome.settings-daemon.plugins.power button-power


2

最後の画像とEDIT 2を見ると、Ubuntuがシステムにスワップパーティションを見つけられないことがわかります。したがって、RAMサイズ以上のスワップパーティションを作成してから、実行してみてください。

sudo pm-hibernate

GPartedを使用してスワップパーティションを作成し、これを実行してインストールします。

sudo apt-get install gparted

2

15.10から16.04にアップグレードした後、同じ問題が発生しました。

  • 蓋を閉めても何もしませんでした
  • システムトレイのメニュー項目で手動でサスペンドすると、システムをリセットする唯一の方法を備えた半分のサスペンド状態になりました。

これらの問題を解決しました

  1. カーネルを4.4.8にアップグレードします(このメニューからのサスペンドが機能した後)
  2. HandleLidSwitchDocked=suspend/etc/systemd/logind.confに行を追加します(lidスイッチが再び機能するようにしました)。

両方の問題は修正すべきバグだと思います(https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1574120)。


これは、サスペンションのみの問題、または休止状態の問題を解決しましたか?
エンリコマリアデアンジェリス

0

Hibernateはデフォルトで無効になっています。

これを試して

sudo pm-hibernate

休止状態テストが機能する場合は、休止状態にするときにsudo pm-hibernateコマンドを引き続き使用できます。

メニューで休止状態オプションを有効にすることもできます。これを行うには、お気に入りのテキストエディターを使用して/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.hibernate-multiple-sessions
ResultActive=yes

このリンクからハイバネーション16.04の詳細を読む

閉鎖すること

sudo shutdown -h now

再起動します

sudo shutdown -r now

私が書いたように、sudo pm-hibernateは以前、フォーム15.10を16.04LTSにアップグレードする前に非常にうまく機能していました。したがって、問題は16.04LTSバージョンに関係するはずです。さらに、私はそれらを理解せずに、指示に従って非常に間違った何かをしたかもしれません。これらの問題を修正するのを手伝ってもらえますか?
エンリコマリアデアンジェリス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.