這一次要講的是─在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/partition和fdisk /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指令來確認剛剛新增的語法是否有錯誤 (沒有訊息出現表示正常)。
沒有留言:
張貼留言