Linux下直接在⼀etc⼀fstab 下修改swap的值 是否可以扩展swap空间?

2026年09月08日 19:32
有3个网友回答
网友(1):

不可以。要先创建swap设备,再修改fstab
swap设备可以是分区,也可以是文件
分区的话: mkswap /dev/xxx
文件的话:先创建指定大小的空文件(假设是1000M = 1M * 1000 ), dd if=/dev/zero of=xxx bs=1M count=1000, 然后再mkswap xxx

网友(2):

fstab有值?他只是一个分区表,你得有这个分区才能写进去,不然写进去也没效果

网友(3):

1.首先用命令free查看系统内Swap 分区大小。

命令: free -m

显示:

total used free shared buffers cache

Mem: 1002 964 38 0 21 410

-/+ buffers/cache: 532 470

Swap: 951 32 929

可以看到Swap 只有951M,不符合Oracle-xe-client 的安装要求。
--------------------------------------------------------------------
1.2.创建一个Swap 文件。

命令: mkdir swap

命令: cd swap

命令: sudo dd if=/dev/zero of=swapfile bs=1024 count=100000
----------------------------------------------------------------------
出现下列提示,上面命令中的count 即代表swap文件大小。

记录了100000+0 的读入

记录了100000+0 的写出

102400000 字节(102 MB) 已复制,0.74704 秒,137 MB/秒
<自己的实践中加入了3G,
sudo dd if=/dev/zero of=swapfile bs=3072 count=1048576
>
-----------------------------------------------------------------------
1.3.把生成的文件转换成Swap 文件

命令:sudo mkswap swapfile
-------------------------------------------------------------
Setting up swapspace version 1, size = 102395 kB

no label, UUID=09fde987-5567-498a-a60b-477e302a988b
----------------------------------------------------------
1.4.激活Swap 文件。

命令: sudo swapon swapfile

再次查看free -m 的结果。

total used free shared buffers cached

Mem: 1002 967 34 0 22 410

-/+ buffers/cache: 534 467

Swap: 1053 32 1021

添加成功。

扩展:

如果需要卸载这个swap 文件,可以进入建立的swap 文件目录。执行下列命令。

sudo swapoff swapfile
-----------------------
备注:此时只是临时的,退出后再进入,还得用:sudo swapon swapfile 重新挂载,否则不会默认链接
解决办法:打开fstab, 在最后一行添加“
命令:sudo gedit /etc/fstab
/root/swap/swapfile swap swap defaults 0 0

其中:/root/swap/swapfile 是之前建立的swap 新分区文件的完整路径。
重启解决。