交换分区与交换文件

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

与交换分区相比,使用它有什么好处,可能与性能,节省空间有关,更符合当今的SSD和NVMe等硬件?

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

最后,hibernate是交换文件的问题吗?

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

交换文件的唯一优点是它很容易resize,因此除非您对交换分区大小不满意,否则转换没有多大意义。

由于多种原因,不鼓励使用传统的交换文件。 在Linux v2.4之前 ,交换文件曾经比较慢 ,如果在分段文件系统上创建交换文件,交换文件可能会更慢。 您可能更有可能使用交换文件来查找内存错误,例如catch-22s,在您交换一些内容之前无法分配更多内存,但文件系统需要在交换之前进行分配。 几年前,由于类似的原因,冬眠到交换文件是一个有争议的新function。 多年前,当文件系统仍然有点错误(而不是记录)时,做大量写入重要文件系统是不明智的,而你可以只使用交换文件。 作为传统的默认设置,交换分区的测试比交换文件更多。 据推测,Canonical认为这些问题不再值得担心了。

现在不切换到交换文件的最大原因是“为什么要修复未破坏的东西”。 如果你没有备份你的主分区,并且不小心删除了你的/home而不是你的交换文件,那么尝试将其取回将是一件麻烦事。

不切换到swapfiles的另一个原因是,如果你使用的btrfs 还不支持swapfiles (除了通过慢回送文件)


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

现在重新启动到您的常规Ubuntu安装并创建交换文件。 由于交换文件的优点是易于resize,您可能希望使用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