添加swap分区

swap分区:又叫交换分区,是当系统物理内存不够用的时候,计算机会将一部分内存里的数据先放置单swap分区中保存,等物理内存有了空间之后再将swap分区内的数据写入到内存之中,所以swap分区的大小一般为物理内存的1.5—2倍之间,如果实际应用中需要为swap分区扩容,我们有两种方法

一、文件的方式,dd出一个文件,然后添加入swap分区,
二、使用分区的方式
这两种方法都能将swap扩大,但是推荐是用分区的方法做,文件写入swap的时候分区会比文件快,所以最好还是使用分区的方式。
首先我们先使用文件的方式去增加swap,假设增大500M
             先使用free命令查看当前的swap分区大小
             第一步:使用dd命令创建500M的文件
                     dd if=/dev/zero of=/tmp/swap.file bs=100M count=5
             解释下这个命令,if=/dev/zero if的意思是i代表input 就是输入的意思f=file代表文件 if=/dev/zero 说明使用/dev/zero 这个文件作为输入,of代表output file 就是输出文件,就是我们生成的那个文件的文件名,我们这里名字叫做swap.file, bs代表块大小,count代表使用几个块,bs乘以count大小为该文件的总大小,/dev/zero这个文件很特别,这个文件连全都是0,我们一般使用dd命令去建立新的文件的时候都是用这种方式
             第二步:将该文件改为swap格式的文件,使系统可以使用该文件作为swap分区
                     mkswap /tmp/swap.file
             第三步:将创建好的swap文件添入swap分区中
                     swapon /tmp/swap.file
             第四步:设置开机自动挂载(使用/etc/fstab文件)
              vim /etc/fstab中最后一行添加
             /tmp/swap.file         swap      swap     defaults 0 0
             测试:1、测试swap有没有增大,使用free命令查看
                        2、测试开始启动是否可用
           ①swapoff /tmp/swap.file
           ②mount -a 如果没有报错再次使用free命令查看如果swap增大说明/etc/fstab文件没有写错
二、使用分区的方式增大swap
                  首先要是用fdisk命令去分区,分区的时候要注意,如果你是新手,还不了解每个分区的作用,不要乱删分区,如果一不小心删错了分区,那系统就挂了。分区的时候还要注意一点,每个硬盘最多可以分4个区,但是为什么有的硬盘还是分了比4个区更多的分区呢? 那就是拓展分区的原因,分区分为主分区和拓展分区,在拓展分区上可以建立逻辑分区,拓展分区不能被使用,也不能被格式化,只能使用拓展分区之上的逻辑分区,拓展分区最多只有一个,是操作系统的限制
                  一、使用fdisk命令分区。
                         使用fdisk -l 查看当前分区的名字。
# fdisk -l
Disk /dev/sda: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
  Device Boot      Start         End      Blocks   Id System
/dev/sda1   *           1          13      104391   83 Linux
/dev/sda2              14        2624    20972857+ 83 Linux
/dev/sda3            2625        2885     2096482+ 82 Linux swap / Solaris
/dev/sda4            2886       10443    60709635    5 Extended
/dev/sda5            2886        3008      987966   83 Linux
我这里的设备号是/dev/sda
下面增加一个逻辑分区
#fdisk /dev/sda
The number of cylinders for this disk is set to 10443.
/.................../省略
  (e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): n        //n是添加一个新分区的意思,想了解别的命令就输入m
First cylinder (3009-10443, default 3009):    //这里直接摁回车,第一柱面默认就可以
Using default value 3009                      //这里说使用默认柱面3009
Last cylinder or +size or +sizeM or +sizeK (3009-10443, default 10443): +500M     <--这里写入要添加的分区的大小
Command (m for help): t          // t  指定分区类型
Partition number (1-6): 6                   //第6个分区
Hex code (type L to list codes):82   //82代表的是swap如果忘记哪个代表swap 使用L查看
Command (m for help): w                //w 保存退出
# partprobe /dev/sda                         //通知内核分区发生改变
我这里添加的分区是/dev/sda6
# mkswap /dev/sda6                          //同上
#swapon /dev/sda6                        
最后使用free查看swap是否增加
编辑/etc/fstab文件时新添加的swap可以开机自动挂载
/dev/sda6                  swap         swap         defaults 0 0
测试方法同上