当前位置: 首页 > news >正文

Linux命令-mkswap(设置交换分区或交换文件)

mkswap命令用于在 Linux 系统中设置交换分区或交换文件,将其格式化为交换空间(swap space)。交换空间是磁盘上的一块区域,当物理内存不足时,系统会将不常用的内存页交换到这里。

📖 基本语法

mkswap[选项]设备[大小]

🎯 常用选项

选项说明
-c,--check创建交换区前检查坏块。
-f,--force强制创建,即使命令认为不安全。
-p,--pagesize SIZE指定使用的页大小(字节)。
-L,--label LABEL指定交换区的标签。
-U,--uuid UUID指定交换区的 UUID。
-v,--swapversion NUM指定交换区版本(1 或 2,默认 2)。
--help显示帮助信息。
--version显示版本信息。

💡 核心用法示例

  1. 创建交换分区(最常用):

    sudomkswap/dev/sdb2
  2. 创建交换分区并检查坏块

    sudomkswap-c/dev/sdb2
  3. 创建带标签的交换分区

    sudomkswap-L"SWAP_PARTITION"/dev/sdb2
  4. 创建交换文件

    # 1. 创建交换文件(1GB)sudoddif=/dev/zeroof=/swapfilebs=1Mcount=1024# 2. 设置权限sudochmod600/swapfile# 3. 格式化为交换空间sudomkswap/swapfile
  5. 创建指定页大小的交换分区

    sudomkswap-p4096/dev/sdb2

🔧 完整操作流程

方案一:使用交换分区
# 1. 查看可用磁盘分区sudofdisk-l# 或lsblk# 2. 创建交换分区(假设使用 /dev/sdb2)sudomkswap/dev/sdb2# 3. 启用交换分区sudoswapon/dev/sdb2# 4. 验证交换空间free-h# 或swapon--show# 5. 永久生效(编辑 /etc/fstab)echo'/dev/sdb2 none swap defaults 0 0'|sudotee-a/etc/fstab
方案二:使用交换文件
# 1. 创建交换文件(4GB 示例)sudofallocate-l4G /swapfile# 或使用 dd(较慢但兼容性好)# sudo dd if=/dev/zero of=/swapfile bs=1M count=4096# 2. 设置安全权限sudochmod600/swapfile# 3. 格式化为交换空间sudomkswap/swapfile# 4. 启用交换文件sudoswapon/swapfile# 5. 验证free-h# 6. 永久生效echo'/swapfile none swap sw 0 0'|sudotee-a/etc/fstab

📊 交换空间大小建议

物理内存大小推荐交换空间大小休眠支持所需大小
≤ 2GB2倍内存1.5倍内存
2GB - 8GB等于内存大小1.5倍内存
8GB - 64GB4GB - 8GB1.5倍内存
≥ 64GB4GB(最小)1.5倍内存

注意:如果启用休眠(hibernate),交换空间需要 ≥ 物理内存大小。

⚠️ 重要注意事项

  1. 数据丢失警告mkswap永久删除分区或文件上的所有数据!
  2. 权限要求:需要 root 权限(使用sudo)。
  3. 交换分区 vs 交换文件
    特性交换分区交换文件
    性能稍好(连续磁盘空间)稍差(可能碎片化)
    灵活性固定大小,调整困难可随时调整大小
    适用场景传统方式,服务器桌面系统,云环境
  4. 交换空间类型
    • 交换分区:专用磁盘分区,性能较好。
    • 交换文件:普通文件,更灵活。
    • 交换卷:LVM 逻辑卷,可动态调整。

🔍 管理交换空间

  1. 查看当前交换空间

    free-hswapon--showcat/proc/swaps
  2. 启用交换空间

    sudoswapon/dev/sdb2# 启用分区sudoswapon/swapfile# 启用文件sudoswapon-a# 启用 /etc/fstab 中所有交换空间
  3. 禁用交换空间

    sudoswapoff /dev/sdb2# 禁用分区sudoswapoff /swapfile# 禁用文件sudoswapoff-a# 禁用所有交换空间
  4. 调整交换倾向性(swappiness):

    # 查看当前值(0-100,默认60)cat/proc/sys/vm/swappiness# 临时调整sudosysctlvm.swappiness=10# 永久调整echo'vm.swappiness=10'|sudotee-a/etc/sysctl.confsudosysctl-p

📌 高级用法

  1. 创建多个交换文件

    # 创建第二个交换文件sudofallocate-l2G /swapfile2sudochmod600/swapfile2sudomkswap/swapfile2sudoswapon/swapfile2
  2. 调整交换文件大小

    # 1. 禁用交换文件sudoswapoff /swapfile# 2. 调整大小(扩展到 8GB)sudofallocate-l8G /swapfile# 3. 重新格式化sudomkswap/swapfile# 4. 重新启用sudoswapon/swapfile
  3. 使用 LVM 逻辑卷作为交换空间

    # 1. 创建逻辑卷sudolvcreate-L8G-nswap_lv vg0# 2. 格式化为交换空间sudomkswap/dev/vg0/swap_lv# 3. 启用sudoswapon/dev/vg0/swap_lv

🔧 故障排除

  1. “mkswap: error: /dev/sdb2 is mounted; will not make swapspace”

    # 先卸载分区sudoumount/dev/sdb2sudomkswap/dev/sdb2
  2. “mkswap: /swapfile: insecure permissions 0644, 0600 suggested.”

    # 设置正确权限sudochmod600/swapfile
  3. 交换空间未在启动时自动启用

    # 检查 /etc/fstab 配置cat/etc/fstab|grepswap# 测试 fstab 配置sudoswapon-a
  4. 交换文件性能差

    # 确保交换文件在 SSD 上# 或考虑使用交换分区

📝 总结

  • mkswap是设置 Linux 交换空间的基础命令,用于准备交换分区或文件。
  • 交换空间是系统内存的扩展,在物理内存不足时使用。
  • 现代 Linux 系统通常同时使用交换分区和交换文件。
  • 操作前务必确认目标设备/文件正确,因为mkswap会销毁所有现有数据。
  • 创建交换空间后,需要使用swapon命令激活,并在/etc/fstab中添加配置以实现开机自动启用。

对于大多数桌面用户,交换文件更灵活;对于服务器,交换分区性能更稳定。

http://www.jsqmd.com/news/552348/

相关文章:

  • LTspice新手避坑:用真实厂商模型(TI/Diodes)搭建5V稳压电路,保姆级导入教程
  • Shimabara:面向ADAU1361的嵌入式音频编解码器控制库
  • 新手福音:用快马ai生成你的第一个ps软件下载引导页
  • 是谁还不懂SDN的,看我这篇就够啦!
  • SAP凭证跳号问题全解析:从排查到审计应对(附事务码S_ALR_87012342使用指南)
  • 如何打造个性化AI角色体验:SillyTavern完整指南
  • C语言开发环境哪家强?VSCode优势多,配置步骤快来看
  • Kettle分页抽数避坑指南:为什么你的循环插入总是超时?
  • FLAC 3D模拟:煤层开挖过程中围岩边界条件与接触面单元的相互作用分析
  • Verilog:generate、for、always 语句的电路实现差异与优化策略
  • C++ 模板特化与类型推导实践
  • 前端开发必看:window.location.search获取不到参数的3种常见场景及解决方案
  • Comsol中的辐射不对称BIC与远场赝极化物理表征
  • Windows PDF处理难题终结者:Poppler工具包全面应用指南
  • OpenClaw错误处理:QwQ-32B生成有误时的自动修正方案
  • UEFITool终极指南:掌握UEFI固件解析与编辑的完整教程
  • 次元画室与数据库课程设计结合:构建AI艺术馆管理系统
  • 神奇!AI应用架构师如何点“数”成金实现企业数据价值挖掘
  • 2026年01月大型交通枢纽智慧公厕系统质量评测报告:上海智慧公厕卫生间改造/上海智慧厕所/杭州智慧公厕卫生间改造/选择指南 - 优质品牌商家
  • CodeBlocks-25.03 在 Windows 上的完整配置与避坑指南
  • 2026写字楼大型复杂铝单板幕墙施工服务商推荐:石材幕墙施工/金属板幕墙工程/金属板幕墙施工/铝板幕墙施工/陶土板幕墙施工/选择指南 - 优质品牌商家
  • Kook Zimage 真实幻想 Turbo 保姆级教程:从安装到出图,一次搞定
  • 基于SPI硬件外设的NeoPixel高精度驱动方案
  • ADXL355高精度加速度计驱动开发与工程实践指南
  • 突破窗口限制:Windows桌面管理的高级技术方案
  • 5V转3.3V电平转换的19种工程方案详解
  • 开源智能设备开发指南:从技术原理到实战应用
  • OpenClaw+nanobot极简架构:单机AI自动化系统设计
  • 2026干式真空泵场景化推荐指南:干式螺杆真空泵/无油真空泵/机械真空泵/耐腐蚀真空泵/螺杆式真空泵/螺杆泵真空泵/选择指南 - 优质品牌商家
  • 风电功率预测发SCI,别只盯着1区:这些2/3区‘潜力股’期刊也许更适合你