hibernate问题

我刚刚将Ubuntu 11.10升级到12.04。 我在新的12.04中遇到了hibernate问题。

我运行以下命令,

sudo pm-hibernate 

但我的系统没有hibernate ,即我的系统没有关闭,而是屏幕只闪烁几秒钟并恢复以前的状态。

如何解决此问题并在我的系统上启用hibernate?

硬件配置中的某些内容与内核的hibernate方法不兼容。 不幸的是,除非故障排除器碰巧有一个非常相似的系统,否则很难排除故障。

您可以尝试替代TuxOnIce ( 维基百科 )hibernate。

  • TuxOnIce ( wiki | 主页 )是内核内置hibernate技术的替代品,应该与更广泛的硬件兼容,更可靠,更灵活。
  • 它很容易安装,如果它不适合你,就像容易删除。
  • 它确实需要安装TuxOnIce的自定义内核,但是后面的说明应该很容易。 如果您之前从未打开过终端,您现在可能想要:-)

    0.要求

    TuxOnIce的唯一要求是您的交换分区至少与您拥有的内存量(RAM)一样大。 您可以通过以下方式检查:

  • 使用Ctrl + Alt + T启动终端

  • 键入free -m ,你应该看到这样的东西:

     缓存的总使用的免费共享缓冲区
    纪录:1024 731 260 0 0 190
     -  / + buffers / cache:540 451
    交换:1536 6 1530
    
  • Swap:后的数字Swap:例如1536)应该大于Mem:之后的数字Mem:例如1024)

  • 如果不是这种情况,并且您的交换小于内存,则必须resize并增加交换分区的大小,或者将TuxOnIce配置为使用特殊的交换文件。 这超出了这个答案的范围,但如果你在评论中提出另一个问题并提及它,我会回答并解释如何。

    1.安装TuxOnIce内核

  • 使用Ctrl + Alt + T启动终端

  • 将以下内容复制并粘贴到终端中。 这会添加TuxOnIce PPA并安装自定义内核和标头。
    •  sudo apt-add-repository ppa:tuxonice / ppa -y 

      一旦加入ppa:

    •   sudo apt-get update
       sudo apt-get install tuxonice-userui linux-generic-tuxonice -y 
       sudo apt-get install linux-headers-generic-tuxonice -y 
  • 现在重启。
  • Ubuntu现在应该启动TuxOnIce内核。 如果有任何问题,请在启动时按住Shift键,您将获得Grub菜单。 使用箭头键转到Previous Linux Versions ,按Enter键,然后再次按Enter键返回工作内核。

    2.测试hibernatefunction。

  • 打开一些您通常使用的应用程序,例如Firefox,Thunderbird,LibreOffice等。

  • 使用Ctrl + Alt + T再次打开终端。
  • 输入sudo pm-hibernate ,按回车键,输入密码。
  • 您应该看到锁定屏幕一秒钟,然后是TuxOnIcehibernate进度屏幕,如下所示:

    在此处输入图像描述

    • 如果TuxOnIce工作,您的计算机将关闭。
    • 再次启动,等待。 TuxOnIce应该从您hibernate的点恢复,包括您在打开的位置打开的所有窗口。
  • 如果这一切都有效,请转到步骤3,它允许您从仪表板启用Hibernate。

    3.从仪表板启用hibernate

  • Alt + F2 ,键入以下内容,然后按Enter键:

      gksudo gedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla 
  • 粘贴下面的内容,按Ctrl + S保存, 按Ctrl + Q退出编辑器:

      [默认情况下重新启用hibernate]
    身份= UNIX用户:*
    行动= org.freedesktop.upower.hibernate
     ResultActive = YES 

    在此处输入图像描述

  • 重启,您应该看到Hibernate选项,如下所示:

    在此处输入图像描述

    4.删除TuxOnIce

    • 如果TuxOnIce不适合您,或者您只是希望将其删除,请启动终端并输入:

        sudo apt-get remove tuxonice-userui linux-generic-tuxonice linux-headers-generic-tuxonice -y 
    • 并记得在菜单中禁用Hibernate选项:

        sudo rm /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla 
    • 然后重启。

这对我有用。 在控制台运行中:

 sudo apt-get install uswsusp 

然后,您可以尝试使用以下命令暂停计算机:

 sudo s2ram 

或hibernate

 sudo s2disk 

如果这对您有用,那么只需重新启动,您就可以从通常的按钮(在Unity桌面右上角并选择Hibernate)中稍后进行hibernate。

我在这里为Dell XPS 13 Developer Edition做了一个简短的教程和其他问题。

之前我遇到过这个问题,我猜你的交换分区小于你想要在hibernate时存储在硬盘中的内存量。

您可以重新调整交换分区的大小,也可以使用交换文件(如果没有可用空间来重新调整交换分区的大小,则会更容易)。

这是怎么做的:

  1. 以root用户身份登录打开终端窗口(选择应用程序>附件>终端)或使用ssh客户端登录到远程服务器。 出现提示时,键入su – (或sudo -s)并输入root密码,切换到root用户:

    sudo -s

  2. 创建存储文件键入以下命令以创建512MB交换文件(1024 * 512MB = 524288块大小):

    dd if=/dev/zero of=/swapfile1 bs=1024 count=524288

    样本输出:

    524288 + 0记录在524288 + 0记录中536870912字节(537 MB)复制,3.23347 s,166 MB / s其中,

    if = / dev / zero:从/ dev / zero文件读取。

    / dev / zero是一个特殊文件,它提供了多个空字符来构建名为/ swapfile1的存储文件。

    of = / swapfile1:从/ dev / zero写入存储文件读取到/ swapfile1。

    bs = 1024:一次读写1024个BYTES字节。

    count = 524288:仅复制523288个BLOCKS输入块。

  3. 安全交换文件出于安全原因设置正确的文件权限,请输入:

    chown root:root /swapfile1

    chmod 0600 /swapfile1

    世界可读的交换文件是一个巨大的本地漏洞。 以上命令确保只有root用户才能读写该文件。

  4. 设置Linux交换区域键入以下命令以在文件中设置Linux交换区域:

    mkswap /swapfile1

    样本输出:

    设置交换空间版本1,大小= 524284 KiB无标签,UUID = 0e5e7c60-bbba-4089-a76c-2bb29c0f0839

  5. 启用交换文件最后,立即激活/ swapfile1交换空间,输入:

    swapon /swapfile1

  6. 更新/ etc / fstab文件要在Linux系统重启后激活/ swapfile1,请在/ etc / fstab文件中添加条目。 使用文本编辑器(如vi)打开此文件:

    vi /etc/fstab

    附加以下行:

    /swapfile1 none swap sw 0 0

    保存并关闭文件。 Linux下次重启后启动,它会自动为您启用新的交换文件。

  7. 如何validation交换是否已激活?

    只需使用免费命令:

    free -m

这是我从本教程获得的链接: 添加交换文件

据我所知,这在12.04不起作用。 不知怎的,他们没有包含hibernate支持,因为它在某些机器上有点儿麻烦。