我们都知道在安装Linux系统时在分区时可以分配swap分区,而系统安装后(在运行中)如何建立或调整swap分区呢?
在装完Linux系统之后,建立Swap分区有两种方法。
1.新建磁盘分区作为swap分区;
2.用文件作为swap分区 (操作更简单,我更常用)。
下面介绍这两种方法:(都必须用root权限,操作过程应该小心谨慎。)
一、新建磁盘分区作为swap分区
1.以root身份进入控制台(登录系统),输入
复制代码代码如下:
# swapoff -a #停止所有的swap分区
2. 用fdisk命令(例:# fdisk /dev/sdb)对磁盘进行分区,添加swap分区,新建分区,在fdisk中用“t”命令将新添的分区id改为82(Linux swap类型),最后用w将操作实际写入硬盘(没用w之前的操作是无效的)。
3.
复制代码代码如下: # mkswap /dev/sdb2 #格式化swap分区,这里的sdb2要看您加完后p命令显示的实际分区设备名
4.
复制代码代码如下: # swapon /dev/sdb2 #启动新的swap分区
5. 为了让系统启动时能自动启用这个交换分区,可以编辑/etc/fstab,加入下面一行
复制代码代码如下:
/dev/sdb2 swap swap defaults 0 0
二、调整swap分区大小
有的时候,我们要增加swap的大来,例如,安装oracle。下面说一下如何来增加交换分区的大校
复制代码代码如下:
root@ubuntu:/home/zhangying# free -m
total used free shared buffers cached
Mem: 3449 3256 193 0 723 1687
-/+ buffers/cache: 845 2604
Swap: 254 0 254
复制代码代码如下:
root@ubuntu:/home/zhangying# mkdir swap
root@ubuntu:/home/zhangying# cd swap/
root@ubuntu:/home/zhangying/swap# dd if=/dev/zero of=swaptmp bs=9024 count=100000
记录了100000+0 的读入
记录了100000+0 的写出
902400000字节(902 MB)已复制,12.5008 秒,72.2 MB/秒
复制代码代码如下:
root@ubuntu:/home/zhangying/swap# mkswap swaptmp
mkswap: swaptmp: warning: don't erase bootbits sectors
on whole disk. Use -f to force.
Setting up swapspace version 1, size = 881244 KiB
no label, UUID=ed24d0cc-3af5-4278-b41a-df1ab7433f83
root@ubuntu:/home/zhangying/swap# swapon swaptmp
root@ubuntu:/home/zhangying/swap# free -m
total used free shared buffers cached
Mem: 3449 3359 90 0 637 1930
-/+ buffers/cache: 791 2657
Swap: 1115 0 1115
这种只是临时的,如果重起电脑的话,交换分区的大小还是还原成原来的,如果不重起想还原成原来的,看下面的方法。
复制代码代码如下:
root@ubuntu:/home/zhangying/swap# swapoff swaptmp
root@ubuntu:/home/zhangying/swap# rm swaptmp
root@ubuntu:/home/zhangying/swap# free -m
total used free shared buffers cached
Mem: 3449 3368 81 0 732 1895
-/+ buffers/cache: 739 2710
Swap: 254 6 248
还有一种情况是这种临时的swap,变成非临时的。
复制代码代码如下:
nano /etc/fstab
/home/zhangying/swap/swaptmp swap swap defaults 0 0
注释:这种启动的时候自动加载,根加载windows下的硬盘是一样的,如果swaptmp文件丢失,也无法增加swap的大校
三、用文件作为Swap分区
1.创建要作为swap分区的文件:增加1GB大小的交换分区,则命令写法如下,其中的count等于想要的块的数量(bs*count=文件大小)。
复制代码代码如下:
# dd if=/dev/zero of=/root/swapfile bs=1M count=1024
2.格式化为交换分区文件:
复制代码代码如下:
# mkswap /root/swapfile #建立swap的文件系统
3.启用交换分区文件:
复制代码代码如下:
# swapon /root/swapfile #启用swap文件
4.使系统开机时自启用,在文件/etc/fstab中添加一行:
复制代码代码如下:
/root/swapfile swap swap defaults 0 0
新建和增加交换分区用到的命令为:mkswap、swapon等,而想关闭掉某个交换分区则用“swapon /dev/sdb2”这样的命令即可。
下面的操作命令演示了用文件作为Swap的操作过程(包括前后的一些检查)。
复制代码代码如下:
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3179 800 0 266 1873
-/+ buffers/cache: 1039 2940
Swap: 4095 0 4095
复制代码代码如下:
[root@jay-linux ~]# cat /etc/fstab
# 已省略与主题无关的部分输出
/dev/sda3 swap swap defaults 0 0
复制代码代码如下:
[root@jay-linux ~]# dd if=/dev/zero of=/root/swapfile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 4.09017 s, 263 MB/s
[root@jay-linux ~]# mkswap /root/swapfile
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=48a7ffd5-392f-4963-904c-3e67f0e5dfbe
复制代码代码如下:
[root@jay-linux ~]# swapon /root/swapfile
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3945 34 0 261 2628
-/+ buffers/cache: 1054 2924
Swap: 5119 0 5119
复制代码代码如下:
[root@jay-linux ~]# swapoff /dev/sda3
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3945 34 0 261 2629
-/+ buffers/cache: 1053 2925
Swap: 1023 0 1023
复制代码代码如下:
[root@jay-linux ~]# swapoff /root/swapfile
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3945 34 0 261 2629
-/+ buffers/cache: 1053 2926
Swap: 0 0 0
复制代码代码如下:
[root@jay-linux ~]# swapon /dev/sda3
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3946 33 0 261 2629
-/+ buffers/cache: 1054 2924
Swap: 4095 0 4095
复制代码代码如下:
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3179 800 0 266 1873
-/+ buffers/cache: 1039 2940
Swap: 4095 0 4095
复制代码代码如下:
[root@jay-linux ~]# cat /etc/fstab
# 已省略与主题无关的部分输出
/dev/sda3 swap swap defaults 0 0
复制代码代码如下:
[root@jay-linux ~]# dd if=/dev/zero of=/root/swapfile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 4.09017 s, 263 MB/s
[root@jay-linux ~]# mkswap /root/swapfile
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=48a7ffd5-392f-4963-904c-3e67f0e5dfbe
复制代码代码如下:
[root@jay-linux ~]# swapon /root/swapfile
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3945 34 0 261 2628
-/+ buffers/cache: 1054 2924
Swap: 5119 0 5119
复制代码代码如下:
[root@jay-linux ~]# swapoff /dev/sda3
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3945 34 0 261 2629
-/+ buffers/cache: 1053 2925
Swap: 1023 0 1023
复制代码代码如下:
[root@jay-linux ~]# swapoff /root/swapfile
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3945 34 0 261 2629
-/+ buffers/cache: 1053 2926
Swap: 0 0 0
复制代码代码如下:
[root@jay-linux ~]# swapon /dev/sda3
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3946 33 0 261 2629
-/+ buffers/cache: 1054 2924
Swap: 4095 0 4095