Kar*_*bol 9 boot grub2 dual-boot suspend hibernate
我一直在 Ubuntu 16.04 上使用 hibernate 没有问题,但突然它停止正常工作。无论我是从电源菜单休眠还是使用sudo pm-hibernate,它都会关闭计算机,但是当我再次打开它并从 grub 菜单中选择 Ubuntu 时,它只会显示黑屏。我尝试了一些解决方案(如下所列),但都没有奏效。
我真的很失望,对于我使用的每个 Ubuntu 版本,我通常都遇到类似的休眠问题(使用不同的笔记本电脑)。
PS:我在 Windows 10 上有双启动,但 Hibernate 与它完美地工作了很长时间。
没有用:
我有同样的问题。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 默认使用该内核启动:
须藤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 命令的输出。然后保存,
须藤更新-grub
然后重新启动并检查“uname -r”的输出是否是较旧的内核(在我的情况下为 4.10 ...)。您现在可以休眠,也可以不休眠。如果没有,请继续下一步。
2.安装不同的东西来休眠而不是默认的:
就我而言,使用较旧的内核摆脱了死机黑屏并允许我在休眠后恢复,但磁盘映像的内容将被清除,即它与重新启动相同,而不是休眠。所以我安装了一些休眠方式不同的东西:
sudo apt-get 安装 uswsusp
然后关闭终端,再次打开并输入:
须藤s2disk
这应该使计算机休眠。如果在恢复后,一切都和您离开时一样,那么您已经解决了问题。但是您仍然需要继续执行第 4 步,以便告诉 Ubuntu 您希望默认使用新的东西,并且您希望在应用程序中具有休眠选项。
3. 告诉 grub 2 交换分区在哪里:
它仍然对我不起作用,所以我不得不告诉 grub 交换分区在哪里:
猫 /etc/fstab
我可以在那里读到“#swap was on /dev/sda2 during installation”,所以我再次编辑了 grub:
须藤 gedit /etc/default/grub
并补充说:
GRUB_CMDLINE_LINUX_DEFAULT="intel_pstate=禁用恢复=/dev/sda2"
重要的部分是“resume=/dev/sda2”,但之前的事情(intel blablabla)由于其他原因在那里。那么,下一步是:
须藤更新-grub
重新启动并再次尝试休眠,执行某些操作(例如,使用 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
并在那里插入:
[在upower中默认重新启用休眠]
身份=unix-用户:*
行动=org.freedesktop.upower.hibernate
结果活动=是
[在 logind 中默认重新启用休眠]
身份=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-抑制
结果活动=是
重新启动并重试。
5.如果在运行第4步后,您无法使用休眠,请sudo systemctl hibernate执行以下操作
第 4 步不足以在 Ubuntu 18.10 中切换到 uswsusp。
编辑休眠服务
须藤 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
Run Code Online (Sandbox Code Playgroud)
更新 systemd
须藤 systemctl 守护进程重新加载
通过运行以下命令测试设置
须藤 systemctl 休眠
| 归档时间: |
|
| 查看次数: |
18396 次 |
| 最近记录: |