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


50

由于某些分区问题,我已经删除了现有的交换分区。我现在没有交换空间,因此我使用以下命令创建了交换文件:

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

之后swapon -s

/root/myswapfile    file    1048572    1320    -1

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


1
交换SSD是危险的,因为SSD驱动器在密集的写入操作中持续时间短。这意味着您真的可以像这样消耗您宝贵而昂贵的SSD驱动器。

2
请注意,bs=1G count=1将得到相同的结果,请查看其他单元的dd 联机帮助页
LiveWireBT 2014年

Answers:


79

这些是在文件上创建交换的步骤:

创建一个大文件,例如

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从下一次引导进行交换:

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

注意:如果将系统文件放在SSD上,则可能需要考虑将交换文件保存在硬盘上。

另请注意:您不能使用交换文件进行休眠(请参阅Ubuntu SwapFaq

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

如果我们想用另一个交换(例如,在文件上)替换现有的交换(例如,分区),则需要使用

sudo swapoff -a  # for all

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


1
您为什么不还要交换SSD?
约瑟夫·加文2012年

1
@JosephGarvin:由于磨损可能不是问题,所以在交换SSD时,您仍然会浪费大量(昂贵的)磁盘空间。根据您的系统RAM,您可能不需要经常交换。askubuntu.com/questions/178661/do-i-need-swap-with-new-ssd
Takkat 2012年

1
谢谢,您如何检查/etc/fstab无需重新启动即可正确安装交换文件?如果可以,我看不到交换文件mount -a && mount
Don Giulio

2
@ user72464要显示使用的所有交换,我们可以发出 swapon -s。可用交换也显示在上free -h
塔卡特2015年

1
@ user72464简单..做mount -a
heemayl 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.