2.2. 增加 Swap 空間

有時候需要在安裝後增加更多的 swap 空間,舉例來說,您也許會將系統的 RAM 從 64MB 升級為 128MB,不過 swap 的空間只有 128MB,如果您需要執行需要大量記憶體的應用程式或操作,這時候就有必要將 swap 的空間增大至 256MB。

在此您有兩種選擇: 增加一個 swap 分割區或增加一個 swap 檔案。 建議您新增一個 swap 分割區,不過如果您沒有任何可用的空間,將很難做到。

如要新增一個 swap 分割區(假設 /dev/hdb2 為您想新增的 swap 分割區),請依照下列的指示:

  1. 硬碟不可以正在使用中(分割區不能被掛載中,而且不能啟用 swap 空間)。 要做到這樣最簡單的方法是將您的系統開機至『救援模式』,請參考 第9章 以取得開機進入救援模式的指示。 在提示您掛載檔案系統時,請選擇 略過

    除此之外,假如該磁碟不包含任何使用中的分割區,您可以卸載它們,然後使用 swapoff 指令來關閉硬碟上所有的 swap 空間。

  2. 可以使用 partedfdisk 來建立 swap 分割區,使用 parted 會比 fdisk 容易,因此在這裡只有解釋 parted。 如要使用 parted 來建立一個 swap 分割區,請遵照以下指示:

    • 以 root 身份在 shell 提示符號下輸入 parted /dev/hdb 指令,這裡的 /dev/hdb 是含有剩餘空間之硬碟的裝置名稱。

    • (parted) 的提示符號下輸入 print 來檢視既有的分割區以及剩餘的空間。 在此,起點與終點的數值是以 MB 表示的,請找出硬碟上所剩餘的空間以及您要分配多少空間給新的 swap 分割區。

    • (parted) 的提示符號下輸入 mkpartfs part-type linux-swap start end,這裡的 part-type 是 primary, extended 或 logical 的其中一種,start 是分割區的起始點,而 end 為分割區的結束點。

      警告警告
       

      變更將立即生效,在輸入時請特別小心。

    • 輸入 quit 以離開 parted

  3. 現在,您的 swap 分割區就建立好了,請使用 mkswap 指令來設定該 swap 分割區,以 root 身份在 shell 提示符號下輸入以下指令:

    mkswap /dev/hdb2
  4. 如要立即啟用該 swap 分割區,請輸入以下指令:

    swapon /dev/hdb2
  5. 如要在開機時啟用它,請編輯 /etc/fstab 檔案以包含下列這一行:

    /dev/hdb2               swap                    swap    defaults        0 0

    下次系統開機時,將會啟用新的 swap 分割區。

  6. 在新增完 swap 分割區然後啟用它後,請使用 cat /proc/swapsfree 指令來檢視它們的輸出以確定它已經被啟用。

如要新增一個 swap 檔案:

  1. 請先決定新 swap 檔案的大小,然後乘以 1024 以取得磁碟區塊(block)的大小,例如 64MB 之 swap 檔案的區塊大小為 65536。

  2. 請以 root 身份在 shell 提示符號下輸入下列指令,並包括 count 等於區塊大小的數值:

    dd if=/dev/zero of=/swapfile bs=1024 count=65536
  3. 並使用以下指令來設定 swap 檔案:

    mkswap /swapfile
  4. 如要立即啟用 swap 檔案(非開機時自動啟動),請使用下列指令:

    swapon /swapfile
  5. 如要在開機時啟動它,請編輯 /etc/fstab 以包含:

    /swapfile               swap                    swap    defaults        0 0

    下次系統開機時,它將會啟用新的 swap 檔案。

  6. 在增加新的 swap 檔案並啟用它後,請檢視 cat /proc/swapsfree 指令的輸出以確定它已經被啟用。