Swap

如果交換空間是通過 fdisk 創建的,為什麼我需要 mkswap?

  • April 23, 2017

我創建了一個名為 /dev/sda3 的分區作為交換分區,並通過 fdisk 將 ID 更改為 82(Linux Swap)。如果這個分區被辨識為交換分區(在 fdisk -l 和 blkid 的輸出中看到),那麼為什麼我不能直接進入 swapon /dev/sda3?為什麼我必須執行 mkswap /dev/sda3?另一個問題,分區資訊是數據獨有的嗎?那麼如果我通過 fdisk 更改文件系統類型,數據會受到影響嗎?

fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0008d6ed

  Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          32      256000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              32        1566    12317696   83  Linux
/dev/sda3            1566        2610     8390105   82  Linux swap / Solaris

blkid

/dev/sda3: LABEL="SWAP" UUID="63f1807e-7cc6-4339-92b2-b1958fcf285e" TYPE="swap"

fdisk 創建一個分區但不格式化它。在您可以使用您的交換分區之前,您需要先對其進行格式化。這是通過 mkswap 完成的。

相同的規則適用於任何其他文件系統。您需要在使用前創建分區並對其進行格式化。

mkswap命令將標頭(0x400以跳過任何磁碟標籤等開始)寫入交換分區或交換文件以進行一些內務處理,例如版本、最後一頁等。它以魔術字元串結尾SWAP-SPACESWAPSPACE2在末尾將其標識為這樣的。(來源

它並沒有真正格式化,就像文件系統分區一樣,只是一個標題,然後將放置被換出的記憶體頁面的空間。

引用自:https://unix.stackexchange.com/questions/158555