添加新的交换文件。如何编辑 fstab 以在重启后启用交换?

添加新的交换文件。如何编辑 fstab 以在重启后启用交换?

由于某些分区问题,我删除了现有的交换分区。我现在没有交换空间,因此我创建了一个交换文件:

dd if=/dev/zero of=/root/myswapfile bs=1M count=1024

之后情况如下swapon -s

/root/myswapfile    file    1048572    1320    -1

现在我想编辑我的/etc/fstab以在重启后启用交换文件。

答案1

以下是在文件上创建交换的步骤:

创建一个大文件,例如

sudo mkdir -p /var/cache/swap/   # create a directory that holds the swap file
sudo dd if=/dev/zero of=/var/cache/swap/myswap bs=1M count=4096 # for 4 GByte

当然创建定义大小文件的任何其他方法会做。

向系统通告交换

sudo chmod 0600 /var/cache/swap/myswap # only root should have access
sudo mkswap /var/cache/swap/myswap # format as swap
sudo swapon /var/cache/swap/myswap # announce to system

/etc/fstab在下次启动时将以下行插入到swap 中:

/var/cache/swap/myswap    none    swap    sw    0   0

笔记:如果您的系统文件位于 SSD 上,您可能需要考虑将交换文件保存在硬盘位置上。

另请注意:自 2021 年以来,您可以使用交换文件进行休眠,但这需要更多工作。您需要找到根分区的 UUID 和交换文件的偏移量,然后GRUB_CMDLINE_LINUX_DEFAULT在 /etc/grub/default 中添加 resume=UUID=xxx resume_offset=xxx 作为值,可能还有 initramfs(有关详细信息,请参阅 [https://ubuntuhandbook.org/index.php/2021/08/enable-hibernate-ubuntu-21-10/])。

Ubuntu >= 17.04 的附加说明:/swapfile在新安装中(当没有交换分区时),会默认创建一个交换文件。我们可以手动稍后创建交换分区如果我们愿意的话。

如果我们想用另一个交换(例如文件)替换现有的交换(例如分区),我们需要使用以下命令删除旧交换

sudo swapoff -a  # for all

然后分别从中删除交换条目/etc/fstab或将其替换为新的交换。

相关内容