我正在阅读 Ubuntu 17.04 的新变化,其中一个引起了我的注意,它正在从典型的交换分区模型转移到新的交换文件模型以进行新安装。
与交换分区相比,使用它是否有好处,可能与性能、空间节省有关或在性能、空间节省方面,更符合当今的硬件,如 SSD 和 NVMe 或其他东西?
另一个相关问题是如何从交换分区迁移到交换文件?我猜想使用 dd 但想确认一下,因为直到现在我才知道交换文件方案。
最后,休眠会成为交换文件的问题吗?
当然,这些问题可能与用户拥有大量 RAM 并且很少使用交换的情况有关(我猜)。所以只是为了确认这些信息将帮助我和其他有同样疑问的人。
交换文件的主要优点是它很容易调整大小,因此除非您对交换分区大小不满意,否则转换没有太大意义。为了安全起见,您可以将交换移动到加密分区,但还有其他加密交换的方法。
出于多种原因,传统上不鼓励交换文件。在 Linux v2.4 之前,swapfile 曾经比较慢,并且如果您在碎片文件系统上创建交换文件,可能仍然会更慢。您可能更有可能使用交换文件遇到内存错误,例如 catch-22,在您换出一些内存之前,您无法分配更多内存,但文件系统需要先分配,然后才能换出。几年前,出于类似原因,休眠到交换文件是一个有争议的新功能。几年前,当文件系统仍然有点问题(并且没有日志记录)时,对重要的文件系统进行大量写入是不明智的,而您可以只使用交换分区。作为传统的默认设置,交换分区比交换文件进行了更多的测试。想必 Canonical 认为这些问题已经不值得担心了。
现在不切换到交换文件的最大原因是“为什么要修复未损坏的东西”。如果你不备份你的主分区,并且不小心删除了你的
/home
而不是你的交换分区,那么试图把它找回来会很麻烦。不切换到交换文件的另一个原因是,如果您使用
btrfs
的内核 5.0 之前不支持交换 文件(通过慢速回送文件除外)即使您决定使用交换文件,也没有真正需要删除交换分区,除非您空间不足。如果需要,您可以同时使用两者。如果您决定删除交换分区,首先使用 Ubuntu LiveCD 启动,然后运行
try without installing
. 然后在终端运行中gparted
,删除交换分区,并调整剩余分区的大小(先做备份可能是个好主意)。现在重新启动到您的常规 Ubuntu 安装并创建交换文件。由于交换文件的优点是易于调整大小,因此您可能希望使用 SwapSpace 来管理交换文件的大小:
您还可以按照以下说明手动创建交换文件:https ://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-16-04
长话短说,您可以通过将以下内容粘贴到终端中来制作 1G 交换文件
如果可行,您可以通过执行以下操作使其永久化: