我的机器上有 3 个 Linux 发行版(Ubuntu、Arch 和 Fedora)。我为它们分配了一半的 RAM 大小(3GB)作为交换空间。 (我已经意识到拥有 3 个发行版对我来说没有多大用处,但我仍然拥有它们。)
现在的问题是,3 个发行版在加载时挂载了所有 3 个交换分区,并将交换分区视为单个 9GB 分区。
现在,当我使系统休眠时,显然没有任何发行版从休眠状态中醒来。
有什么办法可以克服这个问题吗?
答案1
如果您只想在 3 个发行版之间共享一个交换分区,则创建一个交换分区,然后通过它配置每个发行版,/etc/fstab
以便每个发行版都使用相同的分区。
/dev/sda1 swap swap defaults 0 0
这个问题更详细地讨论了这样做:当两个发行版共享交换分区时会产生副作用吗?。
具体来说,从 @Gilles 在该问答中的回答来看,您无法将 2 个操作系统休眠到同一个交换中,并让它们能够恢复。从他的回答来看:
您无法在运行其中一个操作系统时休眠另一个操作系统。
如果您正在考虑同时运行任何发行版(我认为您没有这样做),那么这是危险的,不应该这样做。看我对这个问题的回答:多个虚拟机上的Linux系统可以共享同一个交换分区吗?。
答案2
作为替代方案slm 的回答,如果您希望每个安装仅使用一个交换分区(这听起来像我),则编辑 /etc/fstab 并删除或注释掉swap
除您希望相关安装使用的类型条目之外的所有类型条目。重新启动后,您应该能够确认cat /proc/swaps
只有一个交换分区正在使用。
很有可能每个发行版的安装程序都检测到了三个交换分区,并且只是对自己说“哎呀,它们都在那里,不妨好好利用它们!”。它应该不过,我首先问过你如何处理它们。
请注意,只有一半的 RAM 大小作为交换并使用休眠可能会很挑剔。它可能有效,然后又可能无效,取决于 RAM 中实际有多少数据无法从缓存中逐出。