Manpages

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