返回了休眠选项,但无法从休眠中恢复


10

在我的Ubuntu 12.04中,休眠选项运行良好且正常。但是,我最近在另一个分区上安装了Debian,当我再次尝试引导到Ubuntu时,在引导启动屏幕上出现一条消息,提示:

/的磁盘驱动器尚未准备就绪或不存在。继续等待;或按s跳过安装,或按M​​进行手动恢复。

登录Ubuntu之后,我发现我的休眠选项丢失了。

无论如何,有没有恢复休眠选项的方法?

编辑:我解决了磁盘驱动器问题,并且我获得了休眠选项。当我执行“ sudo pm-hibernate”时,系统进入了休眠状态。但是,再次通电时,它可以正常启动,因此没有休眠效果。

如何纠正?

编辑1:系统-Lenovo ideapad s10-2。

在此处输入图片说明

EDIT2:/ etc / fstab

在此处输入图片说明

EDIT3:我的硬盘的屏幕截图。

在此处输入图片说明

Answers:


12

我假设您以使用Debian自己独立的交换分区的方式安装了Debian。如果还没有,我建议您这样做(创建另一个交换分区并相应地更改/etc/fstab文件),因为写入同一交换分区的操作系统太不同,可能会丢弃其他操作系统存储在该分区上的休眠数据。

然后,您必须确保要在其上使用休眠模式的OS(通常是两个)都写入正确的分区。这是在/etc/initramfs-tools/conf.d/resume文件中配置的。您必须在其中放置正确交换分区sudo blkid /dev/$device_name的UUID (用于获取UUID)。最后,您需要更新初始虚拟磁盘:

sudo update-initramfs -u -k all

那应该解决它。


1
这工作得很好。谢谢,我恢复了休眠状态。:)
harisibrahimkv 2012年

1
我也有从休眠状态恢复的问题。在以某种方式更改了交换分区的UUID之后,无论我做什么,系统都将无法恢复。通过复制粘贴UUID来修复/etc/initramfs-tools/conf.d/resumesudo blkid似乎已解决了该问题。
TSJNachos117

2

不幸的是,休眠在许多情况下都无法正常工作,如果您希望在重新打开计算机后重新打开文档和应用程序,可能会导致数据丢失。因此,默认情况下禁用休眠模式。

测试休眠是否有效

注意始终在休眠之前
保存您的工作在休眠计算机之前,应该保存所有工作,以防万一出问题了,并且再次打开计算机时无法恢复打开的应用程序和文档。

您可以使用命令行来测试休眠是否可以在计算机上运行。

  1. 通过按Ctrl+ Alt+ T或在Dash中搜索终端来打开终端 。

  2. 键入sudo pm-hibernate到终端,并按下 Enter
    出现提示时输入密码。

  3. 关闭计算机电源后,将其重新打开。您打开的应用程序是否重新打开?

如果休眠不起作用,请检查交换分区是否至少与可用RAM一样大。

启用休眠

如果休眠测试有效,则可以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

重新启动,休眠又回来了!

或运行killall unity-panel-service以重置菜单。

然后,某些用户将需要运行sudo update-grub以使休眠选项在电源菜单中可用。一些用户可能还必须至少注销然后登录才能使其显示在(右上方)电源菜单中。

来源Ubuntu Docs-Power Hibernate

来源Ubuntu Wiki-调试内核休眠


0

尝试将nobootwait选项添加到/etc/fstab,如下所示:

/dev/sda1 / ext4 rw,nobootwait 0 1


你能澄清一下吗?我的/ etc / fstab中有我的交换分区的以下条目:#交换在安装过程中在/ dev / sda8上UUID = 08a07061-165b-4f0a-87c3-470a02d1ea4c none swap sw 0 0我应该将“ sw”更改为“ rw, nobootwait”?
harisibrahimkv 2012年

您需要将其添加到您的根挂载点,而不是交换。发布您的完整fstab,我将向您发布更新的版本。
Frantique 2012年

我已将其添加到问题中。
harisibrahimkv 2012年

1
errors = remount-ro,nobootwait
Frantique 2012年

0

进入休眠状态时,将复制您的RAM的完整映像以进行交换。因此,大多数情况下,人们在休眠不工作方面遇到问题,他们的交换量太小。

您至少需要与RAM一样多的交换。如果您有大量RAM,请设置swappiness = 0。因此,如果您有8GB的RAM,请使用8.5或9GB的交换空间。如果您有4GB的RAM,那么6GB的交换空间是一个不错的选择。


我有1GB RAM,我有1.95GB交换空间。更新的问题带有我的硬盘的屏幕截图。
harisibrahimkv 2012年

0

据我所知,包括Ubuntu在内的Linux应该安装了ram的交换空间2倍。

我的自定义构建计算机配置有些无法使用休眠的方式,因此我拥有了足够多的交换空间。 图片

如果您认为交换会拖慢速度,可以使用我在互联网上找到的脚本。它清除掉期。

#!/bin/bash

free_data="$(free)"
mem_data="$(echo "$free_data" | grep 'Mem:')"
free_mem="$(echo "$mem_data" | awk '{print $4}')"
buffers="$(echo "$mem_data" | awk '{print $6}')"
cache="$(echo "$mem_data" | awk '{print $7}')"
total_free=$((free_mem + buffers + cache))
used_swap="$(echo "$free_data" | grep 'Swap:' | awk '{print $3}')"

echo -e "Free memory:\t$total_free kB ($((total_free / 1024)) MB)\nUsed swap:\t$used_swap kB ($((used_swap / 1024)) MB)"
if [[ $used_swap -eq 0 ]]; then
    echo "Congratulations! No swap is in use."
elif [[ $used_swap -lt $total_free ]]; then
    echo "Freeing swap..."
    swapoff -a
    swapon -a
else
    echo "Not enough free memory. Exiting."
    exit 1
fi

我有2倍的可用交换空间。感谢您的建议。
harisibrahimkv 2012年
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.