mkswap命令

mkswap 命令 #

mkswap 命令用于在设备或文件上设置 Linux 交换区。交换区是系统在物理内存不足时用于临时存储数据的磁盘空间。

语法 #

mkswap [选项] 设备 [大小]

主要选项 #

选项 说明
-c, --check 在设置交换区前检查坏块
-f, --force 强制执行,即使设备已经有交换区或其他文件系统
-L, --label=标签 指定交换区标签
-p, --pagesize=大小 指定页大小(以字节为单位)
-U, --uuid=UUID 指定要使用的 UUID
-v, --swapversion=版本号 指定交换区版本号
-h, --help 显示帮助信息
-V, --version 显示版本信息

常见用法 #

1. 在分区上创建交换区 #

mkswap /dev/sdb1

2. 在分区上创建带标签的交换区 #

mkswap -L "SWAP" /dev/sdb1

3. 在文件上创建交换区 #

首先创建一个固定大小的文件:

dd if=/dev/zero of=/swapfile bs=1M count=1024
chmod 600 /swapfile

然后将其设置为交换区:

mkswap /swapfile

4. 指定 UUID #

mkswap -U 4209c845-f0b1-4f04-8453-939f01774527 /dev/sdb1

5. 检查坏块并创建交换区 #

mkswap -c /dev/sdb1

激活交换区 #

创建交换区后,需要使用 swapon 命令激活它:

swapon /dev/sdb1

或者对于交换文件:

swapon /swapfile

开机自动挂载交换区 #

要使交换区在系统启动时自动激活,需要将其添加到 /etc/fstab 文件中:

对于交换分区:

/dev/sdb1 none swap sw 0 0

对于交换文件:

/swapfile none swap sw 0 0

注意事项 #

  • 创建交换区会清除设备或文件上的所有数据
  • 交换区大小应根据系统内存和工作负载来确定,通常为物理内存的 1-2 倍
  • 交换文件的权限应设置为 600,以防止其他用户访问其中可能包含的敏感信息
  • 在 SSD 上创建交换区可能会增加磁盘写入量,影响 SSD 寿命
  • 多个交换区可以同时激活,系统会根据优先级使用它们