多个分布的交换分离

多个分布的交换分离

我的机器上有 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 中实际有多少数据无法从缓存中逐出。

相关内容