我创建了一个名为 /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
黑子
/dev/sda3: LABEL="SWAP" UUID="63f1807e-7cc6-4339-92b2-b1958fcf285e" TYPE="swap"
答案1
fdisk 创建分区但不格式化它。在使用交换分区之前,您需要先对其进行格式化。这是通过 mkswap 完成的。
相同的规则适用于任何其他文件系统。使用前需要创建分区并格式化。
答案2
该mkswap
命令将一个标头(从 开始,0x400
以便跳过任何磁盘标签等)写入交换分区或交换文件,以进行一些内务管理,如版本、最后一页等。它以魔术字符串SWAP-SPACE
或SWAPSPACE2
末尾将其标识为这样的。 (来源)
它并没有真正格式化,就像文件系统分区一样,只是一个标头,然后是放置要换出的内存页面的空间。