我有同样的问题。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休眠