你有两种选择:添加一个交换分区或添加一个交换文件。推荐你添加一个交换分区,不过,若你没有多少空闲空间可用,创建交换分区可能会不大容易。
要添加一个交换分区(假设 /dev/hdb2 是你想添加的交换分区):
-
硬 盘驱动器不能正在被使用(分区不能被挂载,交换分区不能被启用)。在使用硬盘时不能修改分区表的原因是,这样做使内核不能够正确识别这些改变。数据可能会 由于分区表和所挂载的分区的错配而被写入错误的分区,从而被覆盖。要达到这一目的而又不使用硬盘驱动器的最简单方法是在救援模式下引导你的系统。请参阅第11章 来获得将系统引导入救援模式的说明。当提示挂载文件系统时,选择「跳过」。
如果驱动器不包含任何被使用的分区,你还可以卸载这些分区,使用 swapoff 命令来关闭硬盘驱动器上的所有交换空间。
-
要使用 parted 来创建交换分区:
-
在 shell 提示下以根用户身份键入命令:parted /dev/hdb。这里的 /dev/hdb 是你的带有空闲空间的硬盘驱动器的设备名称。
-
在 (parted) 提示下,键入 print 来查看现存的分区和空闲空间的数量。起止值以MB为单位。判定硬盘驱动器上的空闲空间数量,以及你想给新建的交换分区分配的空间数量。
-
在 (parted) 提示下,键入 mkpartfs part-type linux-swap start end,这里的 part-type是 primary、extended、logical 中的一个,start 是分区的起始点,end 是分区的终止点。
警告 改变会立即发生,在键入时请谨慎从事。
-
键入 quit 来退出 parted。
-
-
现在,你就可以创建交换分区了,使用 mkswap 命令来设置交换分区。在 shell 提示下以根用户身份键入以下命令:
mkswap /dev/hdb2
-
要立即启用交换分区,键入以下命令:
swapon /dev/hdb2
-
要在引导时启用,编辑 /etc/fstab 文件来包含以下行:
/dev/hdb2 swap swap defaults 0 0
在系统下次引导时,它就会启用新建的交换分区。
-
新添了交换分区并启用它之后,请查看 cat /proc/swaps 或 free 命令的输出来确保交换分区已被启用了。
要添加交换文件:
-
判定新交换文件的大小,将大小乘以1024来判定块的大小。例如,大小为64MB的交换文件的块大小为65536。
-
在 shell 提示下以根用户身份键入以下命令,其中的 count 等于想要的块大小:
dd if=/dev/zero of=/swapfile bs=1024 count=1024000
-
使用以下命令来设置交换文件:
mkswap /swapfile
-
要立即启用交换文件而不是在引导时自动启用,使用以下命令:
swapon /swapfile
-
要在引导时启用,编辑 /etc/fstab 文件来包含以下行:
/swapfile swap swap defaults 0 0
系统下次引导时,它就会启用新建的交换文件。
-
新添了交换分区并启用它之后,请查看 cat /proc/swaps 或 free 命令的输出来确保交换分区已被启用了。
增加Swap空间,分以下几步:
1)成为超级用户
$su - root
2)创建Swap文件
# dd if=/dev/zero of=swapfile bs=1024 count=65536(交换分区大小:KB)
创建一个有连续空间的交换文件。
3)激活Swap文件
#/usr/sbin/swapon swapfile
swapfile指的是上一步创建的交换文件。
4)现在新加的Swap文件已经起作用了,但系统重新启动以后,并不会记住前几步的操作。因此要在/etc/fstab文件中记录文件的名字,和Swap类型,如:
/path/swapfile none Swap sw,pri=3 0 0
5)检验Swap文件是否加上
/usr/sbin/swapon -s
删除多余的Swap空间。
1)成为超级用户
2)使用Swapoff命令收回Swap空间。
#/usr/sbin/swapoff swapfile
3)编辑/etc/fstab文件,去掉此Swap文件的实体。
4)从文件系统中回收此文件。
#rm swapfile
5)当然,如果此Swap空间不是一个文件,而是一个分区,则需创建一个新的文件系统,再挂接到原来的文件系统上。
#
# Copyright (C) Sebastian Philipp
#
set -e
swapsize="$1"
swapname="$2"
if [ -z "$swapsize" -o -z "$swapname" ]
then
cat <<EOF
Usage: $0
size: the size of the file, like "8G"
file: path to the new swap file. This file should not exists.
EOF
exit 1
fi
if [ -e $swapname ]
then
echo "error: File already exists. $swapname"
exit 1
fi
swapfile=$(losetup -f) #free loop device
# set NOCOW
touch $swapname
chattr +C $swapname
head -c $swapsize /dev/zero >> $swapname
losetup $swapfile $swapname #mount file to loop
mkswap $swapfile
swapon $swapfile