由于某些分区问题,我删除了现有的交换分区。我现在没有交换空间,因此我创建了一个交换文件:
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
或将其替换为新的交换。