MKSWAP(8)

NAME
mkswap - 建立一個linux交換區

總覽
mkswap [-c] [-vN] [-f] device [size]

描述
mkswap 在一個裝置上或者在一個檔案裡建立一個linux交換區。

(該交換區建立後，必須使用 swapon 命令來啟用它。通常交換區被列在 /etc/fstab 中，從而使得在啟動時可通過某些啟動指令碼中的 swapon -a 命令來啟用。)

引數 device 通常是一個磁碟分割槽（類似於 /dev/hda4 或者 /dev/sdb7 ），但也可以是一個檔案。 Linux核心不會著眼於分割槽號，但是一些安裝指令碼會假定型別為 16進位制的82(LINUX_SWAP)的分割槽意味著交換分割槽。

引數 size 是多餘的，但為了向相容性而被保留。(它指定期望的以1024 位元組為單位的交換區大小。如果它未被指定， mkswap 將使用整個分割槽或者檔案。錯誤地使用"-a"選項將會損壞您的磁碟。)

Linux能理解兩種型別的交換區：舊型別和新型別。交換區第一頁的最後 10個位元組區分兩種型別：舊型別以"SWAP_SPACE"，新型別以"SWAPSPACE2" 作標識。

在舊型別裡，第一頁的其它部分是一個位圖，每一位指出交換區中的可 用頁面。因為第一頁儲存點陣圖，所以第一位為0。同樣的，最後10位儲存 標識。所以，如果頁面大小為S，舊型別交換區可以描述最多8*(S-10)-1 個可用於交換的頁面。對於S=4096（象i386上），最大可用區域是 133890048位元組（如果1 MB=2^20 bytes，則差不多為128 MB），而其他部 分將被浪費。在alpha和sparc64上，S=8192,最大可用區域是535560992字 節（與上述同樣條件下，差不多為512 MB）。

因為零位表示壞的塊或者超過交換區末尾的塊，舊的設定浪費了大部分的 點陣圖頁面，一個簡單的整數就可以滿足指出交換區大小的需要，而且如果 有壞的塊，也可以簡單的列出來。沒有人想使用有許多壞塊的交換區（我 甚至不會使用包含一個壞塊的交換空間）。在新型別交換區正好是這樣做 的。現在交換區的最大可用數目取決於具體結構。大致來說，在i386, PPC, m68k, ARM上為2GB，在sparc上為1GB，在mips上為512MB，在alpha 上為128GB，在sparc64上為3TB。

注意在2.1.117核心之前，每一頁分配一個位元組，而現在為兩個位元組，所 以為了獲得2GB的可用交換區，可能需要2MB的核心記憶體。

目前，Linux允許8個交換區。這些正在使用的區域可從檔案 /proc/swaps （從2.1.25起）中查到。

mkswap 不允許小於10個頁面的區域。

如果不知道您的機器所用的頁面大小，可以用"cat /proc/cpuinfo"來查 看（或者不能檢視 - 這個檔案的內容取決於系統結構和核心版本）。

為了設定一個交換檔案，需要在執行 mkswap , 前建立這個檔案，例如，象如下命令：

    # dd if=/dev/zero of=swapfile bs=1024 count=65536

注意一個交換檔案必須不包括任何空洞（所以，不能使用 cp(1) 來建立該檔案）。

選項

-c  在建立交換區之前檢查裝置（如果是塊裝置）的壞塊。 如果發現任何壞塊，壞塊的總數將被打印出來。

-f  強行向前執行，即使該命令是愚蠢的。該選項允許建立比 所在的檔案或者分割槽還大的交換區。在SPARC上，強行建立 交換區。無該選項的 mkswap 將拒絕在包含有效的SPARC超 級塊的裝置上建立vo交換區，因為那樣可能意味著將刪除 分割槽表。

-v0 建立一箇舊型別的交換區。

-v1 建立一個新型別的交換區。

如果未指定-v選項，而且交換區大小沒有超過舊型別交換區 的最大值，同時當前核心比2.1.117老（且PAGE_SIZE小於 2048）， mkswap 將預設建立舊型別的交換區。萬一您的引導分割槽或者磁碟卷 標在第一塊，新型別的頭部將不接觸那些部分，所以可能更 好（如果同樣交換區較小），

參考
fdisk(8), swapon(8)

跋
本頁面中文版由中文 man 手冊頁計劃提供。
中文 man 手冊頁計劃：https://github.com/man-pages-zh/manpages-zh