12.10.2011

建立及掛載置換 (SWAP)磁碟區

這一次要講的是─在Linux環境下建立SWAP分割區。雖然是SWAP分割區,但這裡的環境要延續之前的磁碟分割區 (格式化硬碟及掛載檔案系統)。

在之前的文章介紹格式化硬碟的時後,我們把一顆5 GB的/dev/sdb硬碟,切成三個大小分別為1 GB的主要分割區;這裡我們把剩下的空間拿來切割成兩個SWAP分割區。

因為一顆硬碟只能分成四個主要分割區,但我們已經用掉了三個;但還需要兩個分割區,所以剩下的空間勢必要劃分成延伸分割區 (Extended Partition)

cat -n /proc/partition

fdisk /dev/sdb

Command (m for help): n
Command action
   e extended
   p primary partition (1-4)
e    // 這個分割區我要規劃為延伸分割區
Selected partition 4
First cylinder (397-652, default 397): <Enter>
Using default value 397
Last cylinder, +cylinders or +size{K,M,G} (397-652, default 652): <Enter>    // 因為我們要把剩下的空間都要規劃為延伸分割區,所以直接按Enter即可
Using default value 652

Command (m for help): w



切完延伸分割區之後,一樣要重新啟動,再重覆cat -n /proc/partitionfdisk /dev/sdb的動作來確認我們上一步所劃分出來的分割區。

延伸分割區是不能夠用的,也就是說是無法再延伸分割區上儲存資料;我們必須把延伸分割區再切割為邏輯分割區 (Logical Partition),這個邏輯磁碟區才能夠儲存資料。

在這顆5 GB的/dev/sdb上應該有將近2 GB的延伸分割區,我們再把它們切成兩個邏輯磁碟區:

Command (m for help): n
First cylinder (397-652, default 397): <Enter>
Using default value 397
Last cylinder, +cylinders or +size{K,M,G} (397-652, default 652): +1G    // 第一個邏輯分割區切割成1 GB

Command (m for help): n
First cylinder (529-652, default 529): <Enter>
Using default value 529
Last cylinder, +cylinders or +size{K,M,G} (397-652, default 652): <Enter>    // 剩下的空間都劃分成邏輯磁碟區,所以直接按Enter
Using default value 652



邏輯分割區劃分完之後,一樣要重新啟動;執行cat -n /proc/partition可以注意到/dev/sdb5/dev/sdb6就是我們剛剛所劃分出來的邏輯磁碟區。

接下來就必須把這兩個邏輯磁碟區設成SWAP分割區;但SWAP分割區的指令和格式化一般磁碟區的指令不太一樣 (mkfs -t )。SWAP分割區的方式為:

mkswap /dev/sdb5; mkswap /dev/sdb6

執行完mkswap指令之後,可以看到這兩個SWAP分割區的基本資訊,也包含磁碟區的UUID (如下圖)。

格式化成SWAP分割區之後,還要把它們啟用:

swapon /dev/sdb5; swapon /dev/sdb6



除了用mkswap和swapon指令來建立之外,這裡要介紹的是另外一種方法─運用dd指令。

time dd if=/dev/zero of=/mnt/SWAP_1 bs=1024k count=1024

if是Input File (輸入檔案)的簡寫,而of是Output File (輸出檔案);bs和count參數我不太想解釋,有興趣的人可以自行查閱;因為本篇的重點是SWAP而不是dd指令的運用。

這個透過dd指令所建立的SWAP空間大小為:

bs = 1024 * 1024 = 1048576 (1K = 1024)

bs * count = 1048576 * 1024 = 1073741824 (Bytes)

所以就是1 GB大小的SWAP空間。在Linux系統下,指令前面加上time,可以顯示出執行該指令的時間─包含真實時間 (Real Time)使用者時間 (User Time)系統時間 (System Time)

透過dd指令所建立的SWAP空間,一樣要執行mkswap和swapon指令,如此,置換分割區才能夠運作。而且,mkswap執行後,也一樣會有UUID。

time dd if=/dev/zero of=/mnt/SWAP_2 bs=1024k count=1024

mkswap -f /mnt/SWAP_1; mkswap -f /mnt/SWAP_2

swapon /mnt/SWAP_1; swapon /mnt/SWAP_2

上述指令如下圖示:



OK,我們已經有四個SWAP置換分割區了:/dev/sdb5/dev/sdb6/mnt/SWAP_1/mnt/SWAP_2。現在把它們寫進/etc/fstab中,讓系統啟動時直接掛載,語法如下圖反白處:



在編輯過/etc/fstab之後,可以執行mount -a指令來確認剛剛新增的語法是否有錯誤 (沒有訊息出現表示正常)。

沒有留言:

張貼留言