本人github
如果你想要增加交换空间以提高系统的稳定性或者应对内存不足的情况,你可以创建一个交换文件或者分配一个交换分区。创建交换文件是一种简单且快速的方法,以下是创建交换文件的基本步骤:
-
创建一个空文件:
以root用户身份运行以下命令,其中/swapfile
是交换文件的路径,1G
是交换文件的大小(例如,1GB)。你可以根据需要选择不同的大小和路径。sudo fallocate -l 1G /swapfile
-
设置正确的权限:
为了确保只有root用户可以读写交换文件,设置正确的权限。sudo chmod 600 /swapfile
-
将文件设置为交换空间:
sudo mkswap /swapfile
-
启用交换文件:
sudo swapon /swapfile
-
使交换文件持久化:
为了在系统重启后保持交换文件的活动状态,将其添加到/etc/fstab
文件中。echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
完成以上步骤后,你的系统应该有了新的交换空间,你可以再次运行free -h
命令来检查交换空间的状态。
代码解释
/swapfile none swap sw 0 0
这一行/swapfile none swap sw 0 0
是在/etc/fstab
文件中的一个条目,其目的是指定如何挂载和管理系统的交换空间。下面是每个字段的解释:
-
/swapfile
: 这是交换文件的路径。/swapfile
是一个在文件系统中创建的特殊文件,用于扩展系统的虚拟内存。 -
none
: 这个字段通常用于指定挂载点,但是在这种情况下,它的值是none
,因为交换空间不是一个可以挂载的文件系统。 -
swap
: 这个字段指定了文件系统的类型。在这种情况下,它的值是swap
,表示这个文件是一个交换文件。 -
sw
: 这个字段是可选的挂载选项。sw
意味着交换空间,并允许管理员使用swapon
和swapoff
命令来激活和停用交换空间。 -
0
: 这个字段是用于指定系统如何备份文件系统的。0
表示不备份。 -
0
: 这个字段是用于指定在系统启动时文件系统检查的顺序。0
表示不检查。
在/etc/fstab
文件中添加这个条目,系统在启动时会自动启用指定的交换文件/swapfile
作为交换空间。这是一种确保系统在重启后保持交换空间配置的方法。
echo ‘/swapfile none swap sw 0 0’ | sudo tee -a /etc/fstab
这条命令是用来将新创建的交换文件 (/swapfile
) 添加到系统的文件系统表 (/etc/fstab
) 中,以便系统在每次启动时都能自动挂载并使用该交换文件作为交换空间。下面是命令各部分的解释:
-
echo
:echo
命令用于在终端输出指定的字符串。在这里,它输出的字符串是'/swapfile none swap sw 0 0'
。 -
'
(单引号): 用于围绕要输出的字符串,确保字符串被完整无缺地传递给下一个命令。 -
|
(管道符): 这个符号用于将前一个命令 (echo
) 的输出传递给后一个命令 (sudo tee
)。这样,echo
命令的输出就成了sudo tee
命令的输入。 -
sudo
: 以超级用户 (root) 的权限执行后面的tee
命令。 -
tee
:tee
命令用于读取标准输入并将其写入一个文件和标准输出。在这里,它将把从echo
命令接收到的字符串写入文件/etc/fstab
。 -
-a
: 这个选项告诉tee
命令将内容附加到文件的末尾,而不是覆盖文件的现有内容。 -
/etc/fstab
: 这是要写入的文件的路径。/etc/fstab
是系统的文件系统表,它包含了系统应该如何挂载和使用各种文件系统和设备的信息。
具体来说,'/swapfile none swap sw 0 0'
这个字符串是 fstab
文件的一条新记录,它告诉系统 /swapfile
是一个交换空间文件,应该在系统启动时被自动挂载并用作交换空间。