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显示版本信息。 核心用法示例创建交换分区最常用sudomkswap/dev/sdb2创建交换分区并检查坏块sudomkswap-c/dev/sdb2创建带标签的交换分区sudomkswap-LSWAP_PARTITION/dev/sdb2创建交换文件# 1. 创建交换文件1GBsudoddif/dev/zeroof/swapfilebs1Mcount1024# 2. 设置权限sudochmod600/swapfile# 3. 格式化为交换空间sudomkswap/swapfile创建指定页大小的交换分区sudomkswap-p4096/dev/sdb2 完整操作流程方案一使用交换分区# 1. 查看可用磁盘分区sudofdisk-l# 或lsblk# 2. 创建交换分区假设使用 /dev/sdb2sudomkswap/dev/sdb2# 3. 启用交换分区sudoswapon/dev/sdb2# 4. 验证交换空间free-h# 或swapon--show# 5. 永久生效编辑 /etc/fstabecho/dev/sdb2 none swap defaults 0 0|sudotee-a/etc/fstab方案二使用交换文件# 1. 创建交换文件4GB 示例sudofallocate-l4G /swapfile# 或使用 dd较慢但兼容性好# sudo dd if/dev/zero of/swapfile bs1M count4096# 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交换空间需要 ≥ 物理内存大小。⚠️ 重要注意事项数据丢失警告mkswap会永久删除分区或文件上的所有数据权限要求需要 root 权限使用sudo。交换分区 vs 交换文件特性交换分区交换文件性能稍好连续磁盘空间稍差可能碎片化灵活性固定大小调整困难可随时调整大小适用场景传统方式服务器桌面系统云环境交换空间类型交换分区专用磁盘分区性能较好。交换文件普通文件更灵活。交换卷LVM 逻辑卷可动态调整。 管理交换空间查看当前交换空间free-hswapon--showcat/proc/swaps启用交换空间sudoswapon/dev/sdb2# 启用分区sudoswapon/swapfile# 启用文件sudoswapon-a# 启用 /etc/fstab 中所有交换空间禁用交换空间sudoswapoff /dev/sdb2# 禁用分区sudoswapoff /swapfile# 禁用文件sudoswapoff-a# 禁用所有交换空间调整交换倾向性swappiness# 查看当前值0-100默认60cat/proc/sys/vm/swappiness# 临时调整sudosysctlvm.swappiness10# 永久调整echovm.swappiness10|sudotee-a/etc/sysctl.confsudosysctl-p 高级用法创建多个交换文件# 创建第二个交换文件sudofallocate-l2G /swapfile2sudochmod600/swapfile2sudomkswap/swapfile2sudoswapon/swapfile2调整交换文件大小# 1. 禁用交换文件sudoswapoff /swapfile# 2. 调整大小扩展到 8GBsudofallocate-l8G /swapfile# 3. 重新格式化sudomkswap/swapfile# 4. 重新启用sudoswapon/swapfile使用 LVM 逻辑卷作为交换空间# 1. 创建逻辑卷sudolvcreate-L8G-nswap_lv vg0# 2. 格式化为交换空间sudomkswap/dev/vg0/swap_lv# 3. 启用sudoswapon/dev/vg0/swap_lv 故障排除“mkswap: error: /dev/sdb2 is mounted; will not make swapspace”# 先卸载分区sudoumount/dev/sdb2sudomkswap/dev/sdb2“mkswap: /swapfile: insecure permissions 0644, 0600 suggested.”# 设置正确权限sudochmod600/swapfile交换空间未在启动时自动启用# 检查 /etc/fstab 配置cat/etc/fstab|grepswap# 测试 fstab 配置sudoswapon-a交换文件性能差# 确保交换文件在 SSD 上# 或考虑使用交换分区 总结mkswap是设置 Linux 交换空间的基础命令用于准备交换分区或文件。交换空间是系统内存的扩展在物理内存不足时使用。现代 Linux 系统通常同时使用交换分区和交换文件。操作前务必确认目标设备/文件正确因为mkswap会销毁所有现有数据。创建交换空间后需要使用swapon命令激活并在/etc/fstab中添加配置以实现开机自动启用。对于大多数桌面用户交换文件更灵活对于服务器交换分区性能更稳定。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2459957.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!