Linux命令:mkswap
mkswap 命令
基本介绍
mkswap是 Linux 系统中用于创建交换空间(swap space)的命令。它可以将磁盘分区或文件格式化为交换空间,供系统在物理内存不足时使用。交换空间是系统性能优化的重要组成部分。
资料合集:https://pan.quark.cn/s/6fe3007c3e95、https://pan.quark.cn/s/561de99256a5、https://pan.quark.cn/s/985f55b13d94、https://pan.quark.cn/s/d0fb20abd19a
语法
mkswap [OPTIONS] DEVICE常用选项
基本选项
-f, --force:强制创建交换空间,即使设备看起来正在使用-h, --help:显示帮助信息-V, --version:显示版本信息
标签选项
-L, --label=LABEL:设置交换空间的标签-U, --uuid=UUID:设置交换空间的 UUID
页面大小选项
-p, --pagesize=SIZE:指定页面大小(以字节为单位)
检查选项
-c, --check:检查设备是否有坏块
使用示例
1. 格式化交换分区
mkswap/dev/sda2输出示例:
Setting up swapspace version 1, size = 2097148 KiB no label, UUID=12345678-1234-5678-1234-5678123456782. 格式化交换文件
mkswap/swapfile3. 设置交换空间标签
mkswap-LSWAP01 /dev/sda2输出示例:
Setting up swapspace version 1, size = 2097148 KiB LABEL=SWAP01, UUID=12345678-1234-5678-1234-5678123456784. 设置交换空间 UUID
mkswap-U12345678-1234-5678-1234-567812345678 /dev/sda25. 检查坏块并创建交换空间
mkswap-c/dev/sda2输出示例:
Checking for bad blocks in /dev/sda2 ... Setting up swapspace version 1, size = 2097148 KiB no label, UUID=12345678-1234-5678-1234-5678123456786. 创建并启用交换文件
# 创建文件fallocate-l2G /swapfile# 设置权限chmod600/swapfile# 格式化mkswap/swapfile# 启用swapon/swapfile7. 创建并启用交换分区
# 格式化分区mkswap/dev/sda2# 启用swapon/dev/sda2# 设置开机自动挂载echo'/dev/sda2 none swap defaults 0 0'>>/etc/fstab输出格式说明
成功执行输出
Setting up swapspace version 1, size = 2097148 KiB LABEL=SWAP01, UUID=12345678-1234-5678-1234-567812345678| 字段 | 说明 |
|---|---|
size | 交换空间大小 |
LABEL | 标签名称(如果设置) |
UUID | 唯一标识符 |
错误输出示例
mkswap: error: /dev/sda2 is mounted; will not make swapspace交换空间管理流程
创建交换文件
# 1. 创建文件(使用 fallocate)fallocate-l2G /swapfile# 或者使用 ddddif=/dev/zeroof=/swapfilebs=1Gcount=2# 2. 设置权限chmod600/swapfile# 3. 格式化mkswap/swapfile# 4. 启用swapon/swapfile# 5. 设置开机自动挂载echo'/swapfile none swap defaults 0 0'>>/etc/fstab创建交换分区
# 1. 使用 fdisk 或 parted 创建分区fdisk/dev/sda# 2. 格式化mkswap/dev/sda2# 3. 启用swapon/dev/sda2# 4. 设置开机自动挂载echo'/dev/sda2 none swap defaults 0 0'>>/etc/fstab实用技巧
创建多个交换空间
# 创建第一个交换分区mkswap/dev/sda2swapon/dev/sda2# 创建第二个交换分区(设置优先级)mkswap/dev/sda3swapon-p10/dev/sda3验证交换空间
# 查看交换空间状态swapon--showcat/proc/swapsfree-h删除交换空间
# 禁用交换空间swapoff /dev/sda2# 删除交换文件rm/swapfile# 从 fstab 中移除sed-i'/swapfile/d'/etc/fstab脚本中创建交换空间
#!/bin/bashSWAP_SIZE="2G"SWAP_FILE="/swapfile"# 检查是否已存在if[-f"$SWAP_FILE"];thenecho"Swap file already exists"exit1fi# 创建文件echo"Creating swap file of size$SWAP_SIZE..."fallocate-l"$SWAP_SIZE""$SWAP_FILE"# 设置权限echo"Setting permissions..."chmod600"$SWAP_FILE"# 格式化echo"Formatting swap file..."mkswap"$SWAP_FILE"# 启用echo"Enabling swap..."swapon"$SWAP_FILE"# 设置开机自动挂载echo"Adding to fstab..."echo"$SWAP_FILEnone swap defaults 0 0">>/etc/fstabecho"Swap space created successfully!"相关命令
swapon:启用交换空间swapoff:禁用交换空间free:显示内存和交换空间使用情况fallocate:创建文件dd:创建文件(可用于创建交换文件)fdisk:磁盘分区工具parted:磁盘分区工具vmstat:显示虚拟内存统计信息
注意事项
- 权限要求:
mkswap需要 root 权限 - 设备要求:设备不能是已挂载的文件系统
- 权限设置:交换文件应设置为 600 权限(仅 root 可读写)
- 大小建议:通常建议设置为物理内存的 1-2 倍
- UUID:使用 UUID 而不是设备路径更可靠
- 标签设置:可以使用标签来标识交换空间
- 坏块检查:使用
-c选项检查坏块会延长创建时间
总结
mkswap是 Linux 系统中用于创建交换空间的工具。它可以将磁盘分区或文件格式化为交换空间,供系统在物理内存不足时使用。创建交换空间后,需要使用swapon命令启用,并在/etc/fstab中配置开机自动挂载。合理配置交换空间对于系统性能至关重要。
