我可以在没有交换分区的情况下休眠 Linux 吗?

Han*_*etz 34 linux hibernate swap

我没有在我的 PC 上设置交换分区,因为 a) 我有足够的 RAM (8 GB) 和 b) 我有大硬盘,我不想切成小块,所以我最小的分区是 50 GiB,我已经将它们用于操作系统。

现在,要休眠,我的 Linux (Ubuntu Jaunty) 需要交换。我有一个备用的 100 GB 分区,所以我将其设置为交换分区,但我对此并不满意。它只用于休眠(总是有足够的 RAM 可用并且系统永远不会进行交换),而且它对于交换来说也有点大。此外,我最终将需要它来做其他事情。

如何在 Ubuntu Jaunty 中没有交换分区的情况下休眠(挂起到磁盘)?

Rob*_*anu 24

未经测试的想法:为什么不为s2disk管理交换文件(而不是交换分区)并在恢复时将其删除的磁盘创建包装器或任何实用程序处理挂起到磁盘?

  • 创建交换文件:dd if=/dev/zero of=/swapfile bs=1024 count=8388608(8GB)
  • 设置交换文件: mkswap /swapfile
  • 只有当您需要设置挂起时,您才能激活它: swapon /swapfile
  • 当您恢复时,您可以停用它: swapoff /swapfile

从交换文件中恢复是可能的,并且在 kernel.org 上记录

  • 请添加命令`chmod 0600 /swapfile`。全球可读的交换文件是一个巨大的本地漏洞。 (8认同)
  • 实际上,您确实需要将一系列内容写入磁盘,创建带有 truncate 的文件会导致 `swapon: /swapfile: skipping - 它似乎有漏洞。`。 (4认同)
  • 我知道这是旧的,但我会使用 'truncate' 而不是 'dd'。无需实际向磁盘写入任何内容。 (2认同)

nik*_*nik 10

你可能有两种方法,

  1. 考虑交换文件而不是交换分区
    • 使用较小的(与您的分区大小相比,但足以容纳内存)USB 记忆棒进行交换分区

不管你做什么,我觉得swapoffswapon简历后,将是有益的。
而且,由于您并不真正需要交换,因此您可以swapoff在恢复后离开。

更新:该评论很好地说明了慢速 USB 休眠。
因此,请按编号顺序检查——第一个方案有使用交换文件进行休眠的注意事项。


出于好奇,
我想知道为什么当像 Ubuntu 这样的 linux 可以关闭和启动这么快时你想要休眠。
我猜,

  • 你用一些应用程序加载你的 8GB 内存并将它们留在那里
  • 或者,您在 LAN 上唤醒

但是,真的是这样吗?或者,您还有其他休眠的原因吗?

我使用USB 启动 Ubuntu并且总是关机。

  • 我倾向于在工作期间打开很多东西,我喜欢第二天把它们全部拿回来。Ubuntu 启动速度很快(实际上,对我来说,它似乎比恢复更快),但 Eclipse、Firefox 等可能不是,其他应用程序甚至可能在关闭时都不会保存它们的当前状态。 (7认同)
  • Firefox 不记得每个窗口所在的工作区,因此在等待它们全部加载后,必须将它们重新分配回原位。也没有办法恢复终端窗口之类的东西的状态。 (3认同)
  • 挂起到 USB 闪存棒会 * 太慢 *。 (2认同)
  • @Hanno,Firefox 还允许您将会话保存到滚动位置。所以,Save-and-Quite 很棒。不确定 Eclipse 可以做什么。 (2认同)