恢复了休眠选项,但无法从休眠状态恢复

恢复了休眠选项,但无法从休眠状态恢复

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

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

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

有什么方法可以恢复休眠选项吗?

编辑:我解决了磁盘驱动器问题,并恢复了休眠选项。当我执行“sudo pm-hibernate”时,我的系统进入休眠状态。但是,再次开机时,系统正常启动,因此没有休眠效果。

如何纠正这个问题?

EDIT1:系统 - 联想ideapad s10-2。

在此处输入图片描述

编辑2:/etc/fstab

在此处输入图片描述

编辑3:我的硬盘的屏幕截图。

在此处输入图片描述

答案1

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

然后,您必须确保要使用休眠功能的操作系统(通常是两者)写入正确的分区。这在文件中配置/etc/initramfs-tools/conf.d/resume。您必须在其中输入正确交换分区的 UUID(用于sudo blkid /dev/$device_name获取 UUID)。最后,您需要更新初始 ramdisk:

sudo update-initramfs -u -k all

这应该可以解决问题。

答案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 文档 - Power Hibernate

来源Ubuntu Wiki - 调试内核休眠

答案3

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

/dev/sda1 / ext4 rw,nobootwait 0 1

答案4

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

不知何故,我的自定义计算机配置无法使用休眠模式,尽管我有足够的交换空间。 图像

如果你认为交换空间拖慢了你的速度,你可以使用我在网上找到的这个脚本。它可以清理交换空间。

#!/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

相关内容