休眠后无法恢复


9

我一直在使用Ubuntu 16.04进行休眠,没有问题,但是突然它无法正常工作。无论我是从电源菜单休眠还是使用sudo pm-hibernate,它都会关闭计算机,但是当我再次打开计算机并从grub菜单中选择Ubuntu时,它只会显示黑屏。我尝试了一些解决方案(下面列出),但没有一个起作用。

我非常失望的是,在我使用的每个Ubuntu版本中,冬眠(使用不同的笔记本电脑)通常都会遇到类似的问题。

PS:我在Windows 10上具有双重启动功能,但是休眠状态在很长一段时间内一直运行良好。

没用:


我的笔记本电脑有同样的问题-当我从休眠状态返回时-黑屏。对我来说,它从来没有奏效。我的笔记本电脑的“解决方法”是按ALT + CTRL + F1,然后等待几秒钟,然后按ALT + CTRL + F7。这使它复活(在我的笔记本电脑上)。
Vanessa Deagan

谢谢你的建议,但是对我没用。
卡里姆·桑博

只是关上盖子再重新打开呢?(值得一试!)
Vanessa Deagan

再次感谢@VanessaDeagan,但仍然没有任何反应。
卡里姆·桑博

1
如果您尚未看到它,请访问:bugs.launchpad.net/bugs/1743094
史蒂夫(Steve)

Answers:


9

我有同样的问题。16.04中的最新内核中有一个错误。这是我已完成的明确步骤。进行第一个操作,如果它为您解决了问题,请停在那里。如果没有,请继续。

1.设置计算机以使用先前的内核启动

从...开始:

匿名-r

我说4.13 ...然后执行以下操作:

grep -i“菜单'” /boot/grub/grub.cfg

您将在grub中看到不同的菜单项。在我的情况下,连同“ Ubuntu,使用Linux 4.13 ...”一起,有一个菜单选项可以使用先前的内核启动。它说的是Ubuntu,具有Linux 4.10.0-28-generic。在同一行中,您有类似“ gnulinux-4.10.0-28-generic-advanced ...(这里有很多角色)”的内容,请复制该文本,然后默认情况下,我们必须告诉grub2使用该内核进行引导:

须藤cp / etc / default / grub /etc/default/grub.back

须藤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命令的输出。然后保存,

须藤更新

然后重新引导并检查“ uname -r”的输出是否是较旧的内核(在我的情况下为4.10 ...)。您现在可以休眠,也可以不休眠。如果不是,请继续下一步。

2.安装不同于默认值的其他东西以使其休眠:

在我的情况下,使用较旧的内核摆脱了死亡的黑屏,使我可以在休眠后恢复,但是磁盘映像的内容将被清除,即与重新启动相同,而不是休眠。因此,我安装了一些不同休眠方式的狗屎:

sudo apt-get安装uswsusp

然后关闭终端,再次打开并输入:

须藤s2disk

应该可以使计算机休眠。恢复后,如果一切都如您所愿,则说明问题已解决。但是,您仍然需要继续执行第4步,以告诉Ubuntu您希望默认使用新内容,并且还希望具有在应用程序中休眠的选项。

3.告诉grub 2交换分区在哪里:

它仍然对我不起作用,所以我不得不告诉grub交换分区在哪里:

猫/ etc / fstab

我可以在此处阅读“#交换在安装期间在/ dev / sda2上”,因此我再次编辑了grub:

须藤gedit / etc / default / grub

并添加:

GRUB_CMDLINE_LINUX_DEFAULT =“ intel_pstate =禁用简历= / dev / sda2”

重要的部分是“ resume = / dev / sda2”,但由于其他原因,之前的内容(intel blablabla)在那里。好吧,下一步是:

须藤更新

重新引导,然后尝试通过以下方式使某些事物进入休眠状态(例如,使用vlc打开电影):

须藤s2disk

如果您在继续之后这些东西仍然存在,则说明问题已解决。

4.告诉Ubuntu使用您已经安装的新的休眠方式,而不是默认的方式:

现在,您必须告诉Ubuntu使用s2disk进行休眠,而不是默认使用的东西:

须藤gedit /etc/pm/config.d/00sleep_module

并插入:

SLEEP_MODULE =“ uswsusp”

保存并关闭文件。然后:

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

并插入:

[默认情况下,重新启用上层休眠模式]

身份= unix用户:*

Action = org.freedesktop.upower.hibernate

ResultActive =是

[默认情况下,重新启用休眠状态已登录]

身份= unix用户:*

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 =是

重新启动,然后重试。

5.如果在运行步骤4之后,您无法使用sudo systemctl hibernate进行休眠,请执行以下操作

步骤4不足以在Ubuntu 18.10中切换到uswsusp。

编辑休眠服务

sudo systemctl编辑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

更新系统

sudo systemctl守护进程重新加载

通过运行以下命令测试设置

sudo systemctl休眠


谢谢,我从启动菜单中选择了旧内核,然后休眠使其工作。稍后,我将检查其他更新grub步骤,但希望它们能尽快修复当前内核。
卡里姆·桑博

实际上,我从grub菜单中选择了旧内核一次,然后进入休眠状态。当我再次打开它并选择不带高级选项的常规“ Ubuntu”选项时,它会记住我的选择并使用旧内核,幸运的是,所有打开的应用程序都已就绪。
卡里姆·桑博

有什么特殊的理由不只是简单地卸载新内核并坚持使用旧内核?
lrkwz

3

@karim我在这里有同样的问题是如何解决的:

使用交换分区的UUID代替RESUME参数resume=UUID=#中的安装点/etc/default/grub/etc/initramfs-tools/conf.d/resume

在创建交换分区的条目/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)查看它是否有效


我已完成所有设置,但“ sudo update-initramfs -u -k all”似乎可以解决我的问题。谢谢。
Zamicol '18

2

谢谢大家的答案。该问题已在内核4.15中解决。我现在才尝试过,它可以工作。显然,HWE内核对其进行了修复(linux-generic-hwe-16.04 package)。

如果您使用的是Ubuntu 16.04,则只需安装最新的更新即可升级内核。您可以在此处阅读有关内容的更多详细信息。

我当前的内核版本是4.15.0-33-generic。


2

我也遇到这个问题困扰着我……经过多次尝试后的修复是重新安装Ubuntu 18.04,现在它可以正常工作了。我也使用Nvidia的“经过测试的”驱动程序,因为Nvidia曾是罪魁祸首。

也许是 sudo add-apt-repository ppa:graphics-drivers安装了“ Extra” Stuff的PPA和/或396驱动程序破坏了笔记本电脑的休眠能力。无论哪种方式,在编写NVidia的390测试驱动程序时,它都可以完美工作。在切换到Nouveau之前,驱动程序起作用了。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.