当前位置: 首页>>技术教程>>正文


交换分区与交换文件

,

问题描述

我正在阅读 Ubuntu 17.04 的新变化,其中一个引起了我的注意,它正在从典型的交换分区模型转移到用于新安装的新交换文件模型。

与交换分区相比,使用它是否有好处,可能与性能、节省空间有关或在性能、空间节省方面更符合当今的硬件,如 SSD 和 NVMe 或其他什么?

另一个相关问题是如何从交换分区迁移到交换文件?我猜测使用 dd 但想确认一下,因为我直到现在才知道交换文件方案。

最后,休眠是否会成为交换文件的问题?

当然,这些问题可能与用户拥有大量 RAM 并且很少使用交换的情况有关(我猜)。所以只是为了确认这些信息将帮助我和其他有同样疑问的人。

最佳答案

交换文件的主要优点是易于调整大小,因此除非您对交换分区大小不满意,否则转换没有太大意义。为了安全起见,您可以将交换移动到加密分区,但还有其他加密交换的方法。

出于多种原因,传统上不鼓励交换文件。交换文件曾经是 slower before Linux v2.4 ,如果您在碎片化的文件系统上创建交换文件,可能仍然会更慢。您可能更有可能遇到交换文件的内存错误,例如 catch-22s,在您换出一些内存之前您无法分配更多内存,但文件系统需要在您换出之前进行分配。几年前,出于类似原因,休眠到交换文件是一个有争议的新功能。几年前,当文件系统仍然有一些错误(并且没有记录)时,大量写入重要的文件系统是不明智的,因为您可以只使用交换文件。作为传统的默认设置,交换分区的测试比交换文件多。想必Canonical认为这些问题已经不值得担心了。

现在不切换到交换文件的最大原因是“为什么要修复没有损坏的东西”。如果你不备份你的主分区,并且不小心删除了你的 /home 而不是你的交换文件,那么试图恢复它会很麻烦。

不切换到交换文件的另一个原因是,如果您使用的是 btrfsdoesn’t support swapfiles before kernel 5.0(通过慢速环回文件除外)


即使您决定使用交换文件,也没有真正需要删除交换分区,除非您的空间不足。如果需要,您可以同时使用两者。如果您决定删除交换分区,首先使用 Ubuntu LiveCD 启动,然后转到 try without installing 。然后在终端运行 gparted ,删除交换分区,并调整剩余分区的大小(首先进行备份可能是个好主意)。

现在重新启动到您的常规 Ubuntu 安装并创建交换文件。由于交换文件的优点是易于调整大小,因此您可能需要使用 SwapSpace 来管理交换文件的大小:

sudo apt install swapspace

您还可以按照以下说明手动创建交换文件:https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-16-04

长话短说,您可以通过将以下内容粘贴到终端中来制作 1G 交换文件

sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo swapon --show

如果可行,您可以通过执行以下操作使其永久化:

sudo cp /etc/fstab /etc/fstab.bak
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/11890.html,未经允许,请勿转载。