我們都知道在安裝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