web-dev-qa-db-ja.com

休止状態の後に再開できません

Ubuntu 16.04でhibernateを問題なく使用していますが、突然正常に動作しなくなりました。電源メニューから休止状態にしたり、Sudo pm-hibernateを使用したりすると、コンピューターの電源が切れますが、再度電源を入れてgrubメニューからUbuntuを選択すると、黒い画面が表示されます。いくつかの解決策を試してみました(以下にリストされています)が、どれも機能しませんでした。

使用しているすべてのUbuntuリリースで、通常、休止状態(ラップトップが異なる)で同様の問題があることに本当に失望しています。

PS:Windows 10ではデュアルブートを使用していますが、HibernateはWindows 10で長い間完全に動作していました。

動作しませんでした:

8
Karim Sonbol

回答ありがとうございます。この問題はカーネル4.15で解決されました。私は今それを試したところ、うまくいきました。どうやらHWEカーネルが修正したようです(linux-generic-hwe-16.04 package)。

Ubuntu 16.04を使用している場合は、最新のアップデートをインストールするだけでカーネルをアップグレードできます。それについての詳細を読むことができます here

現在のカーネルバージョンは4.15.0-33-genericです。

1
Karim Sonbol

同じ問題がありました。 16.04の最新のカーネルにバグがあります。ここに私が行った明示的な手順があります。最初の手順を実行し、問題が解決した場合はそこで停止します。そうでない場合は、続行します。

1。以前のカーネルで起動するようにコンピューターを設定します

皮切りに:

うなめ-r

私は4.13と言います...それから:

grep -i "menuentry '" /boot/grub/grub.cfg

Grubにさまざまなメニューエントリが表示されます。私の場合、「Ubuntu、with Linux 4.13 ...」と一緒に、以前のカーネルで起動するメニューオプションがありました。 Ubuntu、Linux 4.10.0-28-genericと言いました。同じ行に、「gnulinux-4.10.0-28-generic-advanced ...(一連の文字)」のようなものがあります。そのテキストをコピーし、grub2にデフォルトでそのカーネルで起動するように指示する必要があります。

Sudo cp/etc/default/grub /etc/default/grub.back

Sudo gedit/etc/default/grub

次に、次の行を挿入しました。

GRUB_DEFAULT = "gnulinux-advanced-4a50e1e8-56d9-413e-9954-55648888a31d> gnulinux-4.10.0-28-generic-advanced-4a50e1e8-56d9-413e-9954-55648888a31d"

この行をそのままコピーするのではなく、前述のgrepコマンドの出力を使用してください。次に保存して、

Sudo update-grub

次に、再起動して、「uname -r」の出力が古いカーネル(私の場合は4.10 ...)であることを確認します。今、休止状態にできるかどうか。そうでない場合は、次の手順に進みます。

2。デフォルトのものとは異なるものを休止状態にインストールします:

私の場合、古いカーネルを使用すると、死の黒い画面がなくなり、休止状態の後に再開できましたが、ディスクイメージの内容は消去されました。つまり、休止状態ではなく、再起動と同じでした。だから、私は別の冬眠するたわごとをインストールしました:

Sudo apt-get install uswsusp

次に、ターミナルを閉じ、もう一度開き、次のように入力します。

Sudo s2disk

これにより、コンピューターが休止状態になります。再開後、すべてが元の状態に戻っていれば、問題は解決しています。ただし、デフォルトで新しいものを使用し、アプリケーションで休止状態にするオプションがあることをUbuntuに伝えるには、ステップ4に進む必要があります。

。grub 2にスワップパーティションの場所を伝えます:

それでもうまくいきませんでしたので、スワップパーティションの場所をgrubに伝えなければなりませんでした。

猫/ etc/fstab

「インストール中に#スワップが/ dev/sda2にあった」と読めるので、もう一度grubを編集しました。

Sudo gedit/etc/default/grub

追加:

GRUB_CMDLINE_LINUX_DEFAULT = "intel_pstate = disable resume =/dev/sda2"

重要な部分は「resume =/dev/sda2」ですが、他の理由で以前のもの(Intel blablabla)があります。さて、次のステップは次のとおりです。

Sudo update-grub

再起動して、次のものを使用していくつかの処理を実行して休止状態に戻します(例:vlcでムービーを開く)。

Sudo s2disk

再開後もまだそこにある場合、問題は解決しています。

4。デフォルトではなく、インストールした新しい休止状態のものを使用するようにUbuntuに指示します。

デフォルトで付属するものの代わりに、s2diskを使用して休止状態にするようにUbuntuに指示する必要があります。

Sudo gedit /etc/pm/config.d/00sleep_module

そしてそこに挿入します:

SLEEP_MODULE = "uswsusp"

ファイルを保存して閉じます。次に:

Sudo gedit /etc/polkit-1/localauthority/50-local.d/enable-hibernate.pkla

そしてそこに挿入します:

[upowerでデフォルトで休止状態を再度有効にする]

Identity = unix-user:*

Action = org.freedesktop.upower.hibernate

ResultActive = yes

[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-阻害する

ResultActive = yes

再起動して再試行してください。

5。ステップ4を実行した後、Sudo systemctl hibernateを使用して休止状態にできない場合は、以下を実行します

ステップ4では、Ubuntu 18.10でuswsuspに切り替えるには不十分です。

休止状態サービスを編集する

Sudo systemctl edit systemd-hibernate.service

そして、以下を追加します

[Service]
ExecStart=
ExecStartPre=-/bin/run-parts -v -a pre /usr/lib/systemd/system-sleep
ExecStart=/usr/sbin/s2disk
ExecStartPost=-/bin/run-parts -v --reverse -a post /usr/lib/systemd/system-sleep

Systemdを更新

Sudo systemctl daemon-reload

以下を実行してセットアップをテストします

Sudo systemctl hibernate

7
Mephisto

私もこの問題に悩まされていました...そして多くの試みの後の修正はUbuntu 18.04を再インストールすることでしたが、今では完全に機能しています。 Nvidiaは以前の犯人だったので、Nvidiaの「テスト済み」ドライバーも使用しています。

おそらく、 "Extra" Stuffや396ドライバーをインストールした "Sudo add-apt-repository ppa:graphics-drivers" ppaがラップトップの冬眠能力を台無しにしたのでしょう。いずれにしても、NVidiaの390でテストされたドライバーを使用して、この記事を書いている時点では問題なく動作します。 Nouveauドライバーに切り替える前に機能しました。

@karim私がここで同じ問題を抱えていたのは、それをどのように修正したかです:

resume=UUID=#/etc/default/grubの両方のRESUMEパラメーター/etc/initramfs-tools/conf.d/resumeでマウントポイントの代わりにスワップパーティションのUUIDを使用します

/etc/fstabにスワップパーティションのエントリを作成しますマウントポイントなしこのようなもの

# Entry for Swap : 
UUID=# none  swap    sw              0       0

/etc/default/grubで、休止状態を再開するために別のエントリを使用しました

# FOR HIBERNATION 
GRUB_CMDLINE_LINUX="resume=UUID=..."

@Mephistoの説明に従って、地方自治体(pkla)でポリシーキットを作成する

InitramfsとGRUBを更新する

Sudo update-initramfs -u -k all
Sudo update-grub

再起動し、いくつかのアプリを開き、systemctl hibernate(Sudoなし)を使用して、動作するかどうかを確認します

2
Roey