交换分区与交换文件

交换分区与交换文件

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

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

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

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

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

答案1

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

传统上,由于多种原因,不建议使用交换文件。交换文件曾经是Linux v2.4 之前较慢,并且如果在碎片文件系统上创建交换文件,速度可能仍然会更慢。使用交换文件时,您可能更容易遇到内存错误,例如,在换出一些内存之前无法分配更多内存,但文件系统需要先分配内存才能换出。几年前,由于类似的原因,休眠到交换文件是一个有争议的新功能。几年前,当文件系统仍然有点错误(并且没有日志记录)时,对重要的文件系统进行大量写入是不明智的,因为您可以改用交换分区。作为传统默认设置,交换分区比交换文件经过更多的测试。大概 Canonical 认为这些问题不再值得担心了。

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

不切换到交换文件的另一个原因是,如果你正在btrfs使用内核 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

相关内容