Provided by:
manpages-zh_1.5.1-1_all 
NAME
mkswap - 建立一胵inux交換區
`覽
mkswap [-c] [-vN] [-f] device [size]
yz
mkswap 在一茬]備上或者在一蚗仵釱堻衎堣@胵inux交換區。
(該交換區創建後,必須使用 swapon 命令來啟用它。通常交換區被列在
/etc/fstab 中,從而使得在啟動時可通過某些啟動稿本中的 swapon -a
命令來啟用。)
參數 device 通常是一蚨牬苳幫洁]類似於 /dev/hda4 或者 /dev/sdb7
),但也可以是一蚗仵蛂C
Linux核心不會著眼於分區號,但是一些安裝稿本會假定類型為
16進制的82(LINUX_SWAP)的分區意味著交換分區。
參數 size 是多餘的,但為了向相容性而被保留。(它指定期望的以1024
字節為單位的交換區大小。如果它未被指定, mkswap 將使用整-
茪幫洬峈抸仵蛂C錯誤地使用"-a"選項將會損壞您的磁碟。)
Linux能理解兩種類型的交換區:舊類型和新類型。交換區第一隍熙怮 10-
茼r節區分兩種類型:舊類型以"SWAP_SPACE",新類型以"SWAPSPACE2" 作標識。
在舊類型裏,第一隍漕銗有﹞嶼O一茼儦洁A每一位指出交換區中的可 用-
情C因為第一陲O存位圖,所以第一位為0。同樣的,最後10位保存
標識。所以,如果雇大小為S,舊類型交換區可以描z最多8*(S-10)-1
茈i用於交換的雇。對於S=4096(像i386上),最大可用區域是
133890048字節(如果1 MB=2^20 bytes,則差不多為128 MB),而其他部
分將被浪費。在alpha和sparc64上,S=8192,最大可用區域是535560992字
節(與上z同樣條件下,差不多為512 MB)。
因為零位表示壞的塊或者超過交換區末尾的塊,舊的設置浪費了大部分的 位圖-
情A一蚋眾瑼瑣蒱N可以滿足指出交換區大小的需n,而且如果
有壞的塊,也可以簡單的列出來。沒有人想使用有釵h壞塊的交換區(我
甚至不會使用包含一蚚a塊的交換空間)。在新類型交換區正好是這樣做
的。現在交換區的最大可用數目取決於具體結構。大P來說,在i386, PPC, m68k,
ARM上為2GB,在sparc上為1GB,在mips上為512MB,在alpha
上為128GB,在sparc64上為3TB。
注意在2.1.117核心之前,每一隊幫t一茼r節,而現在為兩茼r節,所
以為了獲得2GB的可用交換區,可能需n2MB的核心記憶體。
目前,Linux允8茈瘣城洁C這些正在使用的區域可從檔案 /proc/swaps
(從2.1.25起)中查到。
mkswap 不允酗p於10荈悸滌炾魽C
如果不知道您的機器所用的雇大小,可以用"cat /proc/cpuinfo"來查
看(或者不能查看 - 這蚗仵蛌漱漁e取決於系統結構和核心版本)。
為了設置一茈瘣姚仵蛂A需n在執行 mkswap , 前創建這-
蚗仵蛂A例如,像如下命令:
# dd if=/dev/zero of=swapfile bs=1024 count=65536
注意一茈瘣姚仵蚰眸楔ㄔ]括任何空洞(所以,不能使用 cp(1)
來創建該檔案)。
項
-c 在創建交換區之前檢查設備(如果是塊設備)的壞塊。
如果發現任何壞塊,壞塊的總數將被列印出來。
-f 強行向前執行,即使該命令是愚蠢的。該選項允釩堨艉
所在的檔案或者分區還大的交換區。在SPARC上,強行創建
交換區。無該選項的 mkswap 將拒絕在包含有效的SPARC超
級塊的設備上創建vo交換區,因為那樣可能意味著將刪除 分區表。
-v0 創建一蚋藏型的交換區。
-v1 創建一虓s類型的交換區。
如果未指定-v選項,而且交換區大小沒有超過舊類型交換區 的最大-
A同時當前核心比2.1.117老(且PAGE_SIZE小於 2048), mkswap
將預設創建舊類型的交換區。萬一您的引導分區或者磁碟卷
標在第一塊,新類型的頭部將不接觸那些部分,所以可能更
好(如果同樣交換區較小),
考
fdisk(8), swapon(8)