设置Linux交换分区
Linux下可以创建两种类型的交换空间,一种是swap分区,一种是swap文件。前者适合有空闲的分区可以使用,后者适合于没有空的硬盘分区,硬盘的空间都已经分配完毕。例如:安装redhat的时候,你可以默认划分硬盘空间,交换区的大小事系统默认配置,当你安装完系统后需要安装一个oracle数据库,突然发出警告,交换空间不够。此刻该怎么办?
1、查看交换分区的方式
可以通过命令top,free命令查看当前的交换分区。也可以使用cat
/proc/swaps查看交换分区
2、如何通过swap文件扩充交换空间的大小
例如:增加1G的交换空间
2.1、dd
if=/dev/zone of=/myswap bs=2k count=524288 //划分空间
2.2、mkswap /myswap
//格式成交换分区的格式
2.3、swapon /myswap
//使格式的swap生效
设置后,可以通过上面的命令查看时否生效。当启动系统后需要自动加载交互分区,可以在/etc/fstab文件中增加:/myswap
swap swap default 0
0
3、如何通过swap分区的方式增加交换空间
3.1、如果希望添加一个交换分区(这里假设希望把/dev/hdb5添加为交换分区),这个硬盘不能被正在使用(也就是分区不能被加载,交换空间没有被激活)。分区表在使用时不能被修改,因为内核可能无法正确识别分区表的变化。这样数据可能会写入到错误的分区,而导致数据被覆盖而丢失,因为内核维护的分区表跟硬盘上的分区表不一致造成的。
解决这个问题最简单的办法是将系统引导进入急救(rescue)模式下进行操作。当提示扫描并加载文件系统时,选择跳过。如果硬盘上没有任何分区被使用,这样就可以卸载分区,使用swapoff命令来关闭该硬盘上所有的交换分区。
3.2、使用parted创建交换分区
以root身份运行:
parted /dev/hdb
在parted命令的提示符,输入print查看当前分区表,以及空闲空间。开始和结束值的单位是MB,然后计算有多少空闲空间,以及你希望划分多少空间给交换分区。
在parted提示符后,输入mkpartfs part-tyep linux-swap start
end,这里part-type是primary、extend或logical。start是分区开始点,end是分区结束点。
输入exit退出parted
3.3、现在已经创建了交换分区,使用mkswap命令设置交换分区:
mkswap
/dev/hdb2
3.4、为了立刻激活swap分区,输入以下命令:
swapon
/dev/hdb2
3.5、为了在启动时激活它,在/etc/fstab中添加如下内容:
/dev/hdb2 swap swap
defaults 0 0
下次启动时,系统会自动激活该交换分区。
3.6、添加了新分区,并激活它以后,可以通过cat
/proc/swaps或者free来查看该交换分区是否已经工作。