由于某些分区问题,我删除了现有的交换分区。我现在没有交换空间,所以我创建了一个交换文件:
dd if=/dev/zero of=/root/myswapfile bs=1M count=1024
Run Code Online (Sandbox Code Playgroud)
这是之后swapon -s
:
/root/myswapfile file 1048572 1320 -1
Run Code Online (Sandbox Code Playgroud)
现在我想编辑 my/etc/fstab
以在重新启动后启用交换文件。
Tak*_*kat 89
这些是在文件上创建交换的步骤:
创建一个大文件,例如
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
Run Code Online (Sandbox Code Playgroud)
当然,创建定义大小的文件的任何其他方法都可以。
宣布交换到系统
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
Run Code Online (Sandbox Code Playgroud)
/etc/fstab
在下次启动时插入以下行进行交换:
/var/cache/swap/myswap none swap sw 0 0
Run Code Online (Sandbox Code Playgroud)
注意:如果您的系统文件在 SSD 上,您可能需要考虑将交换文件保存在硬盘位置。
另请注意:您不能使用交换文件进行休眠(请参阅Ubuntu SwapFaq)
Ubuntu >= 17.04 的附加说明:/swapfile
默认情况下在新安装中创建交换文件(当不存在交换分区时)。如果我们愿意,我们可以稍后手动创建交换分区。
如果我们想用另一个交换(例如文件)替换现有交换(例如分区),我们需要删除旧交换
sudo swapoff -a # for all
Run Code Online (Sandbox Code Playgroud)
然后/etc/fstab
分别从新交换中删除交换条目或将其替换为新交换。