购买的 1GB 内存的 Linux 小机器,在编译安装 PHP 的时候内存捉急,只好开启 swap 交换分区来增大内存。

方法

有两种方式创建 swap 分区:

  • 用磁盘分区,需要先通过 fdisk 命令创建分区
  • 用文件系统,通过 dd 命令创建文件

用磁盘分区做 swap 分区

注意:重新分区会导致数据丢失。

重新分区前,需要停止所有的 swap 分区:

swapoff -a

对磁盘进行分区,在 fdisk 中用 t 命令将新添的分区设置为 swap 分区()Linux 中 swap 类型对应的分区 id 为 82),最后用 w 命令将操作写入硬盘:

fdisk /dev/sdb

格式化 swap 分区(swap 分区名称要看你自己的机器):

mkswap /dev/sdb2

启动 swap 分区

swapon /dev/sdb2

设置系统启动时自动启用这个交换分区,编辑 /etc/fstab,加入下面一行

/dev/sdb2 swap swap defaults 0 0

用文件做 swap 分区

用 dd 命令创建要作为 swap 分区的文件。count 表示块的数量,1024 块表示总共 1GB(bs*count):

dd if=/dev/zero of=/root/swapfile bs=1M count=2048

用 mkswap 命令格式化 swap 分区文件:

mkswap /root/swapfile

启用 swap 分区文件:

swapon /root/swapfile

系统开机时自启用,在文件 /etc/fstab 中添加一行:

/root/swapfile swap swap defaults 0 0

或者可以直接使用这个命令

echo '/root/swapfile swap swap defaults 0 0' >>/etc/fstab

合并命令后:

dd if=/dev/zero of=/root/swapfile bs=1M count=2048
mkswap /root/swapfile
swapon /root/swapfile
echo '/root/swapfile swap swap defaults 0 0' >>/etc/fstab